sp_replmonitorhelpsubscription (Transact-SQL)
パブリッシャ側の 1 つ以上のパブリケーションに属するサブスクリプションの現在の状態情報を返します。サブスクリプションごとに 1 行のデータが返されます。このストアド プロシージャはレプリケーションの監視に使用し、ディストリビュータ側でディストリビューション データベースについて実行されます。
構文
sp_replmonitorhelpsubscription [ @publisher = ] 'publisher'
[ , [ @publisher_db = ] 'publisher_db' ]
[ , [ @publication = ] 'publication' ]
[ , [ @publication_type = ] publication_type ]
[ , [ @mode = ] mode ]
[ , [ @topnum = ] topnum ]
[ , [ @exclude_anonymous = ] exclude_anonymous ]
[ , [ @refreshpolicy = ] refreshpolicy ]
引数
- [ @publisher = ] 'publisher'
状態を監視しているパブリッシャの名前を指定します。publisher のデータ型は sysname で、既定値は NULL です。null の場合、ディストリビュータを使用しているすべてのパブリッシャの情報が返されます。
- [ @publisher_db = ] 'publisher_db'
パブリッシュされたデータベースの名前を指定します。publisher_db のデータ型は sysname で、既定値は NULL です。NULL の場合、パブリッシャ側のパブリッシュされたすべてのデータベースに関する情報が返されます。
- [ @publication = ] 'publication'
監視されているパブリケーションの名前を指定します。publication のデータ型は sysname で、既定値は NULL です。
[ @publication_type = ] publication_type
パブリケーションの種類を指定します。publication_type のデータ型は int で、次のいずれかの値を指定できます。値 説明 0
トランザクション パブリケーション。
1
スナップショット パブリケーション。
2
マージ パブリケーション。
NULL (既定値)
レプリケーションでは、パブリケーションの種類の判別が試行されます。
[ @mode = ] mode
サブスクリプションの監視情報を返すときに使用するフィルタ選択モードを指定します。mode のデータ型は int で、次のいずれかの値を指定できます。値 説明 0 (既定値)
すべてのサブスクリプションを返します。
1
エラーがあるサブスクリプションだけを返します。
2
しきい値超過の警告を生成したサブスクリプションだけを返します。
3
エラーがあった、またはしきい値超過の警告を生成したサブスクリプションだけを返します。
4
パフォーマンスが低い下位 25 個のサブスクリプションを返します。
5
パフォーマンスが低い下位 50 個のサブスクリプションを返します。
6
現在同期しているサブスクリプションだけを返します。
7
現在同期していないサブスクリプションだけを返します。
- [ @topnum = ] topnum
返されたデータのうち、先頭から指定した数のサブスクリプションだけを結果セットに含めます。topnum のデータ型は int で、既定値はありません。
- [ @exclude_anonymous = ] exclude_anonymous
匿名プル サブスクリプションを結果セットから除外するかどうかを指定します。exclude_anonymous のデータ型は bit で、既定値は 0 です。1 は匿名サブスクリプションを除外し、0 は匿名サブスクリプションを含めます。
- [ @refreshpolicy= ] refreshpolicy
内部使用のみ。
結果セット
列名 | データ型 | 説明 |
---|---|---|
status |
int |
パブリケーションに関連付けられているすべてのレプリケーション エージェントの、状態の最大値。次のいずれかの値をとります。 1 = 開始 2 = 成功 3 = 実行中 4 = アイドル状態 5 = 再試行 6 = 失敗 |
warning |
int |
パブリケーションに属するサブスクリプションによって生成されるしきい値警告の最大値。次の 1 つ以上の値の論理和になります。 1 = expiration。トランザクション パブリケーションに対するサブスクリプションが、保有期間のしきい値内に同期されませんでした。 2 = latency。トランザクション パブリッシャからサブスクライバへのデータのレプリケートにかかった時間が、秒単位のしきい値を超過しました。 4 = mergeexpiration。マージ パブリケーションに対するサブスクリプションが、保有期間のしきい値内に同期されませんでした。 8 = mergefastrunduration。高速ネットワーク接続上で、マージ サブスクリプションの同期の完了にかかった時間が、秒単位のしきい値を超過しました。 16 = mergeslowrunduration。低速またはダイアルアップ ネットワーク接続上で、マージ サブスクリプションの同期の完了にかかった時間が、秒単位のしきい値を超過しました。 32 = mergefastrunspeed。高速ネットワーク接続上で、マージ サブスクリプションの同期中の行の配信率が、1 秒あたりの行数で表された配信率のしきい値を下回りました。 64 = mergefastrunspeed。低速またはダイヤルアップ ネットワーク接続上で、マージ サブスクリプションの同期中の行の配信率が、1 秒あたりの行数で表された配信率のしきい値を下回りました。 |
subscriber |
sysname |
サブスクライバの名前。 |
subscriber_db |
sysname |
サブスクリプションで使用されるデータベースの名前。 |
publisher_db |
sysname |
パブリケーション データベースの名前。 |
publication |
sysname |
パブリケーションの名前。 |
publication_type |
int |
パブリケーションの種類。次のいずれかの値をとります。 0 = トランザクション パブリケーション 1 = スナップショット パブリケーション 2 = マージ パブリケーション |
subtype |
int |
サブスクリプションの種類。次のいずれかの値をとります。 0 = プッシュ 1 = プル 2 = 匿名 |
latency |
int |
データ変更が、トランザクション パブリケーションのログ リーダー エージェントとディストリビューション エージェントで伝達されるまでの最大待機時間 (秒単位)。 |
latencythreshold |
int |
トランザクション パブリケーションの最大待機時間。この値を超過すると警告が生成されます。 |
agentnotrunning |
int |
エージェントが実行されていない期間 (時間単位)。 |
agentnotrunningthreshold |
int |
エージェントが実行されていない期間 (時間単位)。この値を超過すると警告が生成されます。 |
timetoexpiration |
int |
同期されていないサブスクリプションが失効するまでの期間 (時間単位)。 |
expirationthreshold |
int |
サブスクリプションが失効するまでの期間 (時間単位)。この値を超過した場合は警告が生成されます。 |
last_distsync |
datetime |
ディストリビューション エージェントが前回実行された日時。 |
distribution_agentname |
sysname |
トランザクション パブリケーションへのサブスクリプションに関するディストリビューション エージェント ジョブの名前。 |
mergeagentname |
sysname |
マージ パブリケーションへのサブスクリプションに関するマージ エージェント ジョブの名前。 |
mergesubscriptionfriendlyname |
sysname |
サブスクリプションに付けられた表示名。 |
mergeagentlocation |
sysname |
マージ エージェントが実行されるサーバーの名前。 |
mergeconnectiontype |
int |
マージ パブリケーションに対するサブスクリプションの同期時に使用される接続。次のいずれかの値をとります。 1 = ローカル エリア ネットワーク (LAN) 2 = ダイアルアップ ネットワーク接続 3 = Web 同期 |
mergePerformance |
int |
すべてのサブスクリプションの同期と比較した、前回の同期のパフォーマンス。前回の同期の配信率を、これまでのすべての配信率の平均で割った値を基準としています。 |
mergerunspeed |
float |
前回のサブスクリプションの同期の配信率。 |
mergerunduration |
int |
前回のサブスクリプションの同期の完了にかかった時間。 |
monitorranking |
int |
結果セットのサブスクリプションの並べ替えに使用される順位値。次のいずれかの値をとります。 トランザクション パブリケーションの場合 60 = エラー 56 = 警告: パフォーマンス クリティカル 52 = 警告 : まもなく期限切れまたは期限切れ 50 = 警告 : 初期化されていないサブスクリプション 40 = 失敗したコマンドの再試行 30 = 実行していない (成功) 20 = 実行中 (開始、実行中、またはアイドル状態) マージ パブリケーションの場合 60 = エラー 56 = 警告: パフォーマンス クリティカル 54 = 警告 : 長期マージ 52 = 警告 : まもなく期限切れ 50 = 警告 : 初期化されていないサブスクリプション 40 = 失敗したコマンドの再試行 30 = 実行中 (開始、実行中、またはアイドル状態) 20 = 実行していない (成功) |
distributionagentjobid |
binary(16) |
トランザクション パブリケーションへのサブスクリプションに関するディストリビューション エージェント ジョブの ID。 |
mergeagentjobid |
binary(16) |
マージ パブリケーションへのサブスクリプションに関するマージ エージェント ジョブの ID。 |
distributionagentid |
int |
サブスクリプションに関するディストリビューション エージェント ジョブの ID。 |
distributionagentprofileid |
int |
ディストリビューション エージェントで使用されるエージェント プロファイルの ID。 |
mergeagentid |
int |
サブスクリプションに関するマージ エージェント ジョブの ID。 |
mergeagentprofileid |
int |
マージ エージェントで使用されるエージェント プロファイルの ID。 |
解説
sp_replmonitorhelpsubscription は、すべての種類のレプリケーションで使用できます。
sp_replmonitorhelpsubscription の結果セットは、サブスクリプションの状態の重大度に基づいて並べ替えられます。この重大度は monitorranking の値によって決まります。たとえば、エラー状態のすべてのサブスクリプションの列は、警告状態のサブスクリプションの列よりも上に並べられます。
権限
sp_replmonitorhelpsubscription を実行できるのは、ディストリビューション データベースの db_owner 固定データベース ロールまたは replmonitor 固定データベース ロールのメンバだけです。
戻り値
0 (成功) または 1 (失敗)
参照
その他の技術情報
レプリケーションをプログラムから監視する方法 (レプリケーション Transact-SQL プログラミング)