Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения: 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