sp_replmonitorhelpsubscription (Transact-SQL)
適用対象: SQL Server Azure SQL Managed Instance
パブリッシャー側の 1 つ以上のパブリケーションに属するサブスクリプションの現在の状態情報を返します。サブスクリプションごとに 1 行のデータが返されます。 レプリケーションの監視に使用されるこのストアド プロシージャは、ディストリビューション データベースのディストリビューターで実行されます。
構文
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'
監視対象の状態を示すパブリッシャーの名前。 @publisher は sysname で、既定値は NULL
です。 null場合は、ディストリビューターを使用するすべてのパブリッシャーの情報が返されます。
[ @publisher_db = ] N'publisher_db'
パブリッシュされたデータベースの名前です。 @publisher_db は sysname で、既定値は NULL
です。 NULL
場合は、パブリッシャーのすべてのパブリッシュされたデータベースの情報が返されます。
[ @publication = ] N'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 で、既定値は NULL
です。
[ @exclude_anonymous = ] exclude_anonymous
匿名プル サブスクリプションが結果セットから除外されている場合。 @exclude_anonymous は bit で、既定値は 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 = Push1 = Pull2 = 匿名 |
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
を実行できます。