环境说明
角色 | 主机名 | IPADDR | OS Version | DB version |
主 | opendb01 | 192.168.40.160 | Centos7.9 x86_64 | openGauss6.0.0 |
从 | opendb02 | 192.168.40.161 | Centos7.9 x86_64 | openGauss6.0.0 |
主备切换背景
领导要求在系统上线前进行主备切换演练。
本文档采用手工对数据库节点做主备切换,以规避主备切换异常数据不一致。
补充:
1、主备切换有以下场景:
发现数据库节点主备failover后需要恢复原有的主备角色
怀疑硬件故障需要手动进行主备切换
级联备机不能直接转换为主机,只能先通过switchover或者failover成为备机,然后再切换为主机
2、注意事项:
主备切换为维护操作,确保openGauss状态正常,所有业务结束后,再进行切换操作。
在开启极致RTO时,不支持级联备机。因为在极致RTO开启情况下,备机不支持连接,所以无法与级联备机同步数据。
级联备机切换后,主机的synchronous_standby_names参数不会自动调整,因此可能需要手动调整主机的synchronous_standby_names参数,否则有可能会导致主机的写业务阻塞。
主备切换前准备
停止所有业务
和现场同事确认已停止与库相关的所有应用,避免切换过程中产生新数数据。
主备切换步骤
查看主备情况
任一节点操作均可
su - omm
gs_om -t status --detail
输出如下:
[omm@opendb01 ~]$ gs_om -t status --detail
[ Cluster State ]
cluster_state : Normal
redistributing : No
current_az : AZ_ALL
[ Datanode State ]
node node_ip port instance state
-----------------------------------------------------------------------------------------------
1 opendb01 192.168.40.160 5432 6001 /opt/huawei/install/data/dn P Primary Normal
2 opendb02 192.168.40.161 5432 6002 /opt/huawei/install/data/dn S Standby Normal
登录备节点,进行主备切换
登录备节点,进行主备切换。另外,switchover级联备机后,级联备机切换为备机,原备机降为级联备。
以操作系统用户omm登录准备切换为主节点的备节点,执行如下命令:
su - omm
gs_ctl switchover -D /opt/huawei/install/data/dn
参数说明:-D /opt/huawei/install/data/dn 即-D 备节点的数据目录
输出如下:
[root@opendb02 ~]# su - omm
Last login: Thu Oct 24 16:08:29 CST 2024 on pts/2
[omm@opendb02 ~]$ gs_ctl switchover -D /opt/huawei/install/data/dn
[2024-10-25 04:55:38.777][4139][][gs_ctl]: gs_ctl switchover ,datadir is /opt/huawei/install/data/dn
[2024-10-25 04:55:38.778][4139][][gs_ctl]: switchover term (1)
[2024-10-25 04:55:38.783][4139][][gs_ctl]: waiting for server to switchover........
[2024-10-25 04:55:43.878][4139][][gs_ctl]: done
[2024-10-25 04:55:43.878][4139][][gs_ctl]: switchover completed (/opt/huawei/install/data/dn)
注意:对于同一数据库,上一次主备切换未完成,不能执行下一次切换。当业务正在操作时,发起switchover,可能主机的线程无法停止导致switchover显示超时,实际后台仍然在运行,等主机线程停止后,switchover即可完成。比如在主机删除一个大的分区表时,可能无法响应switchover发起的信号。
补充:主机故障时应对方法
主机故障时,可以在备机执行如下命令。
su - omm
gs_ctl failover -D /opt/huawei/install/data/dn
参数说明:-D /opt/huawei/install/data/dn 即-D 备节点的数据目录
保存数据库主备机器信息
任一节点操作即可,会动态地保存所有节点机器信息
su - omm
gs_om -t refreshconf
输出如下:
[omm@opendb01 ~]$ gs_om -t refreshconf
Generating dynamic configuration file for all nodes.
Successfully generated dynamic configuration file.
总结
openGauss6.0比openGauss5.0更加完善,在切换方面的处理机制设计的很好,实验中暂未发现主备时间线不一致出现都是备的情况。
点击阅读原文跳转作者文章