使用DMS数据追踪进行恢复

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. 单击执行变更