次の方法で共有


sp_setsubscriptionxactseqno (Transact-SQL)

適用対象: SQL Server

トラブルシューティング中に、ログ シーケンス番号 (LSN) を使用して最後に配信されたトランザクションを指定するために使用されます。これにより、ディストリビューション エージェントは次のトランザクションで配信を開始できます。 再起動後、ディストリビューション エージェントはディストリビューション データベース キャッシュ (msrepl_commands) からこの基準値 (LSN) を超えるトランザクションを返します。 このストアド プロシージャは、サブスクリプション データベースのサブスクライバーで実行されます。 SQL Server 以外のサブスクライバーではサポートされていません。

注意事項

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

Transact-SQL 構文表記規則

構文

sp_setsubscriptionxactseqno
    [ @publisher = ] N'publisher'
    , [ @publisher_db = ] N'publisher_db'
    , [ @publication = ] N'publication'
    , [ @xact_seqno = ] xact_seqno
[ ; ]

引数

[ @publisher = ] N'publisher'

パブリッシャーの名前。 @publishersysname で、既定値はありません。

[ @publisher_db = ] N'publisher_db'

パブリケーション データベースの名前。 @publisher_dbsysname で、既定値はありません。 SQL Server 以外のパブリッシャーの場合、 @publisher_db はディストリビューション データベースの名前です。

[ @publication = ] N'publication'

出版物の名前。 @publicationsysname で、既定値はありません。 複数のパブリケーションがディストリビューション エージェントを共有する場合は、@publicationALLの値を指定する必要があります。

[ @xact_seqno = ] xact_seqno

サブスクライバーで適用されるディストリビューターでの次のトランザクションの LSN。 @xact_seqnovarbinary(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を実行できます。