在DMS的SQL窗口中对数据库进行变更操作时,可能由于误更新、误删除、误写入等原因导致数据不符合预期。DMS的数据追踪功能支持按需查找目标时间段内(数据库Binlog保存时长内)的相关更新信息,并生成回滚脚本,帮助您快速将数据恢复到变更前。
前提条件
- 数据库类型为MySQL,且MySQL为5.6及以上版本。 说明- 包含已接入DMS企业版统一管理的RDS MySQL、PolarDB MySQL版、ECS上自建、本地IDC自建或其他云厂商的MySQL数据库。 
- 数据库已开启Binlog。 
- 已在DMS登录目标数据库。 说明- 自由操作和稳定变更的实例需要登录。安全协同实例免登录。 
注意事项
- 自由操作实例仅支持追踪30分钟内进行的DML操作,且无法导出回滚、重建脚本。 
- 稳定变更、安全协同实例:无时间限制,可批量下载回滚、重建脚本。 
- DMS可追踪到的数据与目标数据库实例的Binlog保留时长有关,若该数据的保存时间超过Binlog的保留时长,则获取不到该部分数据。 
- 若数据库的Binlog未开启或数据库登录状态异常,系统将无法获取日志文件。 
- 数据追踪功能仅支持追踪DML数据变更的数据,不支持追踪DDL结构变更的数据。 
- 美国地域的DMS暂不支持此功能。 
操作步骤
- 登录数据管理DMS 5.0。
- 单击控制台左上角的  图标,选择。说明 图标,选择。说明- 若您使用的是非极简模式的控制台,在顶部菜单栏中,选择。 
- 在页面右上角,单击数据追踪。 
- 在数据追踪工单申请页面,配置如下信息: - 参数名 - 说明 - 任务名称 - 便于后续检索,并提供给审批人员清晰的操作意图。 - 库名 - 指定库实例上的某个具体数据库(需要在DMS内有数据库的操作权限,输入库名前缀后可出现联想提示)。 - 表名 - 在指定的目标表中进行检索,支持添加多张表。 - 追踪类型 - 支持多选,可按需选中需要检索的操作类型。 - 插入:插入类型的回滚语句为 - INSERT。
- 更新:更新类型的回滚语句为 - UPDATE。
- 删除:删除类型的回滚语句为 - DELETE。
 - 时间范围 - 选择追踪的时间范围。 - 自由操作实例,仅支持追踪30分钟范围内的数据。 
- 稳定变更和安全协同实例不限制时间范围,但一个数据追踪工单最多可追踪48小时的数据。若超过48小时可分段提交多次工单。 
 - 变更相关人 - 可按需选择,非工单参与人和审批人,不可见工单详情。 
- 单击提交申请,系统将获取日志文件。 - 获取日志文件后,系统会进入审批环节。 
- 等待审批通过。 说明- 目前,系统默认数据追踪工单的审批人为数据库DBA。数据追踪的审批规则信息,请参见数据追踪。 
- 审批通过后,系统会进行日志下载、日志解析等操作。 
- 待下载、解析完成后,您可以从追踪类型、表名、列名等维度筛选出您需要导出的回滚脚本。单击导出回滚脚本,该脚本文件会下载至本地。 说明- 您可目标记录右侧的查看详情按钮,查看明细以及拷贝对应回滚语句。 
- 追踪类型有插入、更新、删除。 
 
相关操作
- 导出回滚脚本后,您可先对回滚SQL影响数据行进行大概评估,再选择执行回滚SQL的方式: - 若影响较小,您可在SQL窗口执行SQL。具体操作,请参见SQL Console初体验。 
- 若影响较大,您可提交普通数据变更工单将此回滚脚本作为附件上传至工单中,执行至目标数据库中。具体操作,请查看普通数据变更。 
 
- 使用API进行数据追踪。