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
サブスクライバー側でエラーの原因となるトランザクションの xact_seqno を指定します。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 (Transact-SQL) を呼び出し、失敗したトランザクションの xact_seqno 値を取得します。次に sp_setsubscriptionxactseqno を呼び出し、取得した xact_seqno の値を渡します。こうすると、この LSN より後のコマンドだけが処理されます。
ディストリビューション データベース内で保留中になっているすべてのコマンドをサブスクライバーに配信するには、xact_seqno に値 0 を指定します。
ディストリビューション エージェントでマルチサブスクリプション ストリームが使用されると、sp_setsubscriptionxactseqno は失敗する場合があります。
このエラーが発生した場合は、単一のサブスクリプション ストリームでディストリビューション エージェントを実行する必要があります。詳細については、「レプリケーション ディストリビューション エージェント」を参照してください。
権限
sp_setsubscriptionxactseqno を実行できるのは、sysadmin 固定サーバー ロールまたは db_owner 固定データベース ロールのメンバーだけです。