数据传输服务 修改迁移实例的当前位点

数据传输服务 DTS 支持修改迁移实例增量迁移模块的目标端写入位点,帮助你在不重建链路的前提下,从指定时间开始在目标端重新执行增量数据回放或跳过指定时间段的数据变更。

相关产品
数据传输服务 产品页,含版本规格、价格与购买入口。

一、操作场景

适用于以下场景:

·重复执行数据变更(向前回退):源端发生主从切换或 binlog 异常,需要从某个时间点重新回放数据;数据不一致需要从指定时间点重新迁移以修复差异;误操作导致目标端数据异常,需要回退到某个时间点重新回放。

·跳过数据变更(向后跳转):需跳过已知的问题数据段或大事务,跳过中间的 binlog 事件,直接从新位点开始迁移。

二、使用限制

·仅支持 MySQL/MariaDB/Percona/TDSQL-C MySQL/TDSQL Boundless/TDSQL MySQL 的迁移链路,暂不支持 TDSQL MySQL(MariaDB 内核)的数据库。

·同一任务下仅允许存在一个进行中的"修改迁移位点"子任务。

·指定位点时间的可选范围为全量导出完成时间至当前时间后3天内。

三、注意事项

·修改位点操作可能导致数据不一致或数据丢失,请谨慎操作,此操作不可撤销。

·向前回退(位点早于当前位点)的影响:

·从指定时间点开始重新在目标端回放数据。

·冲突处理策略:目标端已写入数据再次回放时,有主键表采用冲突覆盖策略(以源端为准);无主键表无法去重,将产生重复数据。

·向前回退需保证回退位点在源端 binlog 留存范围内;同时回退窗口到当前时间内不得包含任何 DDL(结构变更、字符集变更、Online DDL 切换等)与实例扩缩容事件,否则回退将会失败。

·向后跳转(位点晚于当前位点)的影响:

·跳过区间内的所有变更均不会在目标端回放。

·数据层面:DML 被跳过,目标端与源端产生数据不一致。

·结构层面:DDL 被跳过,若后续增量数据依赖这些结构变更,可能因目标端表结构错配导致迁移任务报错中断,需用户自行评估后续风险。

·修改位点后,已有的一致性校验结果失效,需重新发起数据校验。

·修改位点确认后任务将自动重新启动,无需手动介入。

四、前提条件

·已创建的迁移任务已进入增量迁移阶段。

·迁移任务当前处于已暂停状态。如任务正在运行中,需先暂停任务。

五、操作步骤

1. 登录 DTS 控制台,在左侧导航选择数据迁移页,选择指定的迁移任务,在操作列单击暂停,将任务暂停。

2. 单击目标迁移任务 ID,进入任务详情页面。

3. 在页面上方选择进度详情,然后选择增量迁移页签。

4. 在目标端写入位点右侧,单击修改位点。

5. 在弹出的修改迁移位点对话框中,配置以下参数,单击确定。

参数 说明
指定位点类型 当前支持时间点方式。
时间点 选择目标时间点。
UTC 时区选择 选择时区。建议选择与源端数据库相同的时区。例如:数据库 timezone = "Asia/Shanghai",时区选择 UTC+8。

6. 在弹出的对话框中,确认位点信息无误后,再次单击确定。

7. 任务将自动重新启动,等待任务恢复运行后,在增量迁移页签查看目标端写入位点是否已更新。

注意:说明:

六、Q1:修改位点后数据出现重复怎么办?

向前回退场景下,有主键表采用冲突覆盖策略不会产生重复数据。无主键表可能产生重复数据,建议在回退前评估影响范围,回退后使用数据校验功能确认数据一致性。

七、Q2:指定时间点对应的 binlog 已被清理怎么办?

修改位点时需保证回退位点在源端 binlog 留存范围内。若指定时间点对应的 binlog 已被源端清理(purge),则无法回退到该时间点,请选择更晚的时间点。

八、Q3:迁移任务可以回退到全量导出完成时间之前吗?

不可以。迁移任务仅允许在增量阶段修改位点,不允许回退到全量导出完成时间之前。若指定时间点早于全量导出完成时间,系统将拦截并提示。

九、Q4:回退窗口内有 DDL 变更会怎样?

回退窗口到当前时间内不得包含任何 DDL(结构变更、字符集变更、Online DDL 切换等)与实例扩缩容事件,否则任务将直接报错。请确认回退窗口内无 DDL 后再操作。

赞 (0)
上一篇 4天前
下一篇 4天前