Sql-Server
可用性組中的自動故障轉移
我的 SQL Server 故障轉移群集中有 2 個節點。我將 SQL Server 2012 可用性組用於 HA 目的。
問題是,當我的伺服器出現故障時,不會發生自動故障轉移!
如何啟用自動故障轉移?
如果你想啟用自動故障轉移,你需要確保你有一個“自動故障轉移集”,包括兩個副本(在你的情況下,這將是你的兩個節點)都設置了同步送出,以及自動故障轉移。
當您設置可用性組時,這可以通過 GUI 完成,但如果您將其編寫成腳本,它將出現在
CREATE AVAILABILITY GROUP
命令中。如果您看一下 的語法和可能的參數CREATE AVAILABILITY GROUP
,您會簡單地看到 setAVAILABILITY_MODE = SYNCHRONOUS_COMMIT
和 set的機會FAILOVER_MODE = AUTOMATIC
。這基本上是設置自動故障轉移的步驟。同樣,如果這已經設置,您可以修改這些副本設置
ALTER AVAILABILITY GROUP ... MODIFY REPLICA ON ...
並指定相同的上述參數。但是,在繼續之前,通過上述修改,絕對值得驗證您已經擁有的內容。下面是一個快速查詢,它將告訴您目前配置的送出模式和故障轉移模式是什麼:
select ar.replica_server_name, availability_group_name = ag.name, ar.availability_mode_desc, ar.failover_mode_desc from sys.availability_replicas ar inner join sys.availability_groups ag on ar.group_id = ag.group_id order by availability_group_name, replica_server_name;
隨意編輯您的問題,並將上述查詢的輸出進行審查。
編輯:為了解決您的評論,值得指出的是,要進行自動故障轉移,您必須使用同步送出。