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;