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服務可以禁用后,對故障轉移沒有影響,但是在錯誤日志中會記錄未能啟用這兩個服務。
-
在意外停止下,會發生自動故障轉移,具體要根據故障轉移服務的基本設置
-
在斷電的情況下,會實現快速故障轉移。
-
心跳網絡的失敗,不會影響故障轉移和正常的業務。