sp_dbmmonitorresults (Transact-SQL)
適用対象: SQL サーバー
データベース ミラーリング監視履歴が格納されている状態テーブルから、監視対象データベースの状態行を返し、プロシージャが最新の状態を事前に取得するかどうかを選択できます。
構文
sp_dbmmonitorresults
[ @database_name = ] N'database_name'
[ , [ @mode = ] mode ]
[ , [ @update_table = ] update_table ]
[ ; ]
引数
[ @database_name = ] N'database_name'
ミラーリングの状態を返すデータベースを指定します。 @database_name は sysname で、既定値はありません。
[ @mode = ] mode
返される行数を指定します。 @mode は int であり、これらの値のいずれかを指定できます。
Value | 説明 |
---|---|
0 |
最後の行 |
1 |
過去 2 時間の行 |
2 |
過去 4 時間の行 |
3 |
過去 8 時間の行 |
4 |
行の最後の日 |
5 |
過去 2 日間の行 |
6 |
過去 100 行 |
7 |
最後の 500 行 |
8 |
過去 1,000 行 |
9 |
過去 1,000,000 行 |
[ @update_table = ] update_table
結果を返す前にプロシージャを指定します。 @update_table は int で、既定値は 0
です。
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 | プリンシパルからミラーへのログの送信レート (キロバイト/秒)。 |
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 ロールを使用すると、メンバーはデータベース ミラーリングの状態を表示できますが、更新は行いませんが、データベース ミラーリング イベントの表示や構成は行いません。
Note
sp_dbmmonitorupdate
が初めて実行されると、msdb
データベースにdbm_monitor固定データベース ロールが作成されます。 sysadmin固定サーバー ロールのメンバーは、任意のユーザーをdbm_monitor固定データベース ロールに追加できます。
例
次の例では、データベースの状態を更新せずに、前の 2 時間に記録された行を返します。
USE msdb;
EXEC sp_dbmmonitorresults AdventureWorks2022, 2, 0;