共用方式為


sys.dm_hadr_availability_replica_states (Transact-SQL)

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

重要事項重要事項

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

資料行名稱

資料類型

說明

replica_id

uniqueidentifier

可用性複本的唯一識別碼。

group_id

uniqueidentifier

可用性群組的唯一識別碼。

is_local

bit

可用性複本是否為本機,下列其中一個值:

0 = 表示可用性群組中的遠端次要複本,該群組的主要複本是由本機伺服器執行個體所裝載。 這個值只會出現在主要複本位置。

1 = 表示本機可用性複本。 在次要複本上,這是該複本所屬之可用性群組的唯一可用值。

role

tinyint

本機可用性複本的目前 AlwaysOn 可用性群組 角色,或是連接的遠端可用性複本,可為下列其中一個值:

0 = 正在解析

1 = 主要

2 = 次要

如需有關 AlwaysOn 可用性群組 角色的詳細資訊,請參閱<AlwaysOn 可用性群組概觀 (SQL Server)>。

role_desc

nvarchar(60)

role 的描述,可為下列其中一個值:

RESOLVING

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

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

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 錯誤的日期和時間戳記。

角色和操作狀態

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

角色

對每一個角色的操作狀態意義

RESOLVING

當可用性複本在 RESOLVING 角色中時,可能的操作狀態如下所示:

操作狀態

說明

PENDING_FAILOVER

正在針對可用性群組處理容錯移轉命令。

OFFLINE

可用性複本的所有組態資料都已經在 WSFC 叢集和本機中繼資料中更新,但是可用性群組目前缺少主要複本。

FAILED

嘗試從 WSFC 叢集中擷取資訊時發生讀取失敗。

FAILED_NO_QUORUM

本機 WSFC 節點沒有仲裁。 這是推斷的狀態。

PRIMARY

當可用性複本正在扮演 PRIMARY 角色時,表示它目前為主要複本。 可能的操作狀態如下所示:

操作狀態

說明

PENDING

這是暫時性狀態,但是如果沒有工作者可處理要求,則主要複本可能會陷在這個狀態中。

ONLINE

可用性群組資源在線上,而且所有資料庫工作者執行緒都已收取。

FAILED

可用性複本無法從 WSFC 叢集讀取及/或將資料寫入其中。

SECONDARY

當可用性複本正在扮演 SECONDARY 角色時,表示它目前為次要複本。 可能的操作狀態如下所示:

操作狀態

說明

ONLINE

本機次要複本已連接到主要複本。

FAILED

本機次要複本無法從 WSFC 叢集讀取及/或將資料寫入其中。

NULL

在主要複本上,當資料列與次要複本有關時就會傳回這個值。

安全性

權限

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

請參閱

概念

AlwaysOn 可用性群組概觀 (SQL Server)

監視可用性群組 (Transact-SQL)