全部产品
云市场

数据追踪

更新时间:2019-09-17 19:00:15

背景描述

  • 在日常访问数据库时,可能由于误更新、误删除、误写入等原因导致数据不符合预期,需要快速恢复到正常状态的数据
    • 常规的方案可以搭建克隆实例、实例恢复、库恢复、表恢复(后2者依赖于进行了库、表细粒度的备份管理)。【成本比较高,需要事先制定备份方案】
    • 本次产品内提供的数据追踪功能可以快速按需找到目标时间段内的相关更新,汇总生成逆向的回滚语句,从而快速执行以将数据恢复到正常状态。

前言

  • 目前支持数据追踪的数据库类型为:MySQL(包含RDS、ECS上自建、本地IDC自建、友商云数据库、友商云服务器自建等已接入DMS企业版统一管理的MySQL)

操作准备

  • 先通过【SQLConsole】分别模拟执行update、delete、insert几个语法动作
    • 实际情况:这个行为可能由人员在产品内【SQLConsole】窗口直接执行、也可能由人员在产品内【数据变更】工单审批后执行、也可能是通过业务应用代码程序执行的非预期的一些更新操作
    • 执行update操作 update update-result
    • 执行delete操作 delete delete-result
    • 执行insert操作 insert insert-result

入口

entrance

创建数据追踪工单

  • 本工单用途为新建工单,支持以下维度的数据库binlog日志逆向解析并展现数据对比情况、产生恢复回滚脚本语句
    • 【必填】任务名称,便于后续检索与审批人员清晰操作意图
    • 【必选】追踪时间段,默认为当前时间往前2小时(单次工单最长追踪时长跨度为6小时,若超过则可分段建多个工单处理;最长可追踪时间点为目标数据库服务器上binlog文件当前存储的最早时间
    • 【必填】指定数据库实例上某个具体数据库(需要在产品内有数据库的操作权限,输入库名前缀后可出现联想提示)
    • 【选填】指定表,不指定可检索全库操作、指定可多个目标表针对性检索(需要输入表名前缀后可出现联想提示)
    • 【必选】追踪类型,插入、更新、删除,可按需勾选检索的操作(示例三个类型都有操作,全选检索)
    • 【选填】变更相关人,可按需选择,非工单参与人、审批人,则不可见工单详情 new-order

工单审批与解析

  • 目前的安全规则固定为:数据库对应的数据Owner + DBA
  • 审批通过后会自动进入日志下载、日志解析,解析完成进入以下页面 result

追踪不同操作类型

插入

  • 选中追踪类型插入,点击搜索
    • 如有多条需要回滚,可以批量选中后导出回滚脚本
    • 单条可以在记录行最后点击查看详情查看明细以及拷贝回滚delete语句
    • 对应回滚语句为delete
    • 支持表上字段的操作检索insert-deleteinsert-column

更新

  • 选中追踪类型更新,点击搜索
    • 如有多条需要回滚,可以批量选中后导出回滚脚本,批量选中为当前页面,默认每页显示10条,最多显示单页200条可按需选择
    • 单行详情弹层上可高亮对比所更改的字段具体内容,也上一条、下一条快速切换查看其它记录的更新
    • 对应回滚脚本为update
    • 下载的回滚脚本可按需直接提交【数据变更】工单执行到数据库中。update-updateupdate-roolback

删除

  • 选中追踪类型为删除,点击搜索
    • 如有数据返回,操作方式可参考”更新”部分的内容
    • 对应回滚语句为insertdelete-insert

小结

  • 可追踪最长时间受限于数据库实例上保留的binlog文件的时长,单个任务时间跨度为6个小时,超过这个时间跨度可分拆为多个进行
  • 追踪完的数据可批量生成回滚脚本,通过【数据变更】工单最终执行到数据库中完成数据的修复