次の方法で共有


sp_setsubscriptionxactseqno (Transact-SQL)

トラブルシューティングを行うときに、サブスクライバー側のディストリビューション エージェントによって適用される次のトランザクションのログ シーケンス番号 (LSN) を指定する場合に使用します。これにより、エージェントでは失敗したトランザクションをスキップできます。 このストアド プロシージャは、サブスクライバー側でサブスクリプション データベースについて実行されます。 SQL Server 以外のサブスクライバーに対してはサポートされていません。

注記注意

このストアド プロシージャの使用方法を誤ったり、不正な LSN 値を指定すると、ディストリビューション エージェントでは、サブスクライバー側で既に適用された変更が元に戻されたり、残っているすべての変更がスキップされることがあります。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

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 固定データベース ロールのメンバーだけです。

変更履歴

変更内容

引数 @xact_seqno の定義を変更しました。 引数にはサブスクライバーに適用されていないトランザクションの xact_seqno が含まれている必要があります。 以前の定義では、エラーの原因となるトランザクションの後に次のトランザクションが指定されていましたが、正しくありませんでした。