sys.dm_database_replica_states (Azure SQL Database)
適用於: Azure SQL 資料庫 Azure SQL 受控執行個體
傳回參與主要和次要複本之每個資料庫的狀態資訊。 在次要復本上,針對實例上的每個輔助資料庫傳回一個數據列。 在主要復本上,傳回主資料庫的一個數據列,以及每個輔助資料庫的額外數據列。
重要
視動作和較高層級狀態而定,資料庫狀態資訊可能無法使用或過期。 此外,這些值只有區域相關性。
資料行名稱 | 資料類型 | 描述(主要複本上) |
---|---|---|
database_id | int | 資料庫的標識碼。 在 Azure SQL 資料庫中,這些值在單一資料庫或彈性集區內是唯一的,但在邏輯伺服器內則不是唯一的。 |
group_id | uniqueidentifier | 資料庫所屬可用性群組的標識碼。 |
replica_id | uniqueidentifier | 可用性群組內可用性複本的標識碼。 |
group_database_id | uniqueidentifier | 可用性群組內資料庫的標識碼。 此標識碼與這個資料庫聯結的每個復本相同。 |
is_local | bit | 可用性資料庫是否為本機資料庫,其中一個: 0 = 資料庫不是 SQL Server 實例的本機資料庫。 1 = 資料庫是伺服器實例的本機資料庫。 |
is_primary_replica | bit | 如果複本是主要複本,則傳回 1;如果它是資料庫所屬可用性群組中的次要複本,則傳回 0。 這不會參考分散式可用性群組或作用中異地複寫關聯中的主要或輔助資料庫。 適用於:SQL Server 2014 (12.x) 和更新版本。 |
synchronization_state | tinyint | 數據移動狀態,下列其中一個值。 0 = 未同步處理。 對於主資料庫,表示資料庫尚未準備好將其事務歷史記錄與對應的輔助資料庫同步處理。 針對輔助資料庫,表示資料庫因為連線問題、暫停或正在啟動或角色切換期間經歷轉換狀態,而尚未啟動記錄同步處理。 1 = 同步處理。 對於主資料庫,表示資料庫已準備好接受輔助資料庫的掃描要求。 針對輔助資料庫,表示資料庫發生作用中數據移動。 2 = 已同步處理。 主資料庫會顯示SYNCHRONIZED 取代 SYNCHRONIZEING。 當本機快取顯示資料庫已就緒且正在同步處理時,同步認可輔助資料庫會顯示已同步處理。 3 = 還原。 表示當次要資料庫積極取得主要資料庫的頁面時,復原程序中的階段。 重要事項: 當次要複本上的資料庫處於 REVERTING 狀態時,強制故障轉移至次要複本會使資料庫處於無法啟動為主資料庫的狀態。 資料庫需要重新連線為輔助資料庫,或您需要從記錄備份套用新的記錄檔記錄。 4 = 初始化。 表示次要資料庫跟上復原 LSN 所需的交易記錄正在傳送而且在次要複本上強行寫入時的復原階段。 重要事項: 當次要複本上的資料庫處於 INITIALIZING 狀態時,強制故障轉移至次要複本會使資料庫處於無法作為主資料庫啟動的狀態。 資料庫需要重新連線為輔助資料庫,或您需要從記錄備份套用新的記錄檔記錄。 |
synchronization_state_desc | nvarchar(60) | 資料移動狀態的描述,其中一個: - 未同步處理 -同步 -同步 -恢復 -初始 化 |
is_commit_participant | bit | 0 = 交易認可不會與這個資料庫同步處理。 1 = 交易認可會與這個資料庫同步處理。 對於異步認可可用性復本上的資料庫,此值一律為0。 對於同步認可可用性復本上的資料庫,此值僅適用於主資料庫。 |
synchronization_health | tinyint | 反映加入可用性複本可用性群組之資料庫同步處理狀態的交集,以及可用性複本的可用性模式(同步認可或異步認可模式),下列其中一個值。 0 = 狀況不良。 synchronization_state 資料庫的 是 0 (NOT SYNCHRONIZING)。1 = 部分狀況良好。 如果 synchronization_state 為 1,同步認可可用性復本上的資料庫會被視為部分狀況良好。2 = 狀況良好。 如果 synchronization_state 為 2(SYNCHRONIZED),則同步認可可用性複本上的資料庫會被視為狀況良好,如果 synchronization_state 為 1,則異步認可可用性複本上的資料庫會視為狀況良好。 |
synchronization_health_desc | nvarchar(60) | synchronization_health 可用性資料庫的描述。- NOT_HEALTHY - PARTIALLY_HEALTHY -健康 |
database_state | tinyint | 0 = 在線 1 = 還原 2 = 復原 3 = 復原擱置中 4 = 可疑 5 = 緊急 6 = 離線 注意: 與 state 中的數據 sys.databases 行相同。 |
database_state_desc | nvarchar(60) | database_state 可用性複本的描述。-在線 -恢復 -恢復 - RECOVERY_PENDING -懷疑 -緊急 -離線 注意: 與 state_desc 中的數據 sys.databases 行相同。 |
is_suspended | bit | 資料庫狀態,其中一個: 0 = 繼續 1 = 暫停 |
suspend_reason | tinyint | 如果資料庫已暫停,則暫停狀態的原因為下列其中一項: 0 = 使用者動作 1 = 從合作夥伴暫停 2 = 重做 3 = 擷取 4 = 套用 5 = 重新啟動 6 = 復原 7 = 重新驗證 8 = 計算次要復本同步處理點時發生錯誤 |
suspend_reason_desc | nvarchar(60) | 資料庫暫停狀態原因的描述,其中一個: SUSPEND_FROM_USER = 使用者手動暫停的數據移動 SUSPEND_FROM_PARTNER = 強制故障轉移之後,資料庫複本會暫停 SUSPEND_FROM_REDO = 重做階段期間發生錯誤 SUSPEND_FROM_APPLY = 將記錄寫入檔案時發生錯誤(請參閱錯誤記錄檔) SUSPEND_FROM_CAPTURE = 擷取主要複本上的記錄檔時發生錯誤 SUSPEND_FROM_RESTART = 資料庫複本在重新啟動資料庫之前暫停 (請參閱錯誤記錄檔) SUSPEND_FROM_UNDO = 復原階段期間發生錯誤(請參閱錯誤記錄檔) SUSPEND_FROM_REVALIDATION = 重新連線時偵測到記錄變更不相符 (請參閱錯誤記錄檔) SUSPEND_FROM_XRF_UPDATE = 找不到常見的記錄點(請參閱錯誤記錄檔) |
recovery_lsn | numeric(25,0) | 在主要復本上,主資料庫在復原或故障轉移之後寫入任何新的記錄檔記錄之前,事務歷史記錄的結尾。 對於指定的輔助資料庫,如果這個值小於目前強化的 LSN (last_hardened_lsn ), recovery_lsn 則這個輔助資料庫需要重新同步處理的值(也就是,還原為 並重新初始化至 )。 如果此值大於或等於目前的強化 LSN,則不需要重新同步處理,而且不會發生。recovery_lsn 反映以零填補的記錄區塊標識碼。 這不是實際的記錄序號(LSN)。 |
truncation_lsn | numeric(25,0) | 在主資料庫的主要複本上,反映所有對應輔助資料庫的最小記錄截斷 LSN。 如果封鎖本機記錄截斷(例如備份作業),此 LSN 可能高於本機截斷 LSN。 針對指定的輔助資料庫,反映該資料庫的截斷點。 truncation_lsn反映以零填補的記錄區塊標識碼。 這不是實際的記錄序號。 |
last_sent_lsn | numeric(25,0) | 記錄檔區塊標識碼,指出主要記錄檔已傳送到哪一個記錄區塊。 這是即將傳送的下一個記錄區塊標識碼,而不是最近傳送記錄區塊的標識碼。last_sent_lsn 反映以零填補的記錄區塊標識碼。 這不是實際的記錄序號。 |
last_sent_time | datetime | 傳送最後一個記錄區塊的時間。 |
last_received_lsn | numeric(25,0) | 記錄區塊標識碼,可識別裝載此輔助資料庫的次要複本已接收所有記錄區塊的點。last_received_lsn 反映以零填補的記錄區塊標識碼。 這不是實際的記錄序號。 |
last_received_time | datetime | 上次收到訊息中的記錄區塊標識碼在次要複本上讀取的時間。 |
last_hardened_lsn | numeric(25,0) | 記錄區塊的開頭,其中包含輔助資料庫上最後一個強化 LSN 的記錄檔記錄。 在異步認可主資料庫或目前原則為「延遲」的同步認可資料庫上,值為 NULL。 對於其他同步認可主資料庫, last_hardened_lsn 表示所有輔助資料庫的強化 LSN 下限。注意: last_hardened_lsn 反映以零填補的記錄區塊標識符。 這不是實際的記錄序號。 |
last_hardened_time | datetime | 在輔助資料庫上,最後一個強化 LSN (last_hardened_lsn ) 的記錄區塊標識碼時間。 在主資料庫上,反映對應至最小強化 LSN 的時間。 |
last_redone_lsn | numeric(25,0) | 輔助資料庫上重做之最後一筆記錄檔記錄的實際記錄序號。 last_redone_lsn 一律小於 last_hardened_lsn 。 |
last_redone_time | datetime | 在輔助資料庫上重做最後一筆記錄檔記錄的時間。 |
log_send_queue_size | bigint | 尚未傳送至輔助資料庫的記錄檔記錄數量,以 KB 為單位。 |
log_send_rate | bigint | 主要複本實例在上一個使用期間傳送數據的平均速率,以 KB 為單位/秒。 |
redo_queue_size | bigint | 尚未重做之次要複本記錄檔中的記錄記錄數量,以 KB 為單位。 |
redo_rate | bigint | 在指定的輔助資料庫上重做記錄記錄的平均速率,以 KB 為單位/秒。redo_rate 計算方式是除以重做時的總記錄位元節重做,因為資料庫引擎啟動的時間範圍是主動執行,而不是經過時間。 由於重做可能不會連續執行,因此產生的值可能會與性能計數器的值 Database Replica:Redone Bytes/sec 不同(較高)。 |
filestream_send_rate | bigint | FILESTREAM 檔案運送到次要複本的速率,以 KB 為單位/秒。 |
end_of_log_lsn | numeric(25,0) | 記錄 LSN 的本機結尾。 對應至主要和輔助資料庫上記錄快取中最後一筆記錄的實際 LSN。 在主要複本上,次要數據列會反映次要複本已傳送至主要復本的最新進度訊息記錄 LSN 結尾。end_of_log_lsn 反映以零填補的記錄區塊標識碼。 這不是實際的記錄序號。 |
last_commit_lsn | numeric(25,0) | 與事務歷史記錄中最後一筆認可記錄對應的實際記錄序號。 在主資料庫上,這會對應至處理的最後一筆認可記錄。 輔助資料庫的數據列會顯示次要複本已傳送給主要複本的記錄序號。 在次要復本上,這是重做的最後一個認可記錄。 |
last_commit_time | datetime | 對應至最後一個認可記錄的時間。 在輔助資料庫上,這次與主資料庫相同。 在主要複本上,每個輔助資料庫數據列會顯示裝載輔助資料庫之次要複本回報給主要複本的時間。 主資料庫數據列與指定輔助資料庫數據列之間的時間差異,大約代表恢復點目標 (RPO),假設重做程式已趕上,且已將進度回報回次要複本的主要複本。 |
low_water_mark_for_ghosts | bigint | 資料庫的單調遞增數位,表示主資料庫上的准刪除清除所使用的低水位標記。 如果這個數位不會隨著時間而增加,則表示準刪除清除可能不會發生。 若要決定要清除哪些准刪除數據列,主要複本會針對所有可用性複本使用此數據行的最小值(包括主要複本)。 |
secondary_lag_seconds | bigint | 次要復本在同步處理期間落後於主要複本的秒數。 適用於:SQL Server 2016 (13.x) 和更新版本。 |
quorum_commit_lsn | numeric(25,0) | 僅供參考之用。 不支援。 不保證未來的相容性。 |
quorum_commit_time | datetime | 僅供參考之用。 不支援。 不保證未來的相容性。 |
權限
需要資料庫的 VIEW DATABASE STATE 許可權。