次の方法で共有


sp_replmonitorhelpsubscription (Transact-SQL)

適用対象: SQL Server Azure SQL Managed Instance

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

Transact-SQL 構文表記規則

構文

sp_replmonitorhelpsubscription
    [ [ @publisher = ] N'publisher' ]
    [ , [ @publisher_db = ] N'publisher_db' ]
    [ , [ @publication = ] N'publication' ]
    [ , [ @publication_type = ] publication_type ]
    [ , [ @mode = ] mode ]
    [ , [ @topnum = ] topnum ]
    [ , [ @exclude_anonymous = ] exclude_anonymous ]
    [ , [ @refreshpolicy = ] refreshpolicy ]
[ ; ]

引数

[ @publisher = ] N'publisher'

監視対象の状態を示すパブリッシャーの名前。 @publishersysname で、既定値は NULL です。 null場合は、ディストリビューターを使用するすべてのパブリッシャーの情報が返されます。

[ @publisher_db = ] N'publisher_db'

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

[ @publication = ] N'publication'

監視対象のパブリケーションの名前。 @publicationsysname で、既定値は NULL です。

[ @publication_type = ] publication_type

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

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

[ @mode = ] mode

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

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

[ @topnum = ] topnum

返されたデータのうち、先頭から指定した数のサブスクリプションだけを結果セットに含めます。 @topnumint で、既定値は NULL です。

[ @exclude_anonymous = ] exclude_anonymous

匿名プル サブスクリプションが結果セットから除外されている場合。 @exclude_anonymousbit で、既定値は 0 です。

  • 1の値は、匿名サブスクリプションが除外されることを意味します。
  • 0の値は、それらが含まれていることを意味します。

[ @refreshpolicy = ] refreshpolicy

単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。

結果セット

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

6 = 失敗
5 = 再試行中
2 = 停止
4 = アイドル
3 = 進行中
1 = 開始
warning int パブリケーションに属しているサブスクリプションによって生成されるしきい値警告の最大値です。次の 1 つ以上の値の論理和になります。

1 = expiration - トランザクション パブリケーションのサブスクリプションが、保持期間内のしきい値内で同期されていません。
2 = latency - トランザクション パブリッシャーからサブスクライバーにデータをレプリケートするためにかかった時間が、しきい値 (秒単位) を超えています。
4 = mergeexpiration - マージ パブリケーションのサブスクリプションが、保持期間内のしきい値内で同期されていません。
8 = mergefastrunduration - 高速ネットワーク接続で、マージ サブスクリプションの同期が完了するまでにかかった時間がしきい値 (秒単位) を超えています。
16 = mergeslowrunduration - マージ サブスクリプションの同期が完了するまでにかかった時間が、低速ネットワーク接続のしきい値 (秒単位) を超えています。
32 = mergefastrunspeed - マージ サブスクリプションの同期中に行の配信速度が、高速ネットワーク接続を介してしきい値レート (1 秒あたりの行数) を維持できませんでした。
64 = mergeslowrunspeed - マージ サブスクリプションの同期中の行の配信速度は、低速ネットワーク接続を介して、しきい値のレート (1 秒あたりの行数) を維持できませんでした。
subscriber sysname サブスクライバーの名前。
subscriber_db sysname サブスクリプションに使用されるデータベースの名前。
publisher_db sysname パブリケーション データベースの名前。
publication 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を実行できます。