sp_dbmmonitorresults (Transact-SQL)

データベース ミラーリング監視履歴が格納されている状態テーブルから、監視対象データベースの状態行を返します。事前に、このプロシージャで最新の状態を取得するかどうかを選択できます。

トピック リンク アイコン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_dbmmonitorresultsmsdb データベースのコンテキストでのみ実行できます。

権限

msdb データベースの固定サーバー ロール sysadmin または固定データベース ロール dbm_monitor のメンバーシップが必要です。ロール dbm_monitor はメンバーに対し、データベース ミラーリングの状態を表示することを許可できます。また、状態の更新や、データベース ミラーリング イベントの表示および構成を禁止することもできます。

注意

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

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

USE msdb;
EXEC sp_dbmmonitorresults AdventureWorks2008R2, 2, 0;