Sql-Server

可用性組中的自動故障轉移

  • January 30, 2014

我的 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;

隨意編輯您的問題,並將上述查詢的輸出進行審查。

編輯:為了解決您的評論,值得指出的是,要進行自動故障轉移,您必須使用同步送出。

引用自:https://dba.stackexchange.com/questions/56260