测试环境
| IP | VIP | OS | DB |
主库 | 168.3.1.212 | 168.3.1.214 | rhel7.6 | KingbaseES V008R006C007B0012 |
备库 | 168.3.1.213 | 168.3.1.214 | rhel7.6 | KingbaseES V008R006C007B0012 |
SWITCH_OVER
switch_over指人为的计划性的切换.
1.确认节点信息
node1是主库,node2是备库.
2.确认主备是否有延迟
当前备库没有延迟
3.在备库执行手动切换
4.验证
node1降级成备库,node2升级成主库
5.主备切换流程分析
node1和node2暂停repmgr进程.
node1执行checkpoint.
node1卸载vip.
node1停库.
确认node1上的数据库已经停止,并且node1上的vip已经卸载.
在node2上挂载vip.
在node2上运行promote命令,将node2升级为主库.node1升级为备库.
恢复node1和node2上的repmgr进程.
6.注意事项
如果集群中还有另外的备库(node3),那么在node2升级主库的命令需要增加参数如下:
repmgr standby switchover --siblings-follow
加入该参数,node2升级为主库后,会自动在node3执行repmgr standby follow命令,在主库中添加一个指向node3的复制槽.
FAIL_OVER
fail_voer指非人为计划性的切换,故障性的切换.
1.查看当前自动故障转移是否开启
2.查看当前的主库信息
3.关闭node2上的数据库
recovery='standby'说明将主库关闭后,集群不会自动将主库拉起.但是备库关闭后,会自动将备库拉起.
4.一分钟后,再次查看集群各节点信息
可以看到node2关闭后,node1自动切换为主库了,此时的集群中有两个主库,node1启动,node2没启动.
5.一个集群中不可以有两个主库,此时需要将node2降级为备库,并重新加入集群
6.验证
7.注意事项
当集群中有两个主库时,很可能这两个主库的数据已经不一样了,此时要确定好到底选择让哪个节点降级为备库,降级命令和参数如下:
repmgr node rejoin -h 168.3.1.212 -d esrep -U esrep -p 54321 --force-rewind --no-check-wal
该节点以备库的身份重新加入集群,主库为168.3.1.212,强制与主库的数据保持一致,并且忽略时间线和lsn检查.
参考文档
KingbaseES主备和读写分离集群使用手册 — KingbaseES产品手册
标签:主库,repmgr,备库,主备,node1,集群,node2,kingbaseES From: https://blog.51cto.com/u_13482808/7593327