1.前提条件
(1)集群各节点正常。
(2)自动确认监视器集群请确认配置了手动监视器dmmonitor.ini
2. 主备集群节点切换
2.1 打开手动监视器
(1)使用dmdba用户,找到手动监视器配置文件dmmonintor.ini路径,手动监视器MON_DW_CONFIRM参数配置为0。(如果没有配置,请根据实际情况配置)
0为手动监视器配置
(2)使用dmdba用户:启动监视器
[dmdba@dmdsc3 dmdbms]$ cd /dm8/dmdbms/bin
[dmdba@dmdsc3 bin]$ ./dmmonitor /dm8/dmdbms/dmmonitor0.ini
(3)输入show命令查看目前集群状态,其中group GRP_RW为集群的组名,当前主备集群状态正常,DMRW1实例为primary,DMRW2为standby。
2.2 登录监视器
(1)输入login 登陆监视器,然后输入用户名和密码:
(2)登陆成功后,可以使用help查看帮助信息,输入q退出帮助。
2.3 查看可切换节点
输入choose switchover GRP_RW 查看集群可以切换的节点(GRP_DW为集群的分组名称,具体可以看2.1的第三点说明。),通过该命令查看到DMRW2实例节点可以作为primary节点进行切换。
2.4 切换节点
(1)输入switchover DMRW2回车,集群开始进行主备切换。
(2) 输入show确认集群状态,此时可以看到DMRW2实例已经切换为primary了,而DMRW1切为standby模式,通过查看下面的红框参数确认主备集群切换成功。
二、模拟主机故障
1. 模拟主数据库节点服务进程被杀
1.1.主机数据库杀掉主机数据库进程
通过root用户将dmserver进程kill:
确认监视器收到主实例DMRW2故障消息,守护进程检测到DMRW2数据库进程挂掉,自动开始拉起DMRW1,确认监视器开始接管集群,将备机DMRW1提升为primary,切换后数据库正常工作。
1.2主数据库模拟杀掉守护进程和数据库服务进程,确认监视器运行状态
此时,DMRW1为primary,在DMRW1数据库服务器使用root权限,杀掉dmwatch进程,杀掉dmserver进程。
[dmdba@dmdsc1 bin]$ ps -ef | grep dms
[dmdba@dmdsc1 bin]$ ps -ef | grep dmw
确认监视器收到主实例DMRW1故障消息,守护进程检测到DMRW1数据库进程挂掉,确认监视器开始接管集群,将备机DMRW2提升为primary,切换后数据库正常工作。
启动主库服务
监视器中恢复正常
重新手动切换
查看状态
1.3 备机数据库杀掉备机数据库进程
此时DMRW2为备库,使用root用户杀掉DMRW2的数据库服务器的服务进程dmserver:
DMRW2守护进程发现DMRW2数据库进程不在了,开始自动拉起DMRW2的数据库服务进程。确认监视器显示DMRW2数据库实例正常后由DMRW2守护进程进行拉起。
此时查看后台数据库服务进程已经拉起:
备机DMRW2的数据库状态又恢复为open状态。
1.4 模拟备机数据库守护与数据库服务进程被杀
使用root用户杀掉备机DMRW2的守护进程和数据库服务:
此时确认监视器提示DMRW2的守护进程消息接收超时,监视器将DMRW2的状态切换为ERROR,不做其他操作。
重新拉起数据库服务、守护进程后,确认监视器重新接受到DMRW2守护进程消息,确认DMRW2数据库服务已经启动,开始将DMRW2数据库状态切换到OPEN状态:
恢复正常
1.5 测试结论
(1)当主备集群主数据库服务异常后,确认监视器会自动接管集群并将备机切换为主库继续对外服务。同时,如果守护进程发现数据库服务进程异常后,会自动重新拉起数据库服务。
(2)当准备集群的主数据库守护进程与数据库服务进程同时异常的情况下,确认监视器也会自动将备机切换为主,集群正常对外服务。重新拉起异常节点的数据库守护进程与数据库服务进程后,确认监视器将其数据库状模式切换为standby模式。
(3)当备机数据库服务进程异常,数据库对外服务不受影响。备机的守护进程会尝试拉起数据库服务,确认监视器提示备机数据库为ERROR。当守护进程自动拉起数据库服务后,确认监视器将备机数据库状态又切换为OPEN状态。
(4)当备机的守护进程与数据库服务进程都异常,确认监视器提示接收备机守护进程消息超时,自动将数据库状态切换为error,此时不影响数据库集群的对外服务。当备机守护进程和数据库进程拉起后,确认监视器重新接收到备机的守护进程消息,自动将备机的数据库状态切换为OPEN继续对外服务。
2. 禁用主备库上网卡
监视器不能检测到主备库
启用网络,监视器检测恢复正常
查看主备状态
3. 模拟主机断电(DMRW2为主, DMRW1为备)
查看此时状态
关闭 DMRW2 机器
[root@dmdsc2 ~]# shutdown -h now
监视器检测到主库异常,自动进行start to auto takeover操作,备库由open->takeover->open
查看状态,备库DMRW1自动接管变为PRIMARY
登录数据库查看
启动关闭的机器,自动将之前的主库加入为备库
show 查看状态
登录数据库查看
4. 模拟备机断电(DMRW1为主, DMRW2为备)
查看DMRW2为备
关机
监视器检测到备机异常
查看状态
备机启动后,监视器显示主备正常
show