数据追踪功能可以快速按需找到目标时间段内的相关更新,并生成逆向回滚语句。本文介绍数据追踪功能与操作说明。

背景信息

在日常访问数据库时,可能由于误更新、误删除、误写入等原因导致数据不符合预期,需要将数据快速恢复到正常状态。常规的方案可能为搭建克隆实例、实例恢复、库恢复、表恢复,后两者依赖于对库、表进行细粒度的备份管理,不仅成本较高,且需要事先制定备份方案。

本次产品内提供的数据追踪功能可以快速按需找到目标时间段内的相关更新,汇总生成逆向的回滚语句,追踪完的数据可批量生成回滚脚本,通过数据变更工单最终执行到数据库中完成数据的修复。

前提条件

  • 数据库类型为MySQL。
    说明 包含RDS MySQL、PolarDB MySQL、ECS上自建、本地IDC自建、友商云数据库、友商云服务器自建等已接入DMS企业版统一管理的MySQL。
  • 数据库已开启Binlog。
  • 数据库已登录。
    说明 管控模式为自由操作与稳定变更的数据库实例需要先登录,安全协同的数据库实例请忽略,更多关于管控模式的信息,请参见管控模式

操作步骤

  1. 登录新版DMS控制台
  2. 在页面顶部,选择全部功能 > 数据方案 > 数据追踪
  3. 在页面右上角,单击数据追踪
  4. 数据追踪工单申请页面,根据下表填写工单申请。
    参数名 说明
    任务名称 便于后续检索,并提供给审批人员清晰的操作意图。
    库名 指定数据库实例上某个具体数据库(需要在产品内有数据库的操作权限,输入库名前缀后可出现联想提示)。
    表名 在指定的目标表中进行检索,支持添加多张表(需要输入表名前缀后可出现联想提示)。
    追踪类型 支持多选,可按需勾选检索的操作。
    • 插入:插入类型的回滚语句为delete
    • 更新:更新类型的回滚语句为update
    • 删除:删除类型的回滚语句为insert
    时间范围 默认为当前时间往前2小时。单次工单最长追踪时长跨度为6小时,若超过则可分段建多个工单处理。最长可追踪时间点为目标数据库服务器上binlog文件当前存储的最早时间。
    变更相关人 可按需选择,非工单参与人、审批人,不可见工单详情。
  5. 单击提交申请,系统将获取日志文件。
    获取日志文件后,系统会进入审批环节。
    说明 若Binlog未开启或数据库未登录,系统将无法获取日志文件。
  6. 等待审批通过。
    说明 目前,数据追踪的默认安全审批规则为:数据库对应的DBA进行审批。更多关于数据追踪的审批规则请参见数据追踪安全规则
  7. 审批通过后,系统会进行日志下载、日志解析等操作。
  8. 待解析完成后,您可以勾选需要回滚的变更记录,单击导出回滚脚本即可。
    说明 同时您还可以:
    • 批量勾选多条记录,批量导出,默认每页显示10条,最多显示单页200条,您可以按需选择。
    • 单击目标记录右侧的查看详情按钮,查看明细以及拷贝对应回滚语句。
    • 追踪类型栏中进行筛选,快速筛选插入更新删除类型的记录。

后续步骤

导出回滚脚本后,您可以提交普通数据变更工单,将此回滚脚本作为附件上传至工单中,执行至目标数据库中,更多信息,请查看普通数据变更