DMS的数据追踪功能可以快速按需找到目标时间段内的相关更新,并生成逆向回滚语句,追踪完的数据可批量生成回滚脚本,通过数据变更工单最终执行到数据库中完成数据的修复。当误操作受影响的数据量在10万以内时,您可使用该方法进行数据恢复。

前提条件

  • 已为集群开启Binlog。详细操作步骤,请参见开启Binlog
  • 若在DMS中,该集群的管控模式为自由操作与稳定变更,请先通过DMS登录目标集群。

步骤一、查找需回滚记录,生成回滚脚本

首先,您需要在DMS控制台提交数据追踪工单申请,审批通过后,根据解析出的日志,选择需要回滚的变更记录,并生成回滚脚本。

  1. 登录新版DMS控制台
  2. 在页面顶部,选择数据库开发 > 数据追踪 > 数据追踪工单
  3. 在页面右上角,单击+数据追踪
  4. 数据追踪工单申请页面,根据下表填写工单申请。
    数据追踪
    参数名 说明
    任务名称 便于后续检索,并提供给审批人员清晰的操作意图。
    库名 误操作对象的数据库名。
    表名 误操作对象的表名。
    追踪类型 支持多选,可按需勾选检索的操作。
    时间范围 默认为当前时间往前2小时。单次工单最长追踪时长跨度为6小时,若超过则可分段建多个工单处理。最长可追踪时间点为目标数据库服务器上Binlog文件当前存储的最早时间。
  5. 单击提交申请,系统将获取日志文件。
    获取日志文件后,系统会进入审批环节。
    说明 若Binlog未开启或数据库未登录,系统将无法获取日志文件。
  6. 等待审批通过。
    说明 数据追踪的默认安全审批规则为:数据库对应的DBA进行审批。
  7. 审批通过后,系统会进行日志下载、日志解析等操作。
  8. 待解析完成后,您可以勾选需要回滚的变更记录,单击导出回滚脚本即可。

步骤二、执行回滚

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

  1. 在DMS控制台页面顶部,选择数据库开发 > 数据变更 > 普通数据变更
  2. 可参考下表填写数据变更工单申请,并单击提交申请
    数据变更
    表 1. 数据变更参数说明
    参数名 说明
    数据库 要恢复的数据库名称。
    影响行数 预估本次更新会影响的数据行数,可在SQLConsolecount统计。
    变更SQL 选择附件,并将步骤一中生成的脚本上传至附件。
  3. 工单提交后,系统会进行内容合法性检查。
  4. 当检查通过后,需要您提交审批,审批通过后,就会生成执行任务。
    说明 数据变更的默认安全审批规则为:数据库对应的DBA进行审批。
  5. 单击执行变更