sp_replmonitorhelpsubscription (Transact-SQL)

適用対象: はいSQL Server (サポートされているすべてのバージョン) はいAzure SQL Managed Instance

パブリッシャー側の 1 つ以上のパブリケーションに属するサブスクリプションの現在の状態情報を返します。サブスクリプションごとに 1 行のデータが返されます。 レプリケーションの監視に使用されるこのストアド プロシージャは、ディストリビューション データベースのディストリビューターで実行されます。

トピック リンク アイコン Transact-SQL 構文表記規則

構文

  
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の名前を指定します。 publishersysname で、既定値は NULL です。 null の場合、ディストリビューターを使用しているすべてのパブリッシャーに関する情報が返されます。

[ @publisher_db = ] 'publisher_db' パブリッシュされたデータベースの名前を指定します。 publisher_db sysname で、既定値は NULL です。 NULL の場合、公開されているデータベースの情報は、データベースのPublisher。

[ @publication = ] 'publication' 監視対象のパブリケーションの名前を指定します。 publicationsysname で、既定値は NULL です。

[ @publication_type = ] publication_type パブリケーションの種類の場合。 publication_type int であり、これらの値の 1 つを指定できます。

説明
0 トランザクション パブリケーション。
1 スナップショット パブリケーション。
2 マージ パブリケーションです。
NULL (既定値) レプリケーションは、パブリケーションの種類の決定を試みる。

[ @mode = ] mode サブスクリプション監視情報を返す際に使用するフィルター 処理モードです。 modeint で、これらの値の 1 つを指定できます。

説明
0 (既定値) すべてのサブスクリプションを返します。
1 エラーがあるサブスクリプションだけを返します。
2 しきい値超過の警告を生成したサブスクリプションだけを返します。
3 エラーがあるサブスクリプション、またはしきい値メトリック警告が生成されたサブスクリプションのみを返します。
4 パフォーマンスが最も悪い上位 25 のサブスクリプションを返します。
5 パフォーマンスが最も悪い上位 50 のサブスクリプションを返します。
6 現在同期中のサブスクリプションのみを返します。
7 現在同期していないサブスクリプションだけを返します。

[ @topnum = ] topnum 結果セットを、返されたデータの一番上にある指定された数のサブスクリプションにのみ制限します。 topnum は int で、既定値はありません。

[ @exclude_anonymous = ] exclude_anonymous 匿名プル サブスクリプションが結果セットから除外される場合は です。 exclude_anonymous ビット 、既定値は 0 です。値が 1 の場合 、匿名サブスクリプションは除外され、値 0 は含まれるという意味です。

[ @refreshpolicy = ] refreshpolicy 内部使用のみ。

結果セット

列名 データ型 説明
status int パブリケーションに関連付けられているすべてのレプリケーション エージェントの状態を調べ、次の順序で見つかった最高の状態を返します。

6 = 失敗

5 = 再試行

2 = 停止

4 = アイドル状態

3 = 進行中

1 = 開始
warning int パブリケーションに属しているサブスクリプションによって生成されるしきい値警告の最大値です。次の 1 つ以上の値の論理和になります。

1 = 有効期限 - トランザクション パブリケーションのサブスクリプションが保有期間のしきい値内で同期されていない。

2 = 待機時間 - トランザクション サーバーからサブスクライバーにデータをレプリケートするためにPublisher時間 (秒) を超えています。

4 = mergeexpiration - マージ パブリケーションのサブスクリプションが保持期間のしきい値内で同期されていない。

8 = mergefastrunduration - マージ サブスクリプションの同期を完了するために必要な時間が、高速ネットワーク接続を使用したしきい値 (秒) を超えています。

16 = mergeslowrunduration - マージ サブスクリプションの同期を完了するために必要な時間が、低速またはダイヤルアップ ネットワーク接続を使用してしきい値 (秒) を超えています。

32 = mergefastrunspeed - マージ サブスクリプションの同期中の行の配信速度が、高速ネットワーク接続を使用してしきい値のレート (1 秒あたりの行数) を維持できなかった。

64 = mergeslowrunspeed - マージ サブスクリプションの同期中の行の配信速度が、低速またはダイヤルアップのネットワーク接続を使用して、しきい値のレート (1 秒あたりの行数) を維持できなかった。
サブスクライバー sysname サブスクライバーの名前です。
subscriber_db sysname サブスクリプションで使用されるデータベースの名前です。
publisher_db sysname パブリケーション データベースの名前です。
パブリケーション sysname パブリケーションの名前を指定します。
publication_type int パブリケーションの種類は、次のいずれかの値になります。

0 = トランザクション パブリケーション

1 = スナップショット パブリケーション

2 = マージ パブリケーション
サブタイプ int サブスクリプションの種類です。次のいずれかの値をとります。

0 = プッシュ

1 = プル

2 = 匿名
短い 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。

リターン コードの値

0 (成功) または 1 (失敗)

解説

sp_replmonitorhelpsubscription は、すべての種類のレプリケーションで使用されます。

sp_replmonitorhelpsubscription は、サブスクリプションの状態の重大度に基づいて結果セットを並べ替えます。これは、 monitorranking の値によって決定されます。 たとえば、エラー状態のすべてのサブスクリプションの列は、警告状態のサブスクリプションの列よりも上に並べられます。

アクセス許可

Sp_replmonitorhelpsubscription を実行できるのは、ディストリビューションデータベースの固定データベースロール db_owner または replmonitor のメンバーだけです。

参照

プログラムによるレプリケーションの監視