数据追踪与回滚
DBSC 数据追踪与回滚功能用于解析数据库中对于数据或对象结构的变更或删除操作,并生成回滚语句,可用于数据的快速恢复。保证在误操作或数据错误之后,业务数据的完整性。
背景信息
随着企业的业务规模扩大,其数据库的结构和业务数据也逐渐增加且越来越复杂,数据的维护也愈发困难。例如,某个程序 BUG 导致业务库中的数据错误,或者在某一次数据变更操作后,业务库中的数值不符合预期,此时需要快速定位到导致失败的更新语句并进行回滚操作,将数据恢复到变更前的状态。
功能介绍
DBSC 的数据追踪与回滚功能可以帮助用户追踪目标数据库中已经执行的变更语句,并根据变更类型和执行的时间范围进行定位和回滚。
-
支持的变更类型:
变更语句类型 变更语句 DML INSERT、UPDATE、DELETE DDL CREATE、ALTER、DROP、TRUNCATE - 支持的数据源:MySQL 5.6 及以上。
使用限制
- 数据追踪与回滚任务创建以后,追踪记录(Binlog 解析记录)会保留一个月,一个月后将会清除,请及时查看。
- 如果数据库 Binlog 保存了超过一个月的记录,则最大可追踪至当前时间点前一个月内的记录。
- 数据追踪与回滚任务的回滚 SQL 语句生成功能,目前仅支持 DML 语句,暂不支持 DDL 语句。
前提条件
- 实例已开启开启企业版。
-
数据源已开启 Binlog,并且 Binlog 相关参数设置如下:
binlog_format
=ROW
-
binlog_row_image
=FULL
说明
如果数据源为备库,为保证获取完整的 Binlog 日志,还需要开启
log_slave_updates
参数。
提交任务
前提条件
- 已有目标数据源的库表权限。如没有可以先申请。更多信息,请参见 权限申请与审批。
- 已有数据追踪的模块权限(默认情况下都具备),如果您看不到该入口,请联系您的系统管理员。
- 已有数据追踪与回滚权限。如何申请该权限,请参见 权限申请与审批。
操作步骤
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>数据追踪与回滚。
- 在数据追踪与回滚页面,单击页面右上角的创建数据追踪与回滚。
- 在创建数据追踪与回滚页面,按照下表进行配置。
参数 | 说明 |
---|---|
任务名称 | 输入任务名称。为了方便后续查找和管理,请尽量使用有意义的名称。最多支持 64 个字符。 |
数据源 | 选择数据源。 说明:如果您没有该数据源的权限,请先进行权限申请。更多信息,请参见 权限申请与审批。 |
库 | 选择库名。 说明:如果您没有该库的权限,请先进行权限申请。更多信息,请参见 权限申请与审批。 |
表 | 选择表名,支持多选。 |
过滤条件(可选) | 只追踪单表的情况下,可以设置过滤条件,只有符合该过滤条件的结果才会被追踪到。 |
变更类型 | 选择需要追踪的变更类型,可多选。单击全选可选择所有变更类型。 |
时区 | 选择您所在地域的时区,系统会根据您所选择时区的时间点执行任务,默认为北京时区。 |
追踪时间 | 选择需要追踪的变更所在的时间段,可选时间段为 48 小时。您可以追踪到当前时间的前一个月内的数据。 |
备注(可选) | 输入当前任务备注信息。 |
- 单击创建数据追踪与回滚,自动跳转至任务详情页面。
-
在预检查节点,等待任务状态更改为待审批,在预检查节点中,您还可以执行如下操作:
- 单击页面右上角的图标,刷新任务状态。
- 单击页面右上角的类似创建,复制出一个配置相同的新任务。
- 单击页面右上角的撤回,直接撤回任务或重新编辑任务并提交。
说明
- 预检查会自动对数据追踪与回滚任务进行检查,包括数据源类型、账号权限、Binlog 配置、指定时间段内的 Binlog 文件情况、Binlog 文件大小。如果过程中发现问题,会提示具体信息,方便您进行定位和修改。
- 如果该数据源未配置 审批流程,则任务自动跳过提交审批节点,来到解析 Binlog节点,系统将进行 Binlog 解析,解析过程中将在当前页面的追踪记录区域列出所有符合条件的变更。
-
在页面右上角单击提交审批,在弹出的窗口中选择流程审批人员,单击确定。
说明
- 根据审批流程配置的不同,此处需要选择的审批人员数量不同,请根据实际情况选择。
- 如果当前审批流程中开启了不指定审批人,则此处将显示提交后,所有审批人均可审批,请在审批进程查看结果,您无需手动指定审批人,所有具备审批当前工单的人员均会收到审批提醒并支持对该工单进行审批。
-
任务状态变更为审批中,在审批通过之前,您可以进行如下操作:
- 单击页面右上角的图标,刷新任务状态。
- 单击页面右上角的撤回,直接撤回任务或重新编辑任务并提交。
- 单击页面右上角的转交,更改该任务的审批人。
- 任务状态变更为审批通过,系统将进行 Binlog 解析,解析过程中将在当前页面的追踪记录区域列出所有符合条件的变更。
审批任务
前提条件
- 实例已开启开启企业版。
- 当前数据追踪与回滚任务的状态为审批中。
- 您是系统管理员或当前任务的审批人。
操作步骤
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>数据追踪与回滚。
- 在数据追踪与回滚页面,找到目标任务,单击任务 ID 或任务右侧操作列的详情。
-
在任务详情页面,审批工单内容,根据实际情况选择转交、审批通过或审批不通过。
操作 说明 转交 将工单转交给其他用户审批。 审批通过 批准申请,单击审批通过后,您可以按需输入通过原因,并单击确定。 审批不通过 驳回申请,单击审批不通过后,您还需要输入驳回原因,并单击确定。
终止任务
如果任务对数据库有影响,可以立即终止任务。
前提条件
- 实例已开启开启企业版。
- 当前数据追踪与回滚任务的状态为解析中。
- 您是系统管理员或当前任务的创建人、审批人。
操作步骤
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>数据追踪与回滚。
- 在数据追踪与回滚页面,找到目标任务,单击任务 ID 或任务右侧操作列的详情。
- 单击页面内右上角的终止,在确认窗口中单击确定。
查看追踪记录
前提条件
- 实例已开启开启企业版。
-
当前数据追踪与回滚任务的状态为已完成。
说明
追踪任务状态为解析中的情况下也可查看已解析的记录。
- 您是系统管理员或当前任务的创建人、审批人。
操作步骤
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>数据追踪与回滚。
- 在数据追踪与回滚页面,找到目标任务,单击任务 ID 或任务右侧操作列的详情。
-
在追踪记录区域,查看所有符合要求的变更,包含变更时间、变更类型、库、表名、主键。单击目标记录左侧的按钮,可以查看字段详情。
说明
如果记录数量太多,您可以通过变更时间、SQL 语句类型来筛选需要的记录,也可以直接通过搜索表名来定位目标记录。单击高级搜索,可以选择表名,然后过滤条件针对目标表中的列进行更细粒度的搜索。
- 单击页面中的生成回滚 SQL,可以将追踪记录的回滚 SQL 以 SQL 文件的形式下载到本地,方便进行批量数据回滚,支持生成当前页和全部生成两个选项。
- 单击目标记录右侧操作列的详情,可以查看当前记录对应的变更前和变更后的详细记录。选中只看变更列可以隐藏未被变更的列。如需恢复到变更前的状态,只需复制回滚 SQL 中的 SQL 语句到数据库中执行即可。
生成和下载回滚 SQL
在追踪记录太多的情况下,可能需要通过高级搜索过滤出需要的记录,然后再批量下载成 .sql 文件,方便进行回滚。该场景下,就可以使用生成回滚 SQL 功能。
前提条件
- 实例已开启开启企业版。
- 当前数据追踪与回滚任务的状态为已完成。
- 您是系统管理员或当前任务的创建人。
操作步骤
- 登录 DBSC 控制台。
- 在左侧导航栏,点击 数据开发—>数据追踪与回滚。
- 在数据追踪与回滚页面,找到目标任务,单击任务 ID 或任务右侧操作列的详情。
-
在追踪记录页签,根据需求筛选需要的追踪记录,然后单击生成回滚 SQL > 生成当前页。
说明
如果需要将所有追踪记录生成回滚 SQL,可以单击生成回滚 SQL > 全部生成。
- 单击下载列表页签(位于追踪记录页签右侧),然后单击目标记录右侧操作列的下载即可将回滚 SQL 文件下载到本地。