次の方法で共有


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

[ @publisher_db = ] 'publisher_db' パブリッシュされたデータベースの名前を指定します。 publisher_dbsysname で、既定値は NULL です。 NULL の場合、パブリッシャーのすべてのパブリッシュされたデータベースの情報が返されます。

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

[ @publication_type = ] publication_type パブリケーションの種類。 publication_typeint であり、これらの値のいずれかを指定できます。

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

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

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

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

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

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

結果セット

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

6 = 失敗

5 = 再試行中

2 = 停止

4 = アイドル

3 = 進行中

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

1 = 有効期限 - トランザクション パブリケーションのサブスクリプションが保持期間内に同期されていません。

2 = 待機時間 - トランザクション パブリッシャーからサブスクライバーにデータをレプリケートするためにかかった時間がしきい値 (秒単位) を超えています。

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

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

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

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

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

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

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

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

0 = Push

1 = Pull

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。

リターン コードの値

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

解説

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

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

アクセス許可

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

参照

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