sp_repldone (Transact-SQL)

备注

如果您手动执行 sp_repldone,可以使传递的事务的顺序和一致性无效。只在有经验的复制支持专业人员的指导下对复制进行故障排除时,才应使用 sp_repldone

主题链接图标 Transact-SQL 语法约定

语法

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

参数

  • [ @xactid=] xactid
    服务器的最后一个已分发事务的第一个记录的日志序列号 (LSN)。xactid 的数据类型为 binary(10),无默认值。

  • [ @xact_seqno=] xact_seqno
    服务器的最后一个已分发事务的最后一个记录的 LSN。xact_seqno 的数据类型为 binary(10),无默认值。

  • [ @numtrans=] numtrans
    已分发的事务数。numtrans 的数据类型为 int,无默认值。

  • [ @time=] time
    分发最后一批事务所需的毫秒数(如果提供)。 time 的数据类型为 int,无默认值。

  • [ @reset=] reset
    重置状态。 reset 的数据类型为 int,无默认值。 如果为 1,则日志中所有复制的事务将标记为已分发。 如果为 0,则事务日志将重置为第一个复制的事务,并且不将任何已复制的事务标记为已分发。 只有当 xactidxact_seqno 都为 NULL 时,reset 才有效。

返回代码值

0(成功)或 1(失败)

注释

sp_repldone 用于事务复制。

sp_repldone 由日志读取器进程用来跟踪哪些事务已分发。

使用 sp_repldone,您可以手动通知服务器事务已复制(即已发送到分发服务器)。 它还允许您更改被标记为下一个等待复制的事务。 您可以在已复制事务的列表中前后移动。 (所有小于或等于该事务的事务都将标记为已分发。)

可以使用 sp_repltranssp_replcmds 获得所需的参数 xactidxact_seqno

权限

sysadmin 固定服务器角色或 db_owner 固定数据库角色的成员可以执行 sp_repldone

示例

xactid 为 NULL,xact_seqno 为 NULL,并且 reset1 时,日志中的所有复制事务都标记为已分发。 当事务日志中存在不再有效的复制事务并且想截断该日志时,此过程很有用,例如:

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

备注

可以在紧急情况下使用此过程,以允许在有事务挂起复制时截断事务日志。

请参阅

参考

sp_replcmds (Transact-SQL)

sp_replflush (Transact-SQL)

sp_repltrans (Transact-SQL)

系统存储过程 (Transact-SQL)