sys.dm_hadr_database_replica_cluster_states (Transact-SQL)
適用於:SQL Server
傳回一個數據列,其中包含 Windows Server 故障轉移叢集 (WSFC) 叢集上每個 Always On 可用性群組中 Always On 可用性群組中可用性資料庫健康情況的深入解析。 查詢 sys.dm_hadr_database_replica_cluster_states
以回答下列問題:
可用性群組中的所有資料庫都準備好進行故障轉移嗎?
強制故障轉移之後,輔助資料庫已在本機暫停,並認可其暫停狀態給新的主要複本嗎?
如果主要複本目前無法使用,哪一個次要複本會在成為主要複本時允許最小數據遺失?
當 sys.databases
log_reuse_wait_desc
數據行的值是AVAILABILITY_REPLICA
時,可用性群組中的哪個次要複本會在指定的主資料庫上保持記錄截斷?
資料行名稱 | 資料類型 | 描述 |
---|---|---|
replica_id | uniqueidentifier | 可用性群組內可用性複本的標識碼。 |
group_database_id | uniqueidentifier | 可用性群組內資料庫的標識碼。 此標識碼與這個資料庫聯結的每個復本相同。 |
database_name | sysname | 屬於可用性群組的資料庫名稱。 |
is_failover_ready | bit | 指出輔助資料庫是否與對應的主資料庫同步處理。 其中一個: 0 = 資料庫未在叢集中標示為同步處理。 資料庫尚未準備好進行故障轉移。 1 = 資料庫在叢集中標示為同步處理。 資料庫已準備好進行故障轉移。 |
is_pending_secondary_suspend | bit | 指出在強制故障轉移之後,資料庫是否擱置暫停,下列其中一項: 0 = HADR_SYNCHRONIZED_SUSPENDED以外的任何狀態。 1 = HADR_SYNCHRONIZED_SUSPENDED。 強制故障轉移完成時,每個輔助資料庫都會設定為 HADR_SYNCHONIZED_SUSPENDED,並維持在此狀態,直到新的主要復本收到來自該輔助資料庫的通知至 SUSPEND 訊息為止。 NULL = 未知(無仲裁) |
is_database_joined | bit | 指出此可用性複本上的資料庫是否已聯結至可用性群組,其中一個: 0 = 資料庫未加入此可用性複本上的可用性群組。 1 = 資料庫已加入此可用性複本上的可用性群組。 NULL = 未知(可用性複本缺少仲裁。) |
recovery_lsn | numeric(25,0) | 在主要復本上,復本在復原或故障轉移之後寫入任何新的記錄檔記錄之前,事務歷史記錄的結尾。 在主要復本上,給定輔助資料庫的數據列具有主要複本需要次要複本同步處理到的值(也就是,還原為 並重新初始化至 )。 在次要複本上,此值為 NULL。 每個次要複本都有 MAX 值或較低的值,主要複本已告知次要複本返回。 |
truncation_lsn | numeric(25,0) | 如果封鎖本機記錄截斷,Always On 可用性群組記錄截斷值可能會高於本機截斷 LSN(例如備份作業)。 |
權限
針對 SQL Server 2019 (15.x) 和舊版,需要伺服器的 VIEW SERVER STATE 許可權。
針對 SQL Server 2022 (16.x) 和更新版本,需要伺服器的 VIEW SERVER PERFORMANCE STATE 許可權。