GaussDB for DWS实例故障修复

举报
如烟入清风 发表于 2020/06/19 09:06:24 2020/06/19
【摘要】 1. 操作场景数据节点上由于磁盘或raid故障,导致该raid组上cn、dn实例故障,会上报“ALM-37006 Coordinator进程异常” 或“ALM-37007 Datanode进程异常”等MPPDB相关告警。在修复硬件故障后,需修复故障raid上的cn、dn实例,使集群恢复Normal状态。2.整体过程描述3.前提条件1) GaussDB A集群安装成功,且已处于启动状态。2) ...

1. 操作场景

数据节点上由于磁盘或raid故障,导致该raid组上cn、dn实例故障,会上报“ALM-37006 Coordinator进程异常” 或“ALM-37007 Datanode进程异常”等MPPDB相关告警。在修复硬件故障后,需修复故障raid上的cn、dn实例,使集群恢复Normal状态

2.整体过程描述


3.前提条件

1) GaussDB A集群安装成功,且已处于启动状态。

2) DN环的主、备实例不能同时损坏,DN环的主、从备实例不能同时损坏,DN环的备、从备实例不能同时损坏,即一个DN环中只能损坏一个实例。

3) GaussDB A集群内如下实例至少存在一个正常运行的:

CMServer

CMAgent

GTM

Coordinator

4) 集群状态为Degraded状态。

5) 磁盘或raid等硬件故障已修复(可以使用cd,ls,touch等命令查看磁盘是否已经正常)。


4.注意事项

1) 在前一次修复结束后才能再次执行修复。因此请不要同时在多个集群节点上执行脚本gs_replace

2) 修复前不能锁定集群。

 

5.对系统影响

1) 当故障的只是dn实例,实例修复支持在线修复。

2) 当故障的包含cn实例,支持在线修复,但有以下限制场景。

说明:如果集群中含有故障的CN且其状态不为Deleted,那么在修复过程中用户执行DDL会报错,DML可以正常执行,其他场景执行业务不受影响。特别说明:由于修复CN的过程中会短暂锁集群,锁集群后用户下发的包含显式启动事务的DDL语句会出现等待,集群解锁后会报错或等待时间超过20分钟会报错。如包含创建临时表操作,在集群解锁后会报错(Don‘t support temp table when need reconnect pooler)。

修复故障实例过程中系统将关闭“自动剔除故障CN”功能,完成后系统再次打开该功能。因此建议在开始修复前确认故障的CN已经被自动剔除(即故障的CN状态为Deleted),否则在替换过程中用户执行DDL会报错。


6.修复步骤

1) omm用户登录集群的任意一个CN实例正常的服务器。

2) 执行以下命令,启用环境变量。

   source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile

3) 执行查询集群状态命令,确认具体故障实例所在节点和实例名称。查看发现集群是“Degraded”状态,且在一段时间(几分钟内)集群状态稳定维持不变。具体实例状态显示为非“Normal”状态的节点和实例。

    查询命令:cm_ctl query -Cvd

    结果如下图:



以上述查询结果为例,故障实例所在节点名称为redhat1-1。

4) 使用如下命令在需要替换实例的主机上清理可能存在的残留文件:

(if [ -f $PGHOST/GaussReplace.dat ];then rm $PGHOST/GaussReplace.dat;fi)

说明: 该文件为替换故障实例、替换主机中产生的用于记录执行步骤的临时文件,如果在上次执行过程中出现宕机或网卡中断等,可能会导致该文件残留。在替换故障实例前检查该文件是否存在,且生成时间非本次替换故障实例的时间,则可判断为上次执行的残留文件,删除该文件后,继续执行替换故障实例。

5) 使用如下命令完成配置操作。

命令:gs_replace -t config -h redhat1-1

说明:如需修复多节点的实例故障,在-h参数后面依次跟上主机名,主机名中间以逗号隔开,如:gs_replace -t config -h redhat1-1,redhat1-2

配置操作会清理替换实例的空间,初始化替换实例,配置替换实例。

如果收到提示:“GAUSS_50201: The XXX does not exist.",则请检查对应的实例数据目录是否存在。如果不存在,请重新创建目录后再次执行上述命令。

config的运行结果成功后,再进行下一步,如下图:


6) 使用如下命令在需要替换实例的节点上完成启动操作。

命令:gs_replace -t start -h redhat1-1

启动操作会启动集群替换实例的节点。

注:config时有多节点实例故障,start也要启动多个节点,且start命令可能会超时,但不影响在后台的build的运行,如下:

7) 修复过程中,以omm用户登录CN节点,执行如下命令查询集群修复进度和状态。

source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile

cm_ctl query -Cv


8) 连接CN实例,执行如下命令确认实例主备完全同步(返回结果为0行)。

命令:gsql -d postgres -p port  -r

gsql登录到数据库后执行查看命令:select pgxc_get_senders_catchup_time();


9) checkpoint


8. 主备切换

1) 执行如下命令进行实例重置,恢复集群均衡状态。

cm_ctl switchover -a –t 3600

2) 执行如下命令查询集群状态,确认集群状态已恢复为Normal。

命令:cm_ctl query




更多精彩内容,请关注华为云开发者社区论坛:https://bbs.huaweicloud.com/forum/forum-598-1.html 及微信公众号“华为云AI”


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。