注册
主备集群故障场景模拟
培训园地/ 文章详情 /

主备集群故障场景模拟

陈星宇 2022/11/07 1506 2 0

一,实时主备环境

业务IP 心跳IP 监视器IP
主库 192.168.92.201 192.168.92.191 192.168.92.202
备库 192.168.92.202 192.168.92.191

二,场景模拟

1.主备集群守护进程是自动切换模式下

1.1 模拟确认监视器开启时主库节点故障

1.1.1 主机数据库进程被杀死

ps -ef | grep dms
kill -9 1309
确认监视器收到主库RAC1故障信息,守护进程检测到RAC1数据库进程挂掉,开始自动拉起RAC1,确认监视器开始接管集群,将备库RAC2切换为primary(主库),切换后数据库正常工作
image.png
image.png

1.1.2 主机数据库守护进程和数据库进程被杀死

ps -ef | grep dms
ps -ef | grep dmw
kill -9 1267
kill -9 2360
image.png
确认监视器收到主库RAC1故障信息,守护进程检测到RAC1数据库进程挂掉确认监视器开始接管集群,将备库RAC2切换为primary(主库),切换后数据库正常工作
image.png
image.png
将主机数据库实例RAC1与守护进程重新启动
image.png
重新启动后,确认监视器将RAC1切换为standby(备库)
image.png
image.png

1.1.3备机数据库进程被杀死

ps -ef | grep dms
kill -9 1309
确认监视器收到主库RAC1故障信息,守护进程检测到RAC1数据库进程挂掉,开始自动拉起RAC1,确认监视器开始接管集群,将备库RAC2切换为primary(主库),切换后数据库正常工作
image.png
RAC2守护进程检测到RAC2数据库进程挂掉,开始自动拉起RAC2数据库服务进程。
image.png
备库RAC2数据库状态恢复为open状态
image.png

1.1.4备机数据库进程与守护进程被杀死

ps -ef | grep dms
ps -ef | grep dmw
kill -9 1267
kill -9 2360
image.png
确认监视器提示RAC2的守护进程消息接收超时,监视器将RAC2的状态切换为ERROR,不做其他操作。
image.png
image.png
重新启动备库RAC2的数据库实例与守护进程,确认监视器重新接收到到RAC2守护进程消息,确定RAC2数据库服务已经启动,将RAC2数据库状态切换到open状态
image.png

1.2 模拟确认监视器关闭时主库节点故障

1.2.1 主机数据库进程被杀死

ps -ef | grep dms
kill -9 2898
image.png
在确认监视器关闭的情况下,杀死主库数据库服务进程后,打开确认监视器
./dmmonitor /dm8/data/DAMENG/dmmonitor.ini
守护进程检测到RAC1数据库进程挂掉,开始自动拉起RAC1数据库实例,但主备不会切换
image.png

1.2.2 主机数据库守护进程和数据库进程被杀死

ps -ef | grep dms
ps -ef | grep dmw
kill -9 1267
kill -9 2360
image.png
在确认监视器关闭的情况下,杀死主库数据库服务进程与数据守护进程后,打开确认监视器
./dmmonitor /dm8/data/DAMENG/dmmonitor.ini
备库没有接管主库
image.png

1.2.3备机数据库进程被杀死

ps -ef | grep dms
kill -9 46277
image.png
在确认监视器关闭的情况下,杀死主库数据库服务进程后,打开确认监视器
./dmmonitor /dm8/data/DAMENG/dmmonitor.ini
守护进程检测到RAC2数据库进程挂掉,开始自动拉起RAC2数据库实例
image.png

1.2.4备机数据库进程与守护进程被杀死

ps -ef | grep dms
ps -ef | grep dmw
kill -9 1267
kill -9 2360
image.png
在确认监视器关闭的情况下,杀死备库数据库服务进程与数据守护进程后,打开确认监视器
./dmmonitor /dm8/data/DAMENG/dmmonitor.ini
主库进入挂起状态
image.png
将备库恢复后
image.png

2.主备集群守护进程是手动切换模式下

2.1模拟主库节点故障

杀死主机数据库服务进程和守护进程
ps -ef | grep dms
ps -ef | grep dmw
kill -9 5760
kill -9 5853
image.png
在手动切换下,主库异常,备库不会自动接管主库,需要手动切换,此时数据库无法对外提供服务
image.png

2.2模拟备库节点故障

杀死主机数据库服务进程和守护进程
ps -ef | grep dms
ps -ef | grep dmw
kill -9 5760
kill -9 5853
image.png
在手动模式下,备库异常不影响数据库对外服务
image.png
image.png

3.主备库的网络断开

3.1 主备库的心跳网断开

3.1.1主库的心跳网断开

ifconfig ens33 down–禁用主库上的内部通信IP的网卡
image.png
确认监视器,接受守护进程DM1的消息超时,检测DM1实例故障,确认监视器开始接管集群,将备机DM2提升为primary,切换后数据库正常工作
image.png
image.png
启用主库上的内部通信IP的网卡
ifconfig ens33 up
image.png
重新启动后,确认监视器将DM1切换为standby(备库)
image.png

3.1.2 备库的心跳网断开

ifconfig ens33 down–禁用备库上的内部通信IP的网卡
image.png
监视器无法检测到备库,将DM2的状态切换为ERROR,不做其他操作。
image.png
image.png
重新启用备库内部通信IP的网卡,确认监视器重新接收到到DM2守护进程消息,可以检测到备库DM2数据库服务已经启动,将DM2数据库状态切换到open状态
image.png

3.1.3主备库的心跳网都断开

ifconfig ens33 down–禁用主备库上的网卡
image.png
image.png
确认监视器无法检测到主备库
image.png

3.2主备库业务网断开

3.2.1 主库的业务网断开

ifconfig ens37 down–禁用主库上业务IP的网卡
image.png
主库的业务IP断开,确认监视器不会接管集群,主备之间不会切换,但是数据库无法对外服务
image.png
image.png

3.2.2备库的业务网断开

ifconfig ens37 down–禁用备库上业务IP的网卡
image.png
备库的业务IP断开,主备集群可以对外服务,但备库无法连接
image.png

3.2.3主备库的业务网都断开

ifconfig ens37 down–禁用主备库上业务IP的网卡
image.png
image.png
主备库的业务IP断开,主备集群无法对外服务
image.png

三,测试结论

1.主备集群守护进程是自动切换模式下

(1)在确认监视器开启的情况下,如果主备集群主库服务进程异常后,确认监视器会自动接管集群并将备库切换为主库;如果主库数据库服务与守护进程同时异常时,确认监视器也会自动接管集群将备库切换为主库,让集群正常对外服务。重新启动数据库服务与守护进程,监视器会把数据库状态切换为standby模式
(2)在确认监视器开启的情况下,备集数据库服务进程异常或守护进程和数据库服务进程都异常时,数据库对外服务不受影响。确认监视器会把备库数据库状态切换为ERROR,当守护进程和数据库服务进程都启动后,自动将备库数据库状态切换回open状态。
(3)在确认监视器关闭的情况下,如果主备集群主库服务进程异常后,守护进程在发现后会自动重新拉起,但这种情况下备库并不会接管主库,数据库对外服务是停止的;如果主库数据库服务与守护进程同时异常时,备库也不会接管主库,数据库对外服务是停止的;
(4)在确认监视器关闭的情况下,如果备集数据库服务进程异常或守护进程和数据库服务进程都异常时,主库数据库状态为SUSPEND(挂起)
建议:
由上面测试的情况来看如果搭建的主备集群是自动切换的,建议打开确认监视器,如果主备集群中,任一一个节点异常后会导致整个集群服务异常,且主备之间不会自动切换。

2.在守护进程是手动切换模式下

(1)主库的数据库服务与守护进程异常时,数据库无法对外服务。备库的数据库服务与守护进程异常时,数据库可以正常对外服务。

3.主备集群网络故障时

(1)当主库与监视器的心跳网络出现故障时,确认监视器会自动接管集群,并将备库切换为主库,数据库可以对外服务;当备库与监视器的心跳网络出现故障时,确认监视器会把备库数据库状态切换为ERROR状态,数据库对外服务不受影响。网络恢复后自动将备库数据库状态切换回open状态;当主备库与监视器的心跳网络都出现故障时,监视器无法检测到主备库。
(2)当主库的业务网络出现故障时,确认监视器不会接管集群,主备库之间不会切换,数据库集群无法对外服务;当备库的业务网络出现故障时,主备集群可以对外服务,但备库无法连接;当主备库的业务网络都出现故障时,数据库无法对外提供服务。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服