首页 > 其他分享 >gp执行存储过程报错could not temporarily connect to one or more segments

gp执行存储过程报错could not temporarily connect to one or more segments

时间:2023-02-02 10:45:02浏览次数:42  
标签:temporarily gp 调度 连接数 实例 报错 执行 segment

收到业务侧反馈有一个存储过程无法执行在启动一分钟左右,会报错。

如图所示报错信息could not temporarily connect to one or more segments

翻译过来是“暂时无法连接到一个或多个段”,段在这里就是实例。

第一反应是不是有实例宕了,gpstate -e查看数据库状态。

一切正常,没有实例宕停的情况出现。但是报错信息除了告诉我们无法连接到某个实例之外,也没有什么有用的信息。(其实,有一个提示很重要但是当时没有在意,那就是“line 105”)

 

看下数据库日志,并询问业务一些信息,如是否是新上线的调度,insert select所涉及的表有多大,是只有这一个调度无法执行还是所有的都无法执行。

得到以下几点信息:

       一:调度是之前上线的,突然无法执行。

       二:涉及的表数据略大具体多少不清楚,但是同样的数据量,同样的调度在另一套只有10台主机备库是可以正常跑过的。

       三:只有这一个调度有问题。

数据库日志如下:

报错内容与前台给的差不多。百度谷歌也没有搜到有用的消息。

 

此时看集群资源使用率在三四十左右,且此调度数据量较大。建议业务减少关联表,并在资源空闲时执行调度测试。

 

同时看下是否是连接数过多的原因。此参数在master上最大是250,在segment上最大是750。

 

 

 

 

Segment主机实例的连接数。

Master主机的连接数

看来跟连接数没什么关系,业务侧也回复,在资源使用空闲时执行还是报错。并且他们不方便改存储过程,希望我侧尽力解决这个问题。

 

好吧,再看一下报错信息,有个”line 105”。将存储过程导出,看看105行是什么。

psql -c “\df+ functionname” > ~/function.txt

一共union all 24张表,后面没有截全。

这应该是提示从这里开始报错的。此时还没有想到什么办法,一边请教原厂售后,另一边想看下这些表的数据量和表结构。于是select count(1) from tablename;

将24张表count一遍发现了异常。

 

 

这几张表都报了数据块错误,会不会是因为这个错误导致调度执行不了?

手动处理了一下,具体步骤略,如果不会处理这个错误可以重建表解决。

处理完验证没有问题,再此联系业务测试,还是不行。此时陷入了僵局,似乎没有什么办法解决了。

原厂售后工程师也回复,看下segment节点有没有panic,一般这样的报错是segment有panic导致连接突然中断。并且表示生产库的版本遇到这样的问题没有什么解决办法,只能绕过。

看下segment的数据库日志。

还是有数据块报错,但是count表是正常的。找一下这个数据块属于那张表。

这张表是heap表,并且常规方法无法处理。联系业务侧重建并测试。

重建后再次执行成功。

 

注:如果是使用gptransfer和copy函数将表导入数据库,就有可能发生数据块错误。自建表不会。

 

标签:temporarily,gp,调度,连接数,实例,报错,执行,segment
From: https://www.cnblogs.com/xurui96/p/17085187.html

相关文章

  • gp4版本安装uuid函数
    1.确认gp的安装目录有python文件夹cd/usr/local/greenplum-db-4.3.17.1/ext/2.安装python扩展      createlangplpythonu-ddatabasename图中的错误提示是......
  • 试用ChatGPT
    主要参考&&转载:【1】中国区注册OpenAI账号试用ChatGPT【2】ChatGPT使用示例【3】如何编程调用OpenAI的ChatGPTAPI接口【4】OpenAIservicesarenotavailableinyo......
  • virt-manager 新建远程连接报错
    报错信息:解决:如果virt-manager需要远程连接管理虚拟机,则需要安装虚拟化界面工具#ubuntusudoapt-getinstallssh-askpass-gnome--no-install-recommends#......
  • vue3 + vite 报错处理
    TypeError:vite.defineConfigisnotafunction执行命令:npminstall@vitejs/plugin-vue-D config里面配置代码:importvuefrom'@vitejs/plugin-vue'exportdefa......
  • CC1101RGPR学习笔记:工作原理简单入门
     众所周知,在IOT的市场应用中,从通信协议细分的话,有SUB-1G,2.4G,3G,4G,以及最新推出的5G,虽然5G通信协议已经在崭露头角,但是不同的通信协议在不同的应用领域之中还是占据着一......
  • 千姿百态,瞬息万变,Win11系统NeoVim打造全能/全栈编辑器(前端/Css/Js/Vue/Golang/Ruby
    我曾经多次向人推荐Vim,其热情程度有些类似现在卖保险的,有的时候,人们会因为一些弥足珍贵的美好暗暗渴望一个巨大的负面,比如因为想重温手动挡的快乐而渴望买下一辆二十万公里......
  • centos6报错ls: error while loading shared libraries: libc.so.6: cannot open shar
    生产环境由于误删了libc-2.12.so和libc.so.6文件导致报错如下:现在复现此过程:1.移除这2个文件mvlibc-2.12.solibc.so.6/opt/此时再次执行命令就会报错,错误信息如下:ls:er......
  • 项目运行报错:目标进程已退出,但未引发 CoreCLR 启动事件。
      项目运行报错:目标进程已退出,但未引发CoreCLR启动事件。请确保将目标进程配置为使用.NETCore。如果目标进程未运行.NETCore,则发生这种情况并不意外。 解决方......
  • 159-DataSource name not set,ruoyi升级后,job启动报错
    启动是报错:quartz.SchedulerConfigException:DataSourcenamenotset找到该"ScheduleConfig.java"类,将下面代码prop.put("org.quartz.jobStore.class","org.quartz.im......
  • 使用chatGPT助力英语学习
    chatGPT支持多语言,如果使用的好,可以极大的提高我们英语学习的效率,当然,对语文的学习chatGPT同样可以帮助到我们,本文先用一个简单的例子示范一下英语学习。大多数孩子英语词......