sp_setsubscriptionxactseqno (Transact-SQL)

Используется во время диагностики для задания регистрационного номера следующей транзакции в журнале, подлежащей применению агентом распространителя на подписчике, что позволяет агенту пропустить транзакцию, вызвавшую сбой. Эта хранимая процедура выполняется на подписчике в базе данных подписки. Не поддерживается для подписчиков, отличных от подписчика 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'
    Имя базы данных публикации. Аргумент publisher_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.

Для доставки всех ожидающих применения команд подписчику в базу данных распространителя задайте значение 0 для аргумента xact_seqno.

Если агент распространителя использует потоки нескольких подписок, процедура sp_setsubscriptionxactseqno может закончиться неудачей.

При возникновении этой ошибки необходимо запустить агент распространителя с потоком одной подписки. Дополнительные сведения см. в разделе Агент распространения репликации.

Разрешения

Только члены предопределенной роли сервера sysadmin или предопределенной роли базы данных db_owner могут выполнять процедуру sp_setsubscriptionxactseqno.

См. также

Основные понятия