修复MPPDBServer实例
操作场景
当MPPDBServer实例发生故障后,会上报“ALM-37006 Coordinator进程异常” 或“ALM-37007 Datanode进程异常”等MPPDB相关告警。为了服务快速恢复正常,需进行实例修复。
前提条件
- GaussDB 200集群安装成功,且处于已启动状态。
- DN环的主、备实例不能同时损坏,DN环的主、从备实例不能同时损坏,DN环的备、从备实例不能同时损坏,即一个DN环中只能损坏一个实例。
- GaussDB 200集群内如下实例至少存在一个正常运行的:
- CMServer
- CMAgent
- GTM
- Coordinator
如果某个GTM实例存在故障,则要求实例修复前另外一个GTM实例必须为最高可用模式。
注意事项
- 修复过程中,请勿进行数据增删改等DML操作以及DDL操作,以防数据丢失导致数据不一致。
- 在前一次修复结束后才能再次执行修复。因此请不要同时在多个集群节点上执行脚本gs_replace。
- 修复前不能锁定GaussDB 200集群。
对系统影响
修复过程中,请勿进行数据增删改等DML操作以及DDL操作,以免数据的丢失。
处理步骤
- 以omm用户登录GaussDB 200集群的任意一台实例正常的服务器。
- 执行以下命令,启用环境变量。
source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile
- 执行以下命令,查看具体故障实例所在节点。查看发现集群不是“Normal”状态,且等待几分钟后重新查看状态,集群状态仍维持不变,状态显示为非“Normal”的节点为故障实例所在节点。
gs_om -t status --detail
[ CMServer State ] node node_ip instance state -------------------------------------------------------------------------------- 1 redhat1-1 10.90.57.221 2 /opt/huawei/Bigdata/mppdb/cm/cm_server Primary 2 redhat1-2 10.90.57.222 1 /opt/huawei/Bigdata/mppdb/cm/cm_server Standby [ Cluster State ] cluster_state : Degraded redistributing : No balanced : Yes [ Coordinator State ] node node_ip instance state ------------------------------------------------------------------------------- 1 redhat1-1 10.90.57.221 5001 /srv/BigData/mppdb/data1/coordinator Normal 2 redhat1-2 10.90.57.222 5002 /srv/BigData/mppdb/data1/coordinator Normal 3 redhat1-3 10.90.57.223 5003 /srv/BigData/mppdb/data1/coordinator Normal [ Central Coordinator State ] node node_ip instance state -------------------------------------------------------------------------------- 2 redhat1-2 10.90.57.222 5002 /srv/BigData/mppdb/data1/coordinator Normal [ GTM State ] node node_ip instance state sync_state ------------------------------------------------------------------------------------------------------- 2 redhat1-2 10.90.57.222 1001 /opt/huawei/Bigdata/mppdb/gtm P Primary Connection ok Sync 1 redhat1-1 10.90.57.221 1002 /opt/huawei/Bigdata/mppdb/gtm S Standby Connection ok Sync [ Datanode State ] node node_ip instance state | node node_ip instance state | node node_ip instance state -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 redhat1-1 10.90.57.221 6001 /srv/BigData/mppdb/data2/master1 P Down Disk damaged | 2 redhat1-2 10.90.57.222 6002 /srv/BigData/mppdb/data2/slave1 S Standby Normal | 3 redhat1-3 10.90.57.223 3002 /srv/BigData/mppdb/data2/dummyslave1 R Secondary Normal 1 redhat1-1 10.90.57.221 6003 /srv/BigData/mppdb/data3/master2 P Primary Normal | 3 redhat1-3 10.90.57.223 6004 /srv/BigData/mppdb/data3/slave2 S Standby Normal | 2 redhat1-2 10.90.57.222 3003 /srv/BigData/mppdb/data3/dummyslave2 R Secondary Normal 2 redhat1-2 10.90.57.222 6005 /srv/BigData/mppdb/data2/master1 P Primary Normal | 3 redhat1-3 10.90.57.223 6006 /srv/BigData/mppdb/data2/slave1 S Standby Normal | 1 redhat1-1 10.90.57.221 3004 /srv/BigData/mppdb/data2/dummyslave1 R Secondary Normal 2 redhat1-2 10.90.57.222 6007 /srv/BigData/mppdb/data3/master2 P Primary Normal | 1 redhat1-1 10.90.57.221 6008 /srv/BigData/mppdb/data3/slave2 S Standby Normal | 3 redhat1-3 10.90.57.223 3005 /srv/BigData/mppdb/data3/dummyslave2 R Secondary Normal 3 redhat1-3 10.90.57.223 6009 /srv/BigData/mppdb/data2/master1 P Primary Normal | 1 redhat1-1 10.90.57.221 6010 /srv/BigData/mppdb/data2/slave1 S Standby Normal | 2 redhat1-2 10.90.57.222 3006 /srv/BigData/mppdb/data2/dummyslave1 R Secondary Normal 3 redhat1-3 10.90.57.223 6011 /srv/BigData/mppdb/data3/master2 P Primary Normal | 2 redhat1-2 10.90.57.222 6012 /srv/BigData/mppdb/data3/slave2 S Standby Normal | 1 redhat1-1 10.90.57.221 3007 /srv/BigData/mppdb/data3/dummyslave2 R Secondary Normal
以上查询结果为例,故障实例所在节点名称为redhat1-1。
- (可选)使用如下命令在需要替换实例的主机上清理可能存在的残留文件。此命令仅在上次修复故障实例执行失败的情况下需要执行。
(if [ -f $PGHOST/GaussReplace.dat ];then rm $PGHOST/GaussReplace.dat;fi)
说明:
该文件为替换故障实例、替换主机中产生的用于记录执行步骤的临时文件,如果在上次执行过程中出现宕机或网卡中断等,可能会导致该文件残留。在替换故障实例前检查该文件是否存在,且生成时间非本次替换故障实例的时间,则可判断为上次执行的残留文件,删除该文件后,继续执行替换故障实例。
- 执行如下命令完成故障实例所在节点配置操作。
gs_replace -t config -h redhat1-1
配置操作会清理替换实例的空间,初始化替换实例,配置替换实例。
如果收到提示:“GAUSS_50201: The XXX does not exist.”,则请检查对应的实例数据目录是否存在。如果不存在,请重新创建目录后再次执行上述命令。
说明:
如果指定主机的表空间所在磁盘出现故障,从而导致表空间中的数据损坏,更换新磁盘后,需要指定“--force”参数对该主机强制进行表空间数据的恢复。如果在config阶段指定“--force”参数,则在start阶段也必须指定“--force”参数。
- 执行如下命令完成故障实例所在节点启动操作。
gs_replace -t start -h redhat1-1Starting. ====================================================================== Successfully started instance process. Waiting to become Normal. ====================================================================== . ====================================================================== Start succeeded on all nodes. Start succeeded.
启动操作会启动集群替换实例的主机。
- 执行如下命令进行实例重置。
说明:
switch为维护操作:确保集群状态正常,所有业务结束,并使用pgxc_get_senders_catchup_time()视图查询无主备追赶后,再进行switch操作。
gs_om -t switch --reset
重置过程会恢复集群初始状态,以保证各主机的负载都是均衡的。
- 执行如下命令查询集群状态。
gs_om -t status
查看更多:华为GaussDB 200 实例故障处理「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论
- (可选)使用如下命令在需要替换实例的主机上清理可能存在的残留文件。此命令仅在上次修复故障实例执行失败的情况下需要执行。