sp_replmonitorhelpsubscription (Transact-SQL)
適用対象: SQL Server Azure SQL Managed Instance
パブリッシャー側の 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 であり、これらの値のいずれかを指定できます。
Value | 説明 |
---|---|
0 | トランザクション パブリケーション。 |
1 | スナップショット パブリケーション。 |
2 | マージ パブリケーションです。 |
NULL (既定値) | レプリケーションは、パブリケーションの種類の決定を試みます。 |
[ @mode = ] mode
サブスクリプション監視情報を返すときに使用するフィルター モードです。 mode は int であり、これらの値のいずれかを指定できます。
Value | 説明 |
---|---|
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 | パブリケーションに関連付けられているすべてのレプリケーション エージェントの状態を調べ、次の順序で最も高い状態を返します。 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を実行できます。