本頁面說明 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 Agent 工作步驟,檢查目前的副本是否為主要副本。這項操作是透過 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
後續步驟
- 進一步瞭解 Datastream 如何搭配 SQL Server 來源使用。