使用 Always On 可用性群組


本頁面說明 SQL Server 中的 Always On 可用性群組,以及 Datastream 如何在備援和資料復原情境中支援這些群組。

Always On 可用性群組總覽

在 SQL Server 中,Always On 可用性群組是高可用性解決方案,可讓您為資料庫準備災難復原情境。

Always On 可用性群組可為企業提供最高的資料庫可用性。可用性群組可為所選的資料庫組建立複製環境,稱為可用性資料庫。每個群組都包含一組用於讀取和寫入工作的主要資料庫,以及最多八組對應的次要資料庫。次要資料庫可選擇允許唯讀存取或備份作業。

如要進一步瞭解 Always On 可用性群組,請參閱 SQL Server 說明文件中的「什麼是 Always On 可用性群組?」。

如要瞭解 SQL Server 例項的 Always On 可用性群組先決條件,請參閱 SQL Server 說明文件

設定 Datastream 以搭配 Always On 可用性群組使用

Datastream 支援使用變更資料表 CDC 方法的同步提交可用性模式。在這個模式下,次要資料庫會與對應的主要資料庫保持同步,直到資料同步作業停止為止。只有在次要複本將傳入的交易記錄寫入磁碟時,系統才會將交易的確認訊息傳送至用戶端。

如要瞭解可用性模式,請參閱「Always On 可用性群組的可用性模式差異」。

如要將 SQL Server 例項設定為搭配 Always On 可用性群組使用,您必須啟用 SQL Server Agent,以便在發生容錯移轉時擷取記錄,然後執行清理工作。您必須先修改 CDC 代理程式工作步驟,才能確認目前的複本是否確實為主要複本。這項操作是使用 sys.fn_hadr_is_primary_replica 函式完成。

請使用下列指令設定執行個體:

  -- Check if the current replica is a primary for the corresponding database.
  USE [DATABASE_NAME];
  DECLARE @DatabaseName SYSNAME = DB_NAME();
  IF (SELECT sys.fn_hadr_is_primary_replica(@DatabaseName)) = 1
  BEGIN
  -- If the replica isn't a primary, the code block that follows is skipped
  EXECUTE sys.sp_cdc_add_job @job_type = 'capture';
  EXECUTE sys.sp_cdc_add_job @job_type = 'cleanup';
  END

後續步驟