ITPub博客

首页 > 数据库 > > 应急处理-主备机无法切换

应急处理-主备机无法切换

作者:GaussDB_数据库 时间:2020-01-08 17:15:40 0 删除 编辑

问题现象

用户在执行“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.


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3153952/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: MPPDB-WAL日志
请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19229