sp_setsubscriptionxactseqno (Transact-SQL)
適用対象: SQL サーバー
トラブルシューティング中に、ログ シーケンス番号 (LSN) を使用して最後に配信されたトランザクションを指定するために使用されます。これにより、ディストリビューション エージェントは次のトランザクションで配信を開始できます。 再起動後、ディストリビューション エージェントはディストリビューション データベース キャッシュ (msrepl_commands) からこの基準値 (LSN) を超えるトランザクションを返します。 このストアド プロシージャは、サブスクリプション データベースのサブスクライバーで実行されます。 SQL Server 以外のサブスクライバーではサポートされていません。
注意事項
このストアド プロシージャを誤って使用するか、正しくない LSN 値を指定すると、ディストリビューション エージェントはサブスクライバーで既に適用されている変更を元に戻したり、残りのすべての変更をスキップしたりする可能性があります。
構文
sp_setsubscriptionxactseqno
[ @publisher = ] N'publisher'
, [ @publisher_db = ] N'publisher_db'
, [ @publication = ] N'publication'
, [ @xact_seqno = ] xact_seqno
[ ; ]
引数
[ @publisher = ] N'publisher'
パブリッシャーの名前。 @publisher は sysname で、既定値はありません。
[ @publisher_db = ] N'publisher_db'
パブリケーション データベースの名前。 @publisher_db は sysname で、既定値はありません。 SQL Server 以外のパブリッシャーの場合、 @publisher_db はディストリビューション データベースの名前です。
[ @publication = ] N'publication'
出版物の名前。 @publication は sysname で、既定値はありません。 複数のパブリケーションがディストリビューション エージェントを共有する場合は、@publicationにALL
の値を指定する必要があります。
[ @xact_seqno = ] xact_seqno
サブスクライバーで適用されるディストリビューターでの次のトランザクションの LSN。 @xact_seqno は varbinary(16) で、既定値はありません。
結果セット
列名 | データ型 | 説明 |
---|---|---|
ORIGINAL XACT_SEQNO |
varbinary(16) | サブスクライバーで適用される次のトランザクションの元の LSN。 |
UPDATED XACT_SEQNO |
varbinary(16) | サブスクライバー側で適用される次のトランザクションの、更新された LSN。 |
SUBSCRIPTION STREAM COUNT |
int | 最後の同期中に使用されたサブスクリプション ストリームの数。 |
リターン コードの値
0
(成功) または 1
(失敗)。
解説
sp_setsubscriptionxactseqno
はトランザクション レプリケーションで使用されます。
sp_setsubscriptionxactseqno
ピアツーピア トランザクション レプリケーション トポロジでは使用できません。
sp_setsubscriptionxactseqno
は、サブスクライバーで適用されるときにエラーの原因となっている特定のトランザクションをスキップするために使用できます。 エラーが発生し、ディストリビューション エージェントが停止した後、ディストリビューターでsp_helpsubscriptionerrorsを呼び出して失敗したトランザクションのxact_seqno
値を取得してから、sp_setsubscriptionxactseqno
を呼び出し、この値を@xact_seqnoに渡します。 これにより、この LSN の後のコマンドのみが処理されます。
ディストリビューション データベース内のすべての保留中のコマンドをサブスクライバーに配信する@xact_seqnoには、0
の値を指定します。
sp_setsubscriptionxactseqno
は、ディストリビューション エージェントがマルチサブスクリプション ストリームを使用する場合に失敗する可能性があります。
このエラーが発生した場合は、1 つのサブスクリプション ストリームでディストリビューション エージェントを実行する必要があります。 詳細については、「 Replication Distribution Agent」を参照してください。
アクセス許可
sysadmin固定サーバー ロールまたは固定データベース ロールdb_ownerのメンバーのみがsp_setsubscriptionxactseqno
を実行できます。