Sql-Server

如何為 DR 配置多站點 SQL Server 2014 Always On 可用性組

  • March 10, 2017

我們在其中一個數據中心數據中心 A 中配置了一個兩節點 SQL Server AlwaysOn 可用性組集群,為了進行災難恢復,我們希望將其擴展到數據中心 B 中的兩個額外節點。數據中心 A 中的兩個節點配置為同步複製;我們的計劃是在數據中心 B 中配置副本以進行非同步複製。這兩個數據中心有不同的網路,但有跨站點路由(以及某種專用連結——它似乎有很好的頻寬和至少不錯的延遲)。

似乎廣泛支持此配置(另請參閱StackExchange 數據庫配置的描述),但我們對網路配置的細節有點不確定。

  1. DR 節點是否需要加入現有的 WSFC,或者它們會形成自己的 WSFC?我們目前在集群中有一個用於 HA 自動故障轉移的文件共享見證(託管在數據中心 A 中的單獨的非數據庫伺服器上)。如果 DR 節點加入現有的 WSFC,它們是否還需要查看數據中心 A 中的文件共享見證?我們不一定希望 DR 節點擁有任何仲裁投票,因為我們只會手動進行故障轉移。我們是否應該添加託管在數據中心 B 中的文件共享見證,然後是否需要集群中的所有節點(包括數據中心 A 中的節點)都可以訪問它?如果 DR 節點加入現有的 WSFC,那麼 WSFC 是否會有來自每個網路的一個集群 IP?請注意,我們不希望在內部進行網路間路由集群;如果客戶端嘗試從網路 B 連接到集群地址,而主副本目前位於網路 A 中,我們希望該連接失敗;我們不希望數據中心 A 中的任何節點具有從網路 B 綁定的地址。或者至少,這是我的理解,如果節點綁定非本地地址,我們的網路團隊會擔心引入路由循環。
  2. 據我了解,可用性組偵聽器將具有來自每個網路的一個 IP 地址;然後,我們的應用程序在連接字元串中指定了兩個 IP,並包括 MultiSubnetFailover=True; 然後基本上由客戶端來確定哪個網路正在接受連接(類似於舊的、更簡單的數據庫鏡像配置,其中客戶端連接字元串將指定故障轉移夥伴,以防主 IP 沒有響應)。它是否正確?每個網路中的客戶端都能夠連接到其本地網路和遠端網路中的節點嗎?(在這種情況下,可能需要更改所有客戶端的連接字元串,以便首先列出每個客戶端的“本地”AG 偵聽器 IP)
  3. 在遙遠的未來的某個時刻,我們可能希望交換數據中心的角色;即,數據中心 B 成為主站點,數據中心 A 成為 DR 站點。在這種情況下,我們計劃重新配置數據中心 B 節點以進行同步複製,在數據中心 B 中添加文件共享見證(以啟用自動故障轉移,如果我們還沒有),然後將數據中心 A 中的副本更改為非同步. 使用這種配置是否合理,所有這些操作都可以完全線上完成(或至少停機時間最短)嗎?
  1. 是的,DR 節點需要加入現有集群。SQL Server 2016 具有分佈式可用性組,它將在 DR 上的集群與現有集群分開,但您在 SQL Server 2014 上。DR 節點應該能夠看到文件共享見證。您可以調整仲裁投票,以便 DR 節點在仲裁失敗時沒有發言權。我確實在 DR 中添加了一個文件共享,以便我們故障轉移到它,但在故障轉移發生之前它不是集群的一部分。
  2. 連接字元串將指定 AG 偵聽器,但不會指定兩個 IP。MultiSubnetFailover=True 通過連接到首先返回成功的 IP 來處理它。
  3. 是的,互換角色是非常合理的。我工作的最後 3 家公司都有 DR 站點,我們每年會故障轉移到 1-2 次,在 DR 上執行幾天到長達 3 週的生產。故障轉移是離線事件。他們在 AG 上大約需要 15 秒。

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