dmsetrestartposition -更新预订书签的重新启动位置
dmsetrestartposition 实用程序提供了一种直接更新预订书签的重新启动位置的方法,以便它不再指向 CDC 认为仍处于打开状态但未处于打开状态的事务的第一个操作的日志位置。
注意:
如果事务异常中止,那么推进重新启动位置以跳过此事务没有任何缺点。 但是,如果落实该事务,那么该事务中的任何操作都将丢失。 在这种情况下,可能会丢失数据。 但是,如果事务非常旧并且确实已落实,那么您可能会在缺少操作的表上接收到行未找到或重复的行异常,并且已刷新这些表或处理具有自适应应用或 CDR 的缺失或重复行。
在调用此实用程序之前,请确保所有预订都已停止正常,立即或已调度结束。 运行 dmremoveclosedtxn 实用程序,重新启动一个或多个预订,并查看这是否已导致重新启动位置前进。 仅当重新启动位置未更改时,才调用此实用程序。 如果预订正在进行镜像,然后停止异常中止,失败并发生错误,或者源实例或目标实例崩溃,那么不得调用此实用程序。 这是因为在这些情况下,源可能已旧的镜像书签。 因此,落实位置和当前位置可以还原为源书签上的旧位置。 在这些情况下,必须先启动预订,然后正常停止,然后才能运行此实用程序。
语法
dmsetrestartposition [-I /instance name/} -s /subscription name/ [-p /restart position/]
参数
- -I / 实例名称 /
- CDC 实例的名称。 此参数是可选的。
- -s / 订阅名称 /
- 预订的名称。 此参数是必需的。
- [-p/重新启动位置/]
- 此参数是可选的,用于指定要将重新启动位置设置为的日志位置。 如果未指定此选项,那么会将重新启动位置设置为所有日志的当前位置 (转换为重新启动位置)。 仅当书签的当前位置没有打开的事务时,才不能指定
-p选项。 因为如果在这些事务中存在作用域内操作,那么将丢失。注: 与 dmsetbookmark不同, dmsetrestartposition 不会将任何表的复制状态设置为活动。