sys.dm_hadr_availability_replica_states (Transact-SQL)

適用於:SQL Server

傳回每個本機複本的資料列,並針對同一個 Always On 群組中當做本機複本的每一個遠端複本,各傳回一個資料列。 每一個資料列都包含有關給定複本狀態的資訊。

重要

若要取得指定可用性群組中每個複本的相關資訊,請在裝載主要複本的伺服器實例上查詢 sys.dm_hadr_availability_replica_states 。 在裝載可用性群組次要複本的伺服器實例上查詢時,此動態管理檢視只會傳回可用性群組的本機資訊。

資料行名稱 資料類型 描述
replica_id uniqueidentifier 複本的唯一識別碼。
group_id uniqueidentifier 可用性群組的唯一識別碼。
is_local bit 複本是否為本機複本,其中一個:

0 = 表示可用性群組中的遠端次要複本,其主要複本由本機伺服器實例裝載。 這個值只會發生在主要複本位置上。

1 = 表示本機複本。 在次要複本上,這是複本所屬可用性群組的唯一可用值。
作用 tinyint 本機複本或連線遠端複本的目前 AlwaysOn 可用性群組角色,其中一個:

0 = 解析

1 = 主要

2 = 次要

如需 Always On 可用性群組角色的相關資訊,請參閱 Always On 可用性群組概觀 (SQL Server)
role_desc nvarchar(60) 角色 的描述 ,其中一個:

解決

PRIMARY

SECONDARY
operational_state tinyint 複本的目前作業狀態,其中一種:

0 = 擱置容錯移轉

1 = 擱置中

2 = 線上

3 = 離線

4 = 失敗

5 = 失敗,沒有仲裁

Null = 複本不是本機。

如需詳細資訊,請參閱 本主題稍後的角色和操作狀態
operational_state_desc nvarchar(60) operational_state 的描述,下列其中一項:

PENDING_FAILOVER

PENDING

ONLINE

OFFLINE

失敗

FAILED_NO_QUORUM

NULL
recovery_health tinyint sys.dm_hadr_database_replica_states 動態管理檢視database_state資料行的 匯總 。 以下是可能的值及其描述。

0 :進行中。 至少有一個聯結的資料庫具有 ONLINE 以外的資料庫狀態( database_state 不是 0)。

1 :線上。 所有聯結的資料庫都有 ONLINE 的資料庫狀態( database_state 為 0)。

Null : is_local = 0
recovery_health_desc nvarchar(60) recovery_health 的描述,下列其中一項:

ONLINE_IN_PROGRESS

ONLINE

NULL
synchronization_health tinyint 反映所有聯結可用性資料庫的資料庫同步處理狀態 ( synchronization_state )匯總(也稱為 本),以及複本的可用性模式(同步認可或非同步認可模式)。 匯總會反映複本上資料庫狀況最低的累積狀態。 以下是可能的值及其描述。

0:狀況不良。 至少有一個聯結的資料庫處於 NOT SYNCHRONIZING 狀態。

1 :部分狀況良好。 某些複本不是處於目標同步處理狀態:同步認可複本應該同步處理,而非同步認可複本應該同步處理。

2:健康。 所有複本都處於目標同步處理狀態:同步認可複本會同步處理,且非同步認可複本正在同步處理。
synchronization_health_desc nvarchar(60) synchronization_health 的描述,下列其中一項:

NOT_HEALTHY

PARTIALLY_HEALTHY

狀況良好
connected_state tinyint 次要複本目前是否連接到主要複本。 可能的值如下所示及其描述。

0 :已中斷連線。 可用性複本對 DISCONNECTED 狀態的回應取決於其角色:在主要複本上,如果次要複本已中斷連線,則其次要資料庫會在主要複本上標示為 NOT SYNCHRONIZED,等候次要複本重新連線:在次要複本上,偵測到它已中斷連線時,次要複本會嘗試重新連線到主要複本。

1 :已連線。

每個主要複本都會追蹤相同可用性群組中每個次要複本的連接狀態。 次要複本只會追蹤主要複本的連接狀態。
connected_state_desc nvarchar(60) connection_state 的描述,其中一個:

DISCONNECTED

CONNECTED
last_connect_error_number int 上次連接錯誤的號碼。
last_connect_error_description nvarchar(1024) last_connect_error_number 訊息的 文字。
last_connect_error_timestamp datetime 日期和時間時間戳記,指出發生last_connect_error_number 錯誤的時間

角色和操作狀態

角色角色 會反映給定可用性複本的狀態,以及作業狀態 ,operational_state ,描述複本是否準備好處理可用性複本所有資料庫的用戶端要求。 以下是每個角色可能的操作狀態摘要:RESOLVING、PRIMARY 和 SECONDARY。

RESOLVING: 當可用性複本位於 RESOLVING 角色時,可能的作業狀態如下表所示。

操作狀態 描述
PENDING_FAILOVER 正在處理可用性群組的容錯移轉命令。
OFFLINE 可用性複本的所有組態資料都已在 WSFC 叢集上更新,而且在本機中繼資料中也已更新,但可用性群組目前缺少主要複本。
失敗 嘗試從 WSFC 叢集擷取資訊時發生讀取失敗。
FAILED_NO_QUORUM 本機 WSFC 節點沒有仲裁。 這是推斷的狀態。

PRIMARY: 當可用性複本執行 PRIMARY 角色時,它目前是主要複本。 可能的作業狀態如下表所示。

操作狀態 描述
PENDING 這是暫時性狀態,但如果背景工作角色無法處理要求,主要複本可能會停滯在此狀態中。
ONLINE 可用性群組資源已上線,且已挑選所有資料庫背景工作執行緒。
失敗 可用性複本無法從 WSFC 叢集讀取和/或寫入。

SECONDARY: 當可用性複本執行 SECONDARY 角色時,它目前是次要複本。 可能的作業狀態如下表所示。

操作狀態 描述
ONLINE 本機次要複本會連線到主要複本。
失敗 本機次要複本無法從 WSFC 叢集讀取和/或寫入。
NULL 在主要複本上,當資料列與次要複本相關時,會傳回此值。

權限

需要伺服器上的 VIEW SERVER STATE 許可權。

SQL Server 2022 和更新版本的權限

需要伺服器上的 VIEW SERVER PERFORMANCE STATE 權限。

另請參閱

AlwaysOn 可用性群組概觀 (SQL Server)
監視可用性群組 (Transact-SQL)