sp_dbmmonitorresults (Transact-SQL)

適用於:SQL Server

從儲存資料庫鏡像監視歷程記錄的狀態資料表傳回受監視資料庫的狀態資料列,並可讓您選擇程式是否事先取得最新狀態。

Transact-SQL 語法慣例

語法

  
sp_dbmmonitorresults database_name   
   , rows_to_return  
    , update_status   

引數

database_name
指定要傳回鏡像狀態的資料庫。

rows_to_return
指定傳回的資料列數量:

0 = 最後一列

1 = 過去兩個小時的資料列

2 = 過去四個小時的資料列

3 = 過去 8 小時的資料列

4 = 最後一天的資料列

5 = 過去兩天的資料列

6 = 最後 100 個數據列

7 = 最後 500 個數據列

8 = 最後 1,000 個數據列

9 = 最後 1,000,000 個數據列

update_status
指定在傳回結果之前,程式:

0 = 不會更新資料庫的狀態。 結果只會使用最後兩個數據列來計算,其存留期取決於狀態資料表重新整理的時間。

1 = 在計算結果之前呼叫 sp_dbmmonitorupdate 來更新資料庫的狀態。 不過,如果狀態資料表已在前 15 秒內更新,或使用者不是系統管理員 固定伺服器角色的成員 則sp_dbmmonitorresults 執行而不更新狀態。

傳回碼值

結果集

傳回所指定資料庫所要求記錄狀態的資料列數目。 每個資料列都包含下列資訊:

資料行名稱 資料類型 描述
database_name sysname 鏡像資料庫的名稱。
作用 int 伺服器實例的目前鏡像角色:

1 = 主體

2 = 鏡像
mirroring_state int 資料庫狀態:

0 = 已暫停

1 = 已中斷連線

2 = 同步處理

3 = 擱置容錯移轉

4 = 已同步處理
witness_status int 資料庫資料庫鏡像會話中見證的連接狀態可以是:

0 = 未知

1 = 已連線

2 = 已中斷連線
log_generation_rate int 自從先前以 KB/秒為單位更新此資料庫的鏡像狀態之後所產生的記錄量。
unsent_log int 主體上傳送佇列中未傳送記錄的大小,以 KB 為單位。
send_rate int 以 KB/秒將記錄從主體傳送到鏡像的速率。
unrestored_log int 鏡像上重做佇列的大小,以 KB 為單位。
recovery_rate int 以 KB/秒為單位的鏡像重做速率。
transaction_delay int 所有交易的總延遲,以毫秒為單位。
transactions_per_sec int 主體伺服器實例上每秒發生的交易數目。
average_delay int 由於資料庫鏡像,每個交易的主體伺服器實例平均延遲。 在高效能模式中(也就是當 SAFETY 屬性設定為 OFF 時),此值一般為 0。
time_recorded datetime 資料庫鏡像監視器記錄資料列的時間。 這是主體的系統時鐘時間。
time_behind datetime 鏡像資料庫目前已趕上主體的大約系統時鐘時間。 此值只有在主體伺服器實例上才有意義。
local_time datetime 更新此資料列時,本機伺服器實例上的系統時鐘時間。

備註

sp_dbmmonitorresults只能在 msdb 資料庫的內容 中執行。

權限

需要系統管理員 固定伺服器角色 或 msdb 資料庫中dbm_monitor 固定資料庫角色 的成員資格 dbm_monitor 角色可讓其成員檢視資料庫鏡像狀態,但無法更新它,但無法檢視或設定資料庫鏡像事件。

注意

第一次 執行sp_dbmmonitorupdate 時,它會在 msdb 資料庫中建立 dbm_monitor 固定資料庫角色。 系統管理員 固定伺服器角色的成員 可以將任何使用者新增至 dbm_monitor 固定資料庫角色。

範例

下列範例會傳回在前兩小時內記錄的資料列,而不更新資料庫的狀態。

USE msdb;  
EXEC sp_dbmmonitorresults AdventureWorks2022, 2, 0;  

另請參閱

監視資料庫鏡像 (SQL Server)
sp_dbmmonitorchangemonitoring (Transact-SQL)
sp_dbmmonitoraddmonitoring (Transact-SQL)
sp_dbmmonitordropmonitoring (Transact-SQL)
sp_dbmmonitorhelpmonitoring (Transact-SQL)
sp_dbmmonitorupdate (Transact-SQL)