首页 > 数据库 > > 应急处理-DN主备切换
集群主DN发生故障,DN的备机自动升为主机后,可能导致集群各主机上的主备分布不均衡,从而使各主机的运行负载不均衡。待故障DN恢复正常后,可以手工执行主备切换,使各主机上的主备DN分布均衡。在其他场景,如有需要也可以通过命令行手动切换DN。
部署集群时,建议用户将主机上的主DN对应的备1实例和备2实例分散部署在其他多个主机上,且尽量使各主机上的DN数相同。如表1所示。
主机 | AZ | CN | CM | ETCD | DN |
|---|---|---|---|---|---|
plat1 | AZ1 | CN 1 | CM备 | ETCD1 | DN1备 |
plat2 | AZ1 | CN 2 | CM主 | ETCD2 | DN2备 |
plat3 | AZ1 | - | - | ETCD3 | DN1主 |
plat4 | AZ1 | - | - | - | DN2主 |
如果主机plat3中DN1的主实例发生故障,则主机plat1中DN1的备实例会自动升主。待DN1的主实例恢复正常后,手动切换DN1的主备实例,保持各个主机中主备实例数目的一致。
集群已经启动,实例的主备关系正常。
gs_om -t switch -h plat1 -I DB1_2plat1为当前备DN所在的主机名称。
DB1_2为要被切换的备DN名称。

[GAUSS-53007] : Failed to switch cluster.
Error:Set output to terminal.
time="2019-07-16T15:45:51+08:00" level=error msg="The group group_1 is doing switchover"
time="2019-07-16T15:45:51+08:00" level=fatal msg="switchover datanode primary to DB(DB1_2) failed"
解锁方法如下:
[omm@plat1 ~]$ 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 --user=root:Huawei@gaussdb123
/clusters/cmd_cm/arbitrate_db/group_1
group_1
[omm@plat1 ~]$ 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 --user=root:Huawei@gaussdb123
omm@plat1:~>gs_om -t switch -h plat1 -I DB1_2
Switching instances.
Successfully switched cluster.
如果启动集群或者停止集群服务失败,请根据日志文件中的日志信息排查错误,参见管理日志。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3165198/ ,如需转载,请注明出处,否则将追究法律责任。