Sql-Server

同一伺服器上的主副本和輔助副本

  • July 11, 2019

我們正在考慮使用 SQL Server 2016 實現 HA/DR 的不同選項。AlwaysOn 可用性組顯然是一個選項。

我知道我們可以從輔助副本中讀取,這與數據庫鏡像不同。

我們能否在正常操作期間分散寫入負載,將集群中的每台伺服器用作某些數據庫的主數據庫/副本,以及其他數據庫的輔助數據庫/副本?

假設我們有 2 台伺服器,sql01 和 sql02,以及要保護的 10 個數據庫。我們可以這樣設置:

  • sql01 將 db01-db05 作為主要,db06-db10 作為輔助。
  • sql02 將 db06-db10 作為主要,db01-db05 作為輔助。

在故障轉移期間,每台伺服器都可以作為所有數據庫的主伺服器。

使用 AlwaysOn 傳播寫入操作時是否有其他選項?

您可以,這是可用性組優於傳統集群的優點之一。您需要設置兩個(或更多)AG,一個最初將 SQL01 作為它的主節點並包含 db01-db05,另一個最初將 SQL02 作為它的主節點並包含 db06-db10。

然後,您可以按照自己的意願獨立地對它們進行故障轉移,您可以將所有 AG 放在一台伺服器上或將它們拆分到兩台伺服器上。

我找不到任何顯示兩個 AG 設置的文件或展示(也許它可能是未來部落格文章的主題)。傳統集群和使用 AG 之間的最大區別在於 SQL 伺服器沒有按照 DBA 可能認為的方式進行集群,並且不需要共享儲存。基本上,SQL 實例作為獨立實例安裝在集群的每個節點上。AG 本身是作為集群中的單獨角色創建的,因此可以單獨進行故障轉移。

希望這是有道理的,沒有例子就很難解釋。

  • 假設我們有 2 台伺服器,sql01 和 sql02,以及要保護的 10 個數據庫。我們可以這樣設置:

是的,您可以設置它。我建議您在您給出的範例中選擇 5 個數據庫(用於一個可用性組)時考慮到這一點。您的應用程序應該能夠成功執行一組數據庫,Availability Group並且在節點之間進行故障轉移。這是網上書籍的片段。

可用性組支持一組離散的使用者數據庫(稱為可用性數據庫)的複制環境。您可以為高可用性 (HA) 或讀取規模創建可用性組。HA 可用性組是一組一起故障轉移的數據庫。

  • 在故障轉移期間,每台伺服器都可以作為所有數據庫的主伺服器。

是的。當您在同一主機中託管兩個組時,測試您的硬體是否可以支持工作負載。

  • 使用 AlwaysOn 傳播寫入操作時是否有其他選項?

您的連接字元串需要正確設置。與您的問題沒有直接關係,但您可以將一些工作解除安裝到只讀副本以減少寫入工作負載的爭用。在此處查看詳細資訊。

閱讀評論,我看到您正在尋找分步說明。我在這裡列出了一些資源。第 3 項是 3​​ 部分系列,作為白皮書的後續(第 1 項)。

  1. https://msdn.microsoft.com/library/hh781257.aspx
  2. https://www.brentozar.com/archive/2011/07/how-set-up-sql-server-denali-availability-groups/
  3. https://blogs.msdn.microsoft.com/sqlalwayson/2012/10/16/how-to-migrate-to-alwayson-alwayson-from-prior-deployments-combining-database-mirroring-and-log-shipping-part-1/

SQL Server 故障轉移群集實例 (FCI) 和可用性組

您可以通過將 SQL Server 故障轉移群集與 WSFC 群集一起實施,在伺服器實例級別設置第二層故障轉移。可用性副本可以由 SQL Server 的獨立實例或 FCI 實例託管。只有一個 FCI 合作夥伴可以託管給定可用性組的副本。當可用性副本在 FCI 上執行時,可用性組的可能所有者列表將僅包含活動 FCI 節點。

Always On 可用性組不依賴於任何形式的共享儲存。但是,如果您使用 SQL Server 故障轉移群集實例 (FCI) 來託管一個或多個可用性副本,則按照標準 SQL Server 故障轉移群集實例安裝,這些 FCI 中的每一個都需要共享儲存。

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