DMS的数据追踪功能可以快速按需找到目标时间段内的相关更新,并生成逆向回滚语句,追踪完的数据可批量生成回滚脚本,通过数据变更工单最终执行到数据库中完成数据的修复。当误操作受影响的数据量在10万以内时,您可使用该方法进行数据恢复。
前提条件
- 已为集群开启Binlog。详细操作步骤,请参见开启Binlog。
- 若在DMS中,该集群的管控模式为自由操作与稳定变更,请先通过DMS登录目标集群。
步骤一、查找需回滚记录,生成回滚脚本
首先,您需要在DMS控制台提交数据追踪工单申请,审批通过后,根据解析出的日志,选择需要回滚的变更记录,并生成回滚脚本。
- 登录新版DMS控制台。
- 在页面顶部,选择。
- 在页面右上角,单击+数据追踪。
- 在数据追踪工单申请页面,根据下表填写工单申请。
参数名 |
说明 |
任务名称 |
便于后续检索,并提供给审批人员清晰的操作意图。 |
库名 |
误操作对象的数据库名。 |
表名 |
误操作对象的表名。 |
追踪类型 |
支持多选,可按需勾选检索的操作。 |
时间范围 |
默认为当前时间往前2小时。单次工单最长追踪时长跨度为6小时,若超过则可分段建多个工单处理。最长可追踪时间点为目标数据库服务器上Binlog文件当前存储的最早时间。 |
- 单击提交申请,系统将获取日志文件。
获取日志文件后,系统会进入审批环节。
说明 若Binlog未开启或数据库未登录,系统将无法获取日志文件。
- 等待审批通过。
说明 数据追踪的默认安全审批规则为:数据库对应的DBA进行审批。
- 审批通过后,系统会进行日志下载、日志解析等操作。
- 待解析完成后,您可以勾选需要回滚的变更记录,单击导出回滚脚本即可。
步骤二、执行回滚
导出回滚脚本后,您可以提交普通数据变更工单,将此回滚脚本作为附件上传至工单中,执行至目标数据库中。
- 在DMS控制台页面顶部,选择。
- 可参考下表填写数据变更工单申请,并单击提交申请。
表 1. 数据变更参数说明
参数名 |
说明 |
数据库 |
要恢复的数据库名称。 |
影响行数 |
预估本次更新会影响的数据行数,可在SQLConsole以count 统计。
|
变更SQL |
选择附件,并将步骤一中生成的脚本上传至附件。
|
- 工单提交后,系统会进行内容合法性检查。
- 当检查通过后,需要您提交审批,审批通过后,就会生成执行任务。
说明 数据变更的默认安全审批规则为:数据库对应的DBA进行审批。
- 单击执行变更。