sp_dbmmonitorresults (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 |
このデータベースのミラーリングの状態が前回更新されてからのログ生成率 (KB/秒単位)。 |
unsent_log |
int |
プリンシパルの送信キューにある未送信のログのサイズ (KB 単位)。 |
send_rate |
int |
プリンシパルからミラーへのログの送信率 (KB/秒単位)。 |
unrestored_log |
int |
ミラーの再実行キューのサイズ (KB 単位)。 |
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 データベースのコンテキストでのみ実行できます。
権限
msdb データベースの固定サーバー ロール sysadmin または固定データベース ロール dbm_monitor のメンバシップが必要です。ロール dbm_monitor はメンバに対し、データベース ミラーリングの状態を表示することを許可できます。また、状態の更新や、データベース ミラーリング イベントの表示および構成を禁止することもできます。
注意 |
---|
sp_dbmmonitorupdate の初回実行時、msdb データベース内に固定データベース ロール dbm_monitor が作成されます。固定サーバー ロール sysadmin のメンバであれば、固定データベース ロール dbm_monitor に任意のユーザーを追加できます。 |
例
次の例では、データベースの状態を更新せずに、過去 2 時間に記録された行を返します。
USE msdb;
EXEC sp_dbmmonitorresults AdventureWorks, 2, 0;