基于iSCSI的SQL Server 2012群集测试(四)--模拟群集故障转移
6、模拟群集故障转移
6.1 模拟手动故障转移(1+1)
模拟手动故障转移的目的有以下几点:
-
测试群集是否能正常故障转移
-
测试修改端口是否能同步到备节点
-
测试禁用full-text和Browser服务对故障转移是否有影响
-
测试禁用管道协议对故障转移是否有影响
以上问题在“基于iSCSI的SQL Server 2012群集测试(二)--SQL群集安装后初始化配置测试”已经有说明,以下是在设置完成后故障转移的整个过程。正常完成。
活动节点的服务情况
非活动节点的服务情况
手动故障转移各个状态过程
6.2 模拟SQL Server意外停止的情况下故障转移(1+1)
如果在SQL Server服务管理器停止SQL Server服务,并不会发生故障转移,认为正常脱机;
而且我们并不建议从管理器中停止服务,最好方式在故障转移群集管理器中,使资源脱机。
因此可以通过kill服务所在进程,使得SQL Server意外停止;通过测试发现,意外停止SQL Server服务,第一次会导致在本节点自动重启,第二次群集故障转移,第三次就保持失败状态,不再转移;
查看后发现服务属性指定在六个小时内最大故障数为1,也就是说六个小时内如果多次故障,将会保持失败状态,服务将不可用;
建议改成:微软建议的最大故障数是节点数减一,我建议将值改成3和一个小时的故障;也就是如果一个小时内发生3个故障,将人工处理。
6.3 模拟活动节点服务器意外断电时故障转移
虚拟服务器要模拟断电比较难,无法通过拔电源断电。为了更逼真的模拟是服务器意外断电,此处使用shutdown命令来让服务器立即强制重启,来观察SQL Server群集故障转移情况。
在节点vms001执行命令:shutdown -r –f –t 0,来让节点服务器vms001强制重新启动,延迟0秒。由于服务器vms001是立即重启。在几秒后转移到另外一个节点。
6.4 模拟SQL Server突然断网故障转移
目前公司有四个网络
外网:非用于群集
存储:非用于群集,专用于存储通信
内网:用于公共网络
心跳:用于心跳网络
-
在活动节点禁用心跳网络后,并未发生转移;因此在禁用心跳网络之后,会在公共网络进行群集通信;可实现自动故障转移。
-
在活动节点禁用公共网络后,由于域网络不可用,将导致整个服务不可用
6.5 模拟群集账户锁定下故障转移
账户锁定的情况下,运行正常,但一旦发生故障转移,将无法重启服务。
模拟故障转移结论
-
故障转移过程,会将修改的监听端口号同步到备节点,前提在Browser服务开启的情况下,若Browser服务未开启,将导致资源失败。
-
Browser服务和full-text服务可以禁用后,对故障转移没有影响,但是在错误日志中会记录未能启用这两个服务。
-
在意外停止下,会发生自动故障转移,具体要根据故障转移服务的基本设置
-
在断电的情况下,会实现快速故障转移。
-
心跳网络的失败,不会影响故障转移和正常的业务。