筆記 SQL Server 使用 Availability Group 可用性群組在設計 Agent Job 上的設計要點,主要是考量 Job 執行上主要複本與次要複本的執行差異。
說明
因為可用性群組下的可用性複本分為主要與次要,主要複本支援讀寫、次要複本僅支援讀取。所以在設計 Job 的時候,如果有對資料庫寫入的情境,需要考量是否為主要複本。可以使用 sys.fn_hadr_is_primary_replica
函數來達成。
因此不論是主要複本或者次要複本都會建立相同的 Job,並且排程執行 Job。只是 Job 本身會判斷本身的資料庫是否為主要複本,來真正執行 Job 所要達成的工作。
IF sys.fn_hadr_is_primary_replica('DatabaseName') = 1
EXEC DatabaseName.dbo.usp_UpdateTable
ELSE
SELECT '不是主要執行複本,不執行任何寫入異動'
相關連結
SQL Server Availability Group 資料庫備份注意事項
SQL Server Always On Availability Group 可用性群組安裝筆記