sp_dbmmonitorresults (Transact-SQL)
適用於:SQL Server
從儲存資料庫鏡像監視歷程記錄的狀態數據表傳回受監視資料庫的狀態數據列,並可讓您選擇程式是否事先取得最新狀態。
語法
sp_dbmmonitorresults
[ @database_name = ] N'database_name'
[ , [ @mode = ] mode ]
[ , [ @update_table = ] update_table ]
[ ; ]
引數
[ @database_name = ] N'database_name'
指定要傳回鏡像狀態的資料庫。 @database_name為 sysname,沒有預設值。
[ @mode = ] 模式
指定傳回的數據列數量。 @mode為 int,而且可以是下列其中一個值。
值 | Description |
---|---|
0 |
最後一列 |
1 |
過去兩個小時的數據列 |
2 |
過去四個小時的數據列 |
3 |
過去8小時的數據列 |
4 |
最後一天的數據列 |
5 |
過去兩天的數據列 |
6 |
最後 100 個數據列 |
7 |
最後 500 個數據列 |
8 |
最後 1,000 個數據列 |
9 |
最後 1,000,000 個數據列 |
[ @update_table = ] update_table
指定在傳回結果之前,程式。 @update_table 為 int,預設值為 0
。
0
= 不會更新資料庫的狀態。 結果只會使用最後兩個數據列來計算,其存留期取決於狀態數據表重新整理的時間。1
= 在計算結果之前呼叫sp_dbmmonitorupdate
來更新資料庫的狀態。 不過,如果狀態數據表在前 15 秒內更新,或使用者不是 sysadmin 固定伺服器角色的成員,sp_dbmmonitorresults
則不會更新狀態。
傳回碼值
無。
結果集
傳回所指定資料庫所要求記錄狀態的數據列數目。 每個資料列都包含下列資訊:
資料行名稱 | 資料類型 | 描述 |
---|---|---|
database_name |
sysname | 鏡像資料庫的名稱。 |
role |
int | 伺服器實例的目前鏡像角色:1 = 主體2 = 鏡像 |
mirroring_state |
int | 資料庫狀態:0 = Suspended1 = 已中斷連線2 = 同步處理3 = 暫止故障轉移4 = 已同步處理 |
witness_status |
int | 資料庫資料庫鏡像會話中見證的連接狀態可以是:0 = 未知1 = Connected2 = 已中斷連線 |
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 | 由於資料庫鏡像,每個交易的主體伺服器實例平均延遲。 在高效能模式中(也就是當 屬性設定為 OFF 時SAFETY ),這個值通常是 0 。 |
time_recorded |
datetime | 資料庫鏡像監視器記錄數據列的時間。 此值是主體的系統時鐘時間。 |
time_behind |
datetime | 鏡像資料庫目前已趕上主體的大約系統時鐘時間。 此值只有在主體伺服器實例上才有意義。 |
local_time |
datetime | 更新此數據列時,本地伺服器實例上的系統時鐘時間。 |
備註
sp_dbmmonitorresults
只能在資料庫的內容 msdb
中執行。
權限
需要系統管理員固定伺服器角色或資料庫中dbm_monitor固定資料庫角色msdb
的成員資格。 dbm_monitor角色可讓其成員檢視資料庫鏡像狀態,但無法更新它,但無法檢視或設定資料庫鏡像事件。
注意
第一次 sp_dbmmonitorupdate
執行時,它會在資料庫中建立 dbm_monitor 固定資料庫角色 msdb
。 系統管理員固定伺服器角色的成員可以將任何使用者新增至dbm_monitor固定資料庫角色。
範例
下列範例會傳回在前兩小時內記錄的數據列,而不更新資料庫的狀態。
USE msdb;
EXEC sp_dbmmonitorresults AdventureWorks2022, 2, 0;