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
Номер LSN следующей транзакции на распространителе, которая должна быть применена на подписчике. Аргумент xact_seqno имеет тип varbinary(16) и не имеет значения по умолчанию.
Значения кодов возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Замечания
Процедура sp_setsubscriptionxactseqno используется в репликации транзакций.
Процедура sp_setsubscriptionxactseqno не может использоваться в одноранговой топологии репликации транзакций.
Процедура sp_setsubscriptionxactseqno может использоваться для пропуска определенной транзакции, вызывающей ошибку при применении на подписчике. При наличии сбоя после остановки агента распространителя вызовите на распространителе процедуру sp_helpsubscriptionerrors (Transact-SQL) для получения значения xact_seqno поврежденной транзакции, затем вызовите процедуру sp_setsubscriptionxactseqno, передав это значение для xact_seqno. Тем самым будет обеспечена обработка только одной команды после этого номера LSN.
Для доставки всех ожидающих применения команд подписчику в базу данных распространителя задайте значение 0 для аргумента xact_seqno.
Если агент распространителя использует потоки нескольких подписок, процедура sp_setsubscriptionxactseqno может закончиться неудачей.
При возникновении этой ошибки необходимо запустить агент распространителя с потоком одной подписки. Дополнительные сведения см. в разделе Replication Distribution Agent.
Разрешения
Только члены фиксированной серверной роли sysadmin или фиксированной роли базы данных db_owner могут выполнять процедуру sp_setsubscriptionxactseqno.
Результирующий набор
Имя столбца | Тип данных | Описание |
---|---|---|
ORIGINAL XACT_SEQNO |
varbinary(16) |
Исходный номер LSN следующей транзакции, которая должна быть применена на подписчике. |
UPDATED XACT_SEQNO |
varbinary(16) |
Обновленный номер LSN следующей транзакции, которая должна быть применена на подписчике. |
SUBSCRIPTION STREAM COUNT |
int |
Количество потоков подписки, используемых во время последней синхронизации. |
См. также
Другие ресурсы
Пропуск ошибок в репликации транзакций