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 權限。