Поделиться через


sp_repldone (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

Обновляет запись, которая идентифицирует последнюю распределенную транзакцию сервера. Эта хранимая процедура выполняется на издателе в базе данных публикации.

Внимание

При выполнении sp_repldone вручную можно сделать недействительным порядок и согласованность доставленных транзакций. Вы должны использовать sp_repldone только для устранения неполадок репликации, как указано опытным специалистом по поддержке репликации.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_repldone [ @xactid = ] xactid
    , [ @xact_seqno = ] xact_seqno
    [ , [ @numtrans = ] numtrans ]
    [ , [ @time = ] time ]
    [ , [ @reset = ] reset ]
[ ; ]

Аргументы

[ @xactid = ] xactid

Номер последовательности журнала (LSN) первой записи для последней распределенной транзакции сервера. @xactid является двоичным(10), без значения по умолчанию.

[ @xact_seqno = ] xact_seqno

LSN последней записи для последней распределенной транзакции сервера. @xact_seqno является двоичным(10), без значения по умолчанию.

[ @numtrans = ] numtrans

Количество распределенных транзакций. @numtrans не используется без значения по умолчанию.

[ @time = ] время

Количество миллисекунда, если оно указано, необходимо для распределения последнего пакета транзакций. @time не используется без значения по умолчанию.

[ @reset = ] сброс

Состояние сброса. @reset не используется без значения по умолчанию.

  • Если 1все реплицированные транзакции в журнале помечены как распределенные.
  • Если 0журнал транзакций сбрасывается на первую реплицированную транзакцию, а реплицированные транзакции не помечены как распределенные.

@reset допустимо только в том случае, если @xactid и @xact_seqnoNULL.

Значения кода возврата

0 (успешно) или 1 (сбой).

Замечания

sp_repldone используется в репликации транзакций.

sp_repldone используется процессом чтения журналов для отслеживания распределенных транзакций.

С помощью sp_repldoneможно вручную сообщить серверу о том, что транзакция была реплицирована (отправлена распространителю). Кроме того, эта процедура позволяет изменить транзакцию, отмеченную в качестве следующей транзакции, подлежащей репликации. По списку реплицированных транзакций можно перемещаться вперед и назад. (Все транзакции, номера которых не превышают номера этой транзакции, отмечаются как распределенные.)

Требуемые параметры @xactid и @xact_seqno можно получить с помощью sp_repltrans или sp_replcmds.

Данную процедуру можно использовать в аварийных случаях для усечения журнала транзакций при наличии транзакций, ожидающих репликации. Дополнительные сведения см. в разделе Примеры.

Разрешения

Члены предопределенных ролей сервера sysadmin или предопределенных ролей базы данных db_owner могут выполнятьсяsp_repldone.

Примеры

Если @xactid NULL, @xact_seqno есть NULLи @reset , 1все реплицированные транзакции в журнале помечены как распределенные. Это полезно, если в журнале транзакций имеются реплицированные транзакции, ставшие недействительными, и нужно усечь журнал, например:

EXEC sp_repldone
    @xactid = NULL,
    @xact_seqno = NULL,
    @numtrans = 0,
    @time = 0,
    @reset = 1;