DN服务器异常
服务器发生了掉电、操作系统故障、网络故障等非数据库故障时,会对数据库和业务运行产生影响。此节介绍故障服务器上只部署了DN的情况下该如何处理以把对业务的影响降到最低。
- 重新执行失败作业。
如果40s内服务器未恢复,GaussDB 200会自动将对应的备DN升主,使集群正常运行。备升主期间正在运行的作业会失败;备升主后启动的作业不会再受影响。
因此,用户只需重新执行失败作业并观察作业执行情况。预计影响业务时长:2分钟。如果想做到不感知该切换影响,可以在应用层通过编码进行作业失败后的重试。示例:重新执行应用SQL中给出的JDBC编码示例供参考。
- 修复故障服务器。
请根据故障服务器类型进行处理。操作系统故障定位手段和网络故障定位手段提供了部分故障处理和定位办法,可参考进行故障定位和恢复。同时建议您联系专业的操作系统和网络维护人员进行支撑。
故障服务器修复后,使用ping命令,确认服务器是否可以成功连通。
- 加回故障服务器。
- 故障服务器修复后,请按如下办法进行实例加回。预计影响业务时长:8分钟。
- 执行gs_om -t status --detail重新查看集群状态。
确认故障服务器上原始为主的DN实例状态是否已切换为“Standby Normal”。此时集群cluster_state状态应该为Normal,balanced状态应该为“No”。


服务器修复到修复完成期间,对应DN实例的状态演进正常为:Down->Starting->Standby Normal。状态变换耗时视机器脱离集群时间而不同,脱离时间越长,状态切换时间越长。在此过程中作业运行不受影响。
如果服务器修复后DN长时间(例如,3分钟)未切换成“Standby Normal”,请尝试使用gs_om -t start -h HOSTNAME启动故障节点上的GaussDB 200进程,然后重新查询集群状态。如果状态依然未变成“Standby Normal”,可以通过数据库故障定位手段中的办法确认服务器是否还存在其他问题,并推荐联系技术支持工程师协助处理。
- 停止应用层的作业下发,准备重置实例状态。
- 停止数据库中的残留SQL。
在各CN服务器上连接数据库,执行如下命令停止残留SQL。
SELECT PG_TERMINATE_BACKEND(PID) FROM PG_STAT_ACTIVITY WHERE STATE='active' AND QUERY NOT LIKE '%TERMINATE%' AND APPLICATION_NAME NOT IN('JobScheduler','workload','WorkloadMonitor','cm_agent');返回t表示有残留SQL被停止。
pg_terminate_backend ---------------------- t (1 row)- 执行命令gs_om -t switch --reset重置实例状态。
说明:
switch为维护操作:确保集群状态正常,所有业务结束,并使用pgxc_get_senders_catchup_time()视图查询无主备追赶后,再进行switch操作。
- 执行gs_om -t status --detail重新查看集群状态。确认集群balanced状态是否已恢复为“Yes”。如果状态未变成“Yes”可以尝试重新查看。长时间未恢复为“Yes”,可以尝试通过查看OM日志进行问题定位,并联系华为技术工程师协助处理。

- 重新启动应用层的作业下发。
- 故障服务器无法修复时,请更换服务器后,按如下步骤操作。预计影响业务时长:数据量相关,一般为1到4小时。
- 停止应用层的作业下发,准备替换故障主机。
- 停止数据库中的残留SQL。
- 更换故障节点。
- 重新启动应用层的作业下发。
查看更多:华为GaussDB 200 服务器停止响应或掉电「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论
- 执行命令gs_om -t switch --reset重置实例状态。
- 执行gs_om -t status --detail重新查看集群状态。
- 故障服务器修复后,请按如下办法进行实例加回。预计影响业务时长:8分钟。




