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 時間の行

2 = 過去 4 時間の行

3 = 過去 8 時間の行

4 = 行の最終日

5 = 過去 2 日間の行

6 = 過去 100 行

7 = 過去 500 行

8 = 過去 1,000 行

9 = 最新 1,000,000 行

update_status
結果を返す前に、 プロシージャを指定します。

0 = データベースの状態は更新されません。 結果は最新 2 行のみから計算されます。行の古さは状態テーブルが更新された日時を基に判断されます。

1 = 結果を計算する前に sp_dbmmonitorupdate を呼び出して、データベースの状態を更新します。 ただし、前の 15 秒以内に状態テーブルが更新された場合、またはユーザーが sysadmin 固定サーバー ロールのメンバーでない場合、 sp_dbmmonitorresults は状態を更新せずに実行されます。

リターン コードの値

なし

結果セット

指定したデータベースの履歴状態の要求された行数を返します。 各行には、次の情報が含まれています。

列名 データ型 説明
database_name sysname ミラー化されたデータベースの名前。
role int サーバー インスタンスの現在のミラーリング ロール:

1 = プリンシパル

2 = ミラー
mirroring_state int データベースの状態。

0 = 中断

1 = 切断

2 = 同期中

3 = 保留中のフェールオーバー

4 = 同期済み
witness_status int データベースのデータベース ミラーリング セッションにおけるミラーリング監視サーバーの接続状態は、次のようになります。

0 = 不明

1 = 接続済み

2 = 切断
log_generation_rate int このデータベースのミラーリング状態の以前の更新以降に生成されたログの量 (キロバイト/秒)。
unsent_log int プリンシパルの送信キュー内の未送信ログのサイズ (KB 単位)。
send_rate int プリンシパルからミラーにログのレートをキロバイト/秒で送信します。
unrestored_log int ミラー上の再実行キューのサイズ (キロバイト単位)。
recovery_rate int ミラーの再実行率 (KB/秒単位)。
transaction_delay int すべてのトランザクションの合計遅延時間 (ミリ秒単位)。
transactions_per_sec int プリンシパル サーバー インスタンスで 1 秒あたりに発生するトランザクションの数。
average_delay int データベース ミラーリングにより、各トランザクションのプリンシパル サーバー インスタンスに対する平均遅延。 ハイ パフォーマンス モード (つまり、SAFETY プロパティが OFF に設定されている場合) では、この値は通常 0 です。
time_recorded datetime データベース ミラーリング監視で行が記録された時間。 これは、プリンシパルのシステム クロック時間です。
time_behind datetime ミラー データベースが現在追いついているプリンシパルのシステム クロックのおおよその時間。 この値はプリンシパル サーバー インスタンスでのみ意味を持ちます。
local_time datetime この行が更新されたときのローカル サーバー インスタンスのシステム クロック時間。

解説

sp_dbmmonitorresults は、 msdb データベースのコンテキストでのみ実行できます。

アクセス許可

sysadmin 固定サーバー ロールまたは msdb データベースの固定データベース ロールdbm_monitorメンバーシップが必要です。 dbm_monitor ロールを使用すると、メンバーはデータベース ミラーリングの状態を表示できますが、更新は行いませんが、データベース ミラーリング イベントの表示や構成は行いません。

注意

sp_dbmmonitorupdateが初めて実行されると、msdb データベースにdbm_monitor固定データベース ロールが作成されます。 sysadmin 固定サーバー ロールのメンバーは、固定データベース ロールdbm_monitorに任意のユーザーを追加できます。

次の例では、データベースの状態を更新せずに、前の 2 時間に記録された行を返します。

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)