一 测试主备服务器是否正常
1.1 验证主备库数据是否同步
**使用manager管理工具分别连接主备库
在主库上创建t_test_1表
**
create table t_test1 (id int,num int);
执行后,可以看到创建表成功,进行查询。
**连接备库
在备库上查询在主库中创建的t_text_1表,验证备库是否同步主库数据
**
select * from t_test_1;
提示查询成功
二 模拟故障
2.1 模拟确认监视器服务停止
**确认监视器停止
主库实例服务停止,无影响。
主库守护进程服务与实例服务均停止,不会发生故障自动切换,将主库守护进程服务启动后,在此集群模式下,还是作为主库。
**
停止确认监视器服务
service DmMonitorServiceGRP1 stop
登录普通监视器
$ cd /opt/dmdbms/bin
$ dmmonitor /opt/dmdbms/monitor/monitor.ini
**可以看到集群状态正常
在主库中添加一条数据
**
insert into t_test_1 values (1,111);
commit;
添加成功后,连接备库查询是否有新增数据
select * from t_test_1;
**监视器服务停止,主备库数据还在同步。
在确认监视器服务关闭且当主库实例服务关闭,但守护进程存在时,守护进程会将主库守护实例启动,进行恢复。
**
**确认监视器配置为故障自动切换,在确认监视器服务关闭且当主库实例服务关闭后且守护进程关闭,不会发生故障切换动作。
停止主库守护进程服务及实例服务
**
**当主库守护进程服务及实例服务关闭
备库只能进行查询操作,无法进行,增删改等操作。
报错:试图在STANDBY模式下,修改用户库
不会进行故障自动切换
**
此情况下将主库守护进程服务启动后,还是作为集群主库。
2.2 主库守护服务关闭
2.2.1 主库守护进程服务关闭
主库守护进程服务关闭后,监视器状态如下图
**此时主备库状态未改变,且在主库中插入数据,备库仍可以查询
主库插入数据
**
备库查询数据
2.2.2 主库守护进程服务、实例进程均关闭
当主库守护进程服务与实例进程均关闭后,确认监视器会发生自动接管动作
**此时查看集群状态
之前的备库发生自动接管,变为主库,之前的主库状态未error
**
此时,之前的129主库因为实例关闭,无法连接,进行操作。
之前的130备库此时变为主库,连接后可以进行插入数据等操作。
2.3 主库实例服务关闭
**当主库实例服务关闭后,监视器状态
因为守护进程还在,守护进程完成了实例服务的MOUNT状态启动,并回复OPEN状态
**
show命令查看集群状态,已恢复正常
注:备库守护进程与实例服务除不会发生自动接管,其他一致
2.4 主库网络断开
使用root用户禁用网卡,eth3为本地环境网卡
# ifconfig eth3 down
登录确认监视器,判定129主库故障,130备库发生自动接管
**查看集群状态
原129主库WSTATUS状态卫error,原130备库接管为主库
**
将网卡恢复
# ifconfig eth3 up
登录确认监视器
收到同一个守护进程组的消息后,将129置为OPEN状态
此时130为主库,129为备库
2.5 主库宕机
对主库进行关机操作
# shutdown -h now
登录确认监视器查看状态
确认监视器开始执行自动接管操作
130成为主库,129 WSTATUS状态为error
启动129后,守护进程服务与实例服务自动重启
登录确认监视器,将129重新纳入集群
查看集群状态,130为主库,129为备库
2.6 备库宕机
此时129为备库,130为主库,监视器在130上,为在监视器查看集群状态,将130备库进行模拟宕机操作,在此时主库130上查看状态。
宕机后状态,接收守护进程消息超时
启动机器后,查看状态
130为主库,129为备库
此处与主库宕机不同,主库宕机后,备机自动接管为主库,主库启动,被纳入集群成为备机,
备机宕机后,启动,纳入集群还是备机。
2.7 手动切换主备库
登录普通监视器
$ cd /opt/dmdbms/bin
$ ./dmmonitor /opt/dmdbms/monitor/monitor_nor.ini
show 查看集群状态
**输入
choose switchover
查看可切换的实例
**
**如图,GRP1_RT_02 为可切换的实例
输入
login
进行登录
用户名密码均为 SYSDBA
**
**输入
switchover GRP1_RT_02
进行切换
**
show 查看集群状态,可以发现已经切换过来了