sp_setsubscriptionxactseqno (Transact-SQL)
Область применения: SQL Server
Используется во время устранения неполадок, чтобы указать последнюю доставленную транзакцию с помощью номера последовательности журнала (LSN), что позволяет агент распространения начать доставку в следующую транзакцию. После перезапуска агент распространения возвращает транзакции больше, чем этот водяной знак (LSN) из кэша базы данных распространителя (msrepl_commands). Эта хранимая процедура выполняется на подписчике в базе данных подписки. Не поддерживается для подписчиков, отличных от подписчика 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'
Имя издателя. @publisher — sysname без значения по умолчанию.
[ @publisher_db = ] N'publisher_db'
Имя базы данных публикации. @publisher_db — sysname без значения по умолчанию. Для издателя, отличного от SQL Server, @publisher_db — это имя базы данных распространителя.
[ @publication = ] N'publication'
Имя публикации. @publication — sysname без значения по умолчанию. Если несколько публикаций совместно использует агент распространения, необходимо указать значение ALL
для @publication.
[ @xact_seqno = ] xact_seqno
LSN следующей транзакции на распространителю, применяемой на подписчике. @xact_seqno — varbinary(16), без значения по умолчанию.
Результирующий набор
Имя столбца | Тип данных | Description |
---|---|---|
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.
Укажите значение 0
для @xact_seqno для доставки всех ожидающих команд в базе данных распространителя подписчику.
sp_setsubscriptionxactseqno
Может завершиться ошибкой, если агент распространения использует потоки с несколькими подписками.
При возникновении этой ошибки необходимо запустить агент распространителя с потоком одной подписки. Дополнительные сведения см. в статье Replication Distribution Agent.
Разрешения
Могут выполняться только члены предопределенных ролей сервера sysadmin или db_owner предопределенных ролей базы данных.sp_setsubscriptionxactseqno