Sql-Server
跨站點的可用性組:如果伺服器無法相互聯繫但兩者仍然可以訪問文件共享見證會發生什麼?
我目前正在計劃一個帶有 HA/DR 的新 SQL Server 2019 Enterprise Edition 設置,可能帶有可用性組。
假設我們有以下設置:
- 站點 A:一個 SQL Server 實例 (SQL1)
- 站點 B:一個 SQL Server 實例 (SQL2)
- 站點 C:Windows 故障轉移群集的文件共享見證
- 可用性組:AG1(SQL1 為主,SQL2 為輔助)、AG2(SQL2 為主,SQL1 為輔助)
如果站點 A 和站點 B 之間的網路連接失去,但兩個站點仍然能夠訪問文件共享見證,可用性組將如何反應?
- SQL1 會保留 AG1 和 SQL2 的主副本,還是 AG2 的主副本?
- 一台伺服器會停機,而另一台伺服器會成為所有可用性組的主要副本嗎?
- 如果只有一台伺服器保持線上,那麼哪一台獲勝?目前擁有集群核心資源組的人?
- 另一種情況?
到目前為止,我發現的所有文章都只討論了一台伺服器作為所有可用性組的主要副本。不幸的是,我還沒有可用的基礎設施來自己測試它。
有沒有人有這種情況的經驗?
謝謝
如果站點 A 和站點 B 之間的網路連接失去,但兩個站點仍然能夠訪問文件共享見證,可用性組將如何反應?
這取決於集群的設置。由於大多數人不設置具有高級設置的集群(這通常是一件好事,因為它很容易做錯並且真的搞砸了)我將假設一個香草集群安裝和設置。
鑑於上述假設,取決於站點與見證人之間的延遲,並假設與文件共享的通信從任何一個站點都沒有問題,那麼保持正常執行的站點通常大部分時間是擁有核心集群的站點資源組。這是由於集群中的見證退避設置,因為擁有核心資源的分區在嘗試仲裁之前不必等待延遲的退避計時器。
哪一方達到法定人數(取決於其他各種項目,哪一方可能是任何一方
$$ or no side if things go very very poorly $$) 將是所有集群組移動到的一側,他們是否能夠出現是另一回事。
可用性組:AG1(SQL1 為主,SQL2 為輔助)、AG2(SQL2 為主,SQL1 為輔助)
順便說一句,因為您的問題與此無關,但我必須指出,這不是一個好主意。根據負載的不同,可能會出現從各個地方蔓延的性能問題。如果有足夠的可用硬體可以在同一個節點上作為主要硬體,那麼這樣做可能會奏效。如果沒有足夠的可用硬體使兩者都可以成為同一節點上的主要硬體,那麼這將是一場等待點火的巨大災難。