绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
应急处理-主备机无法切换
2020-01-08 17:15:40

问题现象

用户在执行“gs_om -t switch -h hostname -I instname”命令的时候,在命令执行结束之前,使用“Ctrl+C”中断了主备切换过程,中断后再次对同组内的DN执行主备切换的时候,无法切换成功。执行结果及报错如下:
gs_om -t switch -h plat1 -I DB1_2
Switching instances.
[GAUSS-53007] : Failed to switch cluster. Error:
Set output to terminal.
time="2019-05-31T15:28:36+08:00" level=error msg="The group group_1 is doing switchover"
time="2019-05-31T15:28:36+08:00" level=fatal msg="switchover datanode primary to DB(DB1_2) failed"

使用“Ctrl+C”中断switch过程后,执行同组内的主备切换会报错,需要进行故障处理,但切换其它组的主备,可正常执行切换命令。

原因分析

在执行“gs_om -t switch -h hostname -I instname”命令的过程中,gs_om脚本会调用CM的主备切换命令,在切换过程中CM会给正在执行切换的DN所在组加锁。“Ctrl+C”会中断gs_om调用CM的过程,但此时CM已经成功下发切换命令,并且为指定切换DN所在的组加了锁,因此,再次执行同组内的DN主备切换时,会报错为该组DN正在执行切换。

处理步骤

  1. omm用户身份登录GaussDB 100任意服务器。
  2. 查询锁,获得被锁的组名。
    etcdctl --cert="$ETCD_CERT_CLIENT_FILE" --key="$ETCD_KEY_CLIENT_FILE" --cacert="$ETCD_CA_CLIENT_FILE" --endpoints="$ETCD_ADDRESS" get /clusters/cmd_cm/arbitrate_db --prefix
    /clusters/cmd_cm/arbitrate_db/group_1
    group_1

  1. 释放锁。
    etcdctl --cert="$ETCD_CERT_CLIENT_FILE" --key="$ETCD_KEY_CLIENT_FILE" --cacert="$ETCD_CA_CLIENT_FILE" --endpoints="$ETCD_ADDRESS" del /clusters/cmd_cm/arbitrate_db/group_1
    1

  1. 再次执行主备切换。
    gs_om -t switch -h plat1 -I DB1_1
    Switching instances.
    Successfully switched cluster.


分享好友

分享这个小栈给你的朋友们,一起进步吧。

GaussDB_数据库
创建时间:2020-01-06 16:21:44
华为GaussDB数据库小栈
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • GaussDB_数据库
    专家
戳我,来吐槽~