sp_setsubscriptionxactseqno (Transact-SQL)
トラブルシューティングを行うときに、サブスクライバ側のディストリビューション エージェントによって適用される次のトランザクションのログ シーケンス番号 (LSN) を指定する場合に使用します。これにより、エージェントでは失敗したトランザクションをスキップできます。このストアド プロシージャは、サブスクライバ側でサブスクリプション データベースについて実行されます。SQL Server 以外のサブスクライバに対してはサポートされていません。
注意 : |
---|
このストアド プロシージャの使用方法を誤まったり、不正な LSN 値を指定すると、ディストリビューション エージェントでは、サブスクライバ側で既に適用された変更が元に戻されたり、残っているすべての変更がスキップされることがあります。 |
構文
sp_setsubscriptionxactseqno [ @publisher = ] 'publisher'
, [ @publisher_db = ] 'publisher_db'
, [ @publication = ] 'publication'
, [ @xact_seqno = ] xact_seqno
引数
- [ @publisher= ] 'publisher'
パブリッシャの名前を指定します。publisher のデータ型は sysname で、既定値はありません。
- [ @publisher_db= ] 'publisher_db'
パブリケーション データベースの名前を指定します。publication_db のデータ型は sysname で、既定値はありません。SQL Server 以外のパブリッシャの場合、publisher_db にはディストリビューション データベースの名前を指定します。
- [ @publication= ] '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 |
最後の同期中に使用されたサブスクリプション ストリームの数。 |
解説
sp_setsubscriptionxactseqno は、トランザクション レプリケーションで使用します。
sp_setsubscriptionxactseqno は、ピアツーピア トランザクション レプリケーション トポロジでは使用できません。
sp_setsubscriptionxactseqno は、サブスクライバ側で適用するとエラーが発生する特定のトランザクションをスキップする場合に使用できます。エラーが発生した場合は、ディストリビューション エージェントが停止した後、ディストリビュータ側で sp_helpsubscriptionerrors (Transact-SQL) を呼び出し、失敗したトランザクションの xact_seqno 値を取得します。次に sp_setsubscriptionxactseqno を呼び出し、取得した xact_seqno の値を渡します。こうすると、この LSN より後のコマンドだけが処理されます。
ディストリビューション データベース内で保留中になっているすべてのコマンドをサブスクライバに配信するには、xact_seqno に値 0 を指定します。
ディストリビューション エージェントでマルチサブスクリプション ストリームが使用されると、sp_setsubscriptionxactseqno は失敗する場合があります。
このエラーが発生した場合は、単一のサブスクリプション ストリームでディストリビューション エージェントを実行する必要があります。詳細については、「レプリケーション ディストリビューション エージェント」を参照してください。
権限
sp_setsubscriptionxactseqno を実行できるのは、sysadmin 固定サーバー ロールまたは db_owner 固定データベース ロールのメンバだけです。
戻り値
0 (成功) または 1 (失敗)