更新时间:2023-03-28 GMT+08:00

数据追踪与回滚

操作场景

  • 核心数据变更审计,统计变更数量及查看敏感变更信息。例如,查询银行流水查看收支情况、订单表统计新增订单、配置表关键配置变更历史时,可以使用该功能。
  • 误操作数据回滚,找回误删除数据,恢复变更前数据状态。例如,DBA更新配置未加where条件、误删除配置数据、程序bug生成大量脏数据及其连锁反应时,可以使用该功能。

操作步骤

  1. 在顶部菜单栏选择“数据方案”>“数据追踪与回滚”打开数据追踪与回滚任务列表页面。

    • 您可根据时间范围或数据库名称等条件筛选查询。
    • 您可勾选目标任务并进行删除操作,将同步删除变更记录DAS存储。
    • 在任务列表“任务ID”栏下单击目标任务ID,即可查看该任务详情。
    • 在任务列表操作栏下单击“进入任务”,即可查看任务信息、搜索日志及回滚任务列表等日志追踪与回滚详情。

    创建的任务将在15天后过期,系统会自动回收并删除在DAS存储中的变更记录。

  2. 在任务列表页面,单击页面左上角“新建追踪任务”,在新建任务弹窗中,设置数据追踪任务基本信息,如任务名、时间范围、数据库名等。

    • 首次进行数据回滚的用户需查看并勾选同意协议,才能创建数据追踪任务。
    • 任务追踪与回滚的时间范围默认为3小时。

  3. 在弹窗下部单击“预检查”,在预检查页面你可获取具体时间点的操作详情。

    • 预检查会根据时间范围筛选Binlog列表,开启备份的RDS实例会定时备份Binlog文件到OBS桶中,备份会有不大于5分钟的延迟。
    • 当您发起对当前时间数据追踪时,存在无最新5分钟变更记录的可能,遇到该情况稍后重新创建任务即可。

  4. 在弹窗下部单击“读取日志”,获取日志详情信息。

    读取日志会发起Binlog解析,根据任务信息将存储涉及变更记录信息,以便支持后续数据筛选及展示。

    • 所有日志读取成功才能进行搜索日志等相关操作。
    • 当前一次任务读取不完全时,再次启动追踪任务,可能出现读取日志开始时间比日志结束时间晚的情况,属于正常情况。

  5. 在弹窗下部单击“搜索日志”,进入搜索日志页面,获取变更事件列表信息。
  6. 当有多个事件需要合并回滚时,在搜索日志页面单击“新建回滚任务”,在“新建回滚任务”弹窗中指定回滚事件ID范围,将合并后的回滚SQL生成到OBS桶中,并按需设置高级选项信息,设置完成后单击“确定”

    • 开始事件ID及结束事件ID为任务列表中ID号,且应按正序填写。
    • 变更合并

      对同一记录(主键)连续3次变更(1→2→3→4)等价于1次变更(1→4)。

    • 语句类型选项

      生成基于事件的回滚SQL:针对数据发生变更时的前后镜像生成反向变更SQL。

      获取数据变更前的原始数据:将数据变更前镜像生成回滚表及insert语句。

  7. 在回滚任务列表页面,您可查看当前回滚任务信息或新建回滚任务。

    • 在任务列表操作栏下单击“查看详情”,可查看本次回滚任务的详情信息。
    • 在任务列表操作栏下单击“下载”,可在本地获取本次任务数据压缩包。

      同一记录合并变更存在变更抵消情况(insert->delete,delete->insert,update->update),因此生成文件会存在无回滚SQL或无原始数据情况。