数据追踪与回滚
数据追踪与回滚功能提供了数据变更操作追踪及数据回滚能力。
通常,数据追踪与回滚功能适用于如下场景:
- 核心数据变更审计,统计变更数量及查看敏感变更信息。例如,查询银行流水查看收支情况、订单表统计新增订单、配置表关键配置变更历史。
- 误操作数据回滚,找回误删除数据,恢复变更前数据状态。例如,DBA更新配置未加where条件、误删除配置数据、程序bug生成大量脏数据及其连锁反应。
前提条件
- 已启用数据追踪与回滚功能。
- 目标数据库已开启Binlog。
数据追踪
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。
- 单击页面左上角的
,选择“数据库 > 数据管理服务 DAS”,进入数据管理服务页面。
- 在左侧导航栏中,单击“开发工具”,进入开发工具页面。
您也可以在产品概览页面,单击“进入开发工具”,进入开发工具页面。
- 选择需要登录的目标数据库实例,单击操作列表中的“登录”,登录目标数据库实例。
- 在顶部菜单栏选择
,打开数据追踪与回滚任务列表页面。图1 进入任务
- 您可根据时间范围或数据库名称等条件筛选查询。
- 在任务列表“任务ID”栏下单击目标任务ID,即可查看该任务详情。
- 在任务列表操作栏下单击“进入任务”,即可查看任务信息、搜索日志及回滚任务列表等日志追踪与回滚详情。
- 您可勾选目标任务并进行删除操作,将同步删除在DAS存储中的变更记录。
数据追踪任务默认有效期为15天,超时系统会自动回收并删除在DAS存储中的变更记录。
- 在任务列表页面,单击页面左上角“新建追踪任务”。
- 在新建任务弹窗中,设置数据追踪任务基本信息。
图2 新建追踪任务
表1 追踪任务参数说明 参数名称
说明
任务名称
自定义任务名称。
时间范围
数据追踪的时间范围。建议选择不超过3小时的时间范围。
数据库名
数据追踪的目标数据库。
表名
选择需要进行检索的目标表,支持添加多张表。
追踪类型
支持多选,可按需选中检索的操作。
支持如下追踪类型:
- 更新
- 插入
- 删除
- DDL语句
首次进行数据回滚的用户需查看并勾选数据安全协议,才能创建数据追踪任务。
- 单击“预检查”,预检查会根据时间范围筛选Binlog列表。
- 开启备份的RDS实例会定时备份Binlog文件到OBS桶中,备份会有不大于5分钟的延迟。
- 当您发起对当前时间数据追踪时,存在无最新5分钟变更记录的可能,遇到该情况稍后重新创建任务即可。
- 预检查成功后,单击“读取日志”,获取日志详情信息。
读取日志会发起Binlog解析,根据任务信息将存储涉及变更记录信息,以便支持后续数据筛选及展示。
图3 读取日志- 所有日志读取成功才能进行搜索日志等相关操作。
- 当前一次任务读取不完全时,再次启动追踪任务,可能出现读取日志开始时间比日志结束时间晚的情况,属于正常情况。
- 日志读取完成后,单击“搜索日志”,进入搜索日志页面,获取变更事件列表信息。
- 您可以在搜索日志页面,获取变更事件的信息,如:事件ID、变更时间、变更类型、表名、行数、描述信息等。
- 您也可以在搜索日志列表操作列查看数据或查看回滚语句。
图4 搜索日志
数据回滚
- 登录管理控制台。
- 单击管理控制台左上角的
,选择区域和项目。
- 单击页面左上角的
,选择“数据库 > 数据管理服务 DAS”,进入数据管理服务页面。
- 在左侧导航栏中,单击“开发工具”,进入开发工具页面。
您也可以在产品概览页面,单击“进入开发工具”,进入开发工具页面。
- 选择需要登录的目标数据库实例,单击操作列表中的“登录”,登录目标数据库实例。
- 在顶部菜单栏选择 ,打开数据追踪与回滚任务列表页面。
- 单击操作列“进入任务”。
图5 进入任务
- 在“搜索日志”页面单击“新建回滚任务”,或者在“回滚任务列表”页面单击“新建回滚任务”。
- 在“新建回滚任务”弹窗中设置回滚任务信息。
图6 新建回滚任务
表2 回滚任务参数说明 参数名称
说明
开始事件ID
开始事件ID为任务列表中ID号,且应按正序填写。您可以通过11查看事件ID号。
结束事件ID
结束事件ID为任务列表中ID号,且应按正序填写。您可以通过11查看事件ID号。
回滚语句存放位置
填写OBS桶。
出于数据隐私性保护目的,DAS会将回滚语句存放在OBS桶中,然后DAS会自动连接到该OBS桶,进行内存式读取,整个过程您的数据内容不会落盘在DAS的任何存储介质上。
创建OBS桶免费,但保存文件将产生一定的费用。
字符集
选择字符集。
语句类型选项
- 生成基于事件的回滚SQL:针对数据发生变更时的前后镜像生成反向变更SQL。
- 获取数据变更前的原始数据:将数据变更前镜像生成回滚表及insert语句。
高级选项
您也可以根据需要在高级选项中设置追踪类型、表名、字段名、字段内容。
对于同一记录(主键)连续3次变更(1→2→3→4)等价于1次变更(1→4)。
- 设置完成后单击“确定”。
- 在回滚任务列表页面,您可查看回滚任务。
图7 查看当前回滚任务
- 在任务列表操作栏下单击“查看详情”,可查看本次回滚任务的详情信息。
- 在任务列表操作栏下单击“下载”,可将数据变更前的原始数据和基于事件的回滚SQL下载到本地进行查看。
- 在任务列表右上方搜索框中输入任务ID可对目标任务进行搜索。
- 在任务列表操作栏中可根据回滚任务ID、开始事件ID、结束事件ID、文件大小、状态对任务进行排序。
同一记录合并变更存在变更抵消情况(insert->delete,delete->insert,update->update),因此生成文件会存在无回滚SQL或无原始数据情况。