Sql-Server

SQL Server 2012 AlwaysOn 可用性組

  • March 2, 2022

我們有一個應用程序需要隨時訪問數據庫才能正常工作,我們計劃在 Windows Server 2012 上部署 SQL Server 2012 AlwaysOn 可用性組。

我們有兩個地理上分開的數據中心,我們計劃在 DC1 中保留一個 DB 伺服器,在 DC2 中保留另一個。

我看到的所有資訊都顯示了本地同步副本和另一個數據中心中的非同步副本。我想知道是否有一種方法可以僅使用兩個地理上分開並且可以支持自動故障轉移的 SQL 伺服器來配置可用性組。

您可以在這裡找到一些始終在解決方案上的設計模式 http://blogs.msdn.com/b/sqlcat/archive/2013/11/20/sql-server-2012-alwayson-high-availability-and-disaster-recovery -設計模式.aspx

請注意,對於自動故障轉移,您可能需要同步送出,這樣您就不會失去數據。同樣要進行自動故障轉移,您必須擁有多數節點才能決定進行故障轉移。這意味著您必須在集群中有額外的選民。(例如’文件共享見證或其他節點)

這將防止稱為裂腦問題的問題(https://en.wikipedia.org/wiki/Split-brain_(computing)

總而言之,這是非常常見的需要本地自動故障轉移(因為本地 LAN 可以提供同步模式)和另一個具有手動故障轉移和非同步送出的異地副本,這可能會在主站點發生故障時導致數據失去,而不是全部數據已復製到另一個站點。

我希望這對您有所幫助。如果您對該實施有任何疑問,我將很樂意添加資訊。

是的,在這種情況下,您可以在技術上支持自動故障轉移。

但是,您必須先了解和/或檢查一些事項。

  1. 為了能夠提供自動故障轉移,您的副本必須處於同步送出模式。
  2. 在同步送出模式下,事務必須能夠在次要副本上成功送出,然後才能在主副本上送出。

您的 WAN 是否為您的事務提供了足夠低的延遲,以便能夠首先在 DR 中送出,而不會對您的生產送出造成不希望的延遲?

接下來你需要擔心的是法定人數。如果您只計劃在您的 AG 中擁有兩個節點,則您需要在某處(或其他形式的仲裁)共享文件以提供決勝局投票。您需要將此文件共享放在兩個副本都可以看到的地方。

此外,在子網之間進行故障轉移時,您需要確保您的 SQL 客戶端支持多子網。如果不是,您可能會面臨使用預設設置的潛在超時問題。為避免這種情況,您需要RegisterAllProviderIP = 0在集群級別進行設置,以便 SQL 不會同時在 DNS 中註冊您的 Prod 和 DR 偵聽器 IP。為了進一步避免在舊 DNS 記錄在此配置中過期時出現多達 20 分鐘的停機時間,您還需要將 TTL 降低到大約 2 分鐘左右。

在我看來,如果沒有手動啟動該操作,我絕不希望副本故障轉移到我的 DR 數據中心。在 SQL Server 之外,通常有很多事情需要與之協調發生。如果你選擇走這條路,一定要好好測試。

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