跳到主要内容

数据追踪与回滚

NineData 数据追踪与回滚功能用于解析数据库中对于数据或对象结构的变更或删除操作,并生成回滚语句,可用于数据的快速恢复。保证在误操作或数据错误之后,业务数据的完整性。

背景信息

随着企业的业务规模扩大,其数据库的结构和业务数据也逐渐增加且越来越复杂,数据的维护也愈发困难。例如,某个程序 BUG 导致业务库中的数据错误,或者在某一次数据变更操作后,业务库中的数值不符合预期,此时需要快速定位到导致失败的更新语句并进行回滚操作,将数据恢复到变更前的状态。

功能介绍

NineData 的数据追踪与回滚功能可以帮助用户追踪目标数据库中已经执行的变更语句,并根据变更类型和执行的时间范围进行定位和回滚。

  • 支持的变更类型

    变更语句类型变更语句
    DMLINSERT、UPDATE、DELETE
    DDLCREATE、ALTER、DROP、TRUNCATE
  • 支持的数据源:MySQL 5.6 及以上,支持自建和云数据库。

使用限制

  • 数据追踪与回滚任务创建以后,追踪记录(Binlog 解析记录)会保留一个月,一个月后将会清除,请及时查看。
  • 如果数据库 Binlog 保存了超过一个月的记录,则最大可追踪至当前时间点前一个月内的记录。
  • 数据追踪与回滚任务的回滚 SQL 语句生成功能,目前仅支持 DML 语句,暂不支持 DDL 语句。

前提条件

  • 已创建或加入组织,并且该组织已开通,同时请确保您的包年包月订阅未过期。
  • 当前账号已切换到目标组织。更多信息,请参见切换到组织
  • 数据源已开启 Binlog,并且 Binlog 相关参数设置如下:

    • binlog_format=ROW

    • binlog_row_image=FULL

    提示

    如果数据源为备库,为保证获取完整的 Binlog 日志,还需要开启 log_slave_updates 参数。

提交任务

前提条件

  • 已有目标数据源的库表权限。如没有可以先申请。更多信息,请参见权限申请与审批
  • 已有的模块权限(默认情况下都具备),如果您看不到该入口,请联系您的系统管理员。
  • 已有权限。如何申请该权限,请参见权限申请与审批

操作步骤

  1. 登录 NineData 控制台

  2. 在左侧导航栏单击 >

  3. 页面,单击页面右上角的

  4. 页面,按照下表进行配置。

    参数
    说明
    输入任务名称。为了方便后续查找和管理,请尽量使用有意义的名称。最多支持 64 个字符。
    选择数据源。
    说明:如果您没有该数据源的权限,请先进行权限申请。更多信息,请参见权限申请与审批
    选择库名。
    说明:如果您没有该库的权限,请先进行权限申请。更多信息,请参见权限申请与审批
    选择表名,支持多选。
    (可选)只追踪单表的情况下,可以设置过滤条件,只有符合该过滤条件的结果才会被追踪到。
    选择需要追踪的变更类型,可多选。单击可选择所有变更类型。
    选择您所在地域的时区,系统会根据您所选择时区的时间点执行任务,默认为北京时区。
    选择需要追踪的变更所在的时间段,可选时间段为 72 小时。您可以追踪到当前时间的前一个月内的数据。
    (可选)输入当前任务备注信息。
  5. 单击,自动跳转至页面。

  6. 节点,等待任务状态更改为,在节点中,您还可以执行如下操作:

    • 单击页面右上角的refresh图标,刷新任务状态。
    • 单击页面右上角的,复制出一个配置相同的新任务。
    • 单击页面右上角的,直接撤回任务或重新编辑任务并提交。
    提示
    • 会自动对数据追踪与回滚任务进行检查,包括数据源类型、账号权限、Binlog 配置、指定时间段内的 Binlog 文件情况、Binlog 文件大小。如果过程中发现问题,会提示具体信息,方便您进行定位和修改。
    • 如果该数据源未配置审批流程,则任务自动跳过节点,来到节点,系统将进行 Binlog 解析,解析过程中将在当前页面的区域列出所有符合条件的变更。
  7. 在页面右上角单击,在弹出的窗口中选择流程审批人员,单击

    提示
    • 根据审批流程配置的不同,此处需要选择的审批人员数量不同,请根据实际情况选择。
    • 如果当前审批流程中开启了,则此处将显示,您无需手动指定审批人,所有具备审批当前工单的人员均会收到审批提醒并支持对该工单进行审批。

  8. 任务状态变更为,在审批通过之前,您可以进行如下操作:

    • 单击页面右上角的refresh图标,刷新任务状态。
    • 单击页面右上角的,直接撤回任务或重新编辑任务并提交。
    • 单击页面右上角的,更改该任务的审批人。
  9. 任务状态变更为,系统将进行 Binlog 解析,解析过程中将在当前页面的区域列出所有符合条件的变更。

审批任务

前提条件

  • 已创建或加入组织。更多信息,请参见管理组织
  • NineData 控制台处于组织模式。如何从个人模式切换组织模式,请参见切换到组织
  • 当前数据追踪与回滚任务的状态为
  • 您是或当前任务的

操作步骤

  1. 登录 NineData 控制台

  2. 在左侧导航栏单击 >

  3. 页面,找到目标任务,单击任务 ID 或任务右侧列的

    提示

    您也可以将鼠标放置在页面上方的notification图标上,在页签中单击目标任务。

  4. 页面,审批工单内容,根据实际情况选择

    操作
    说明
    将工单转交给其他用户审批。
    批准申请,单击后,您可以按需输入,并单击
    驳回申请,单击后,您还需要输入,并单击

终止任务

如果任务对数据库有影响,可以立即终止任务。

前提条件

  • 已创建或加入组织。更多信息,请参见管理组织

  • NineData 控制台处于组织模式。如何从个人模式切换组织模式,请参见切换到组织

  • 当前数据追踪与回滚任务的状态为

  • 您是或当前任务的

操作步骤

  1. 登录 NineData 控制台

  2. 在左侧导航栏单击 >

  3. 页面,找到目标任务,单击任务 ID 或任务右侧列的

  4. 单击页面内右上角的,在确认窗口中单击

查看追踪记录

前提条件

  • 已创建或加入组织。更多信息,请参见管理组织

  • NineData 控制台处于组织模式。如何从个人模式切换组织模式,请参见切换到组织

  • 当前数据追踪与回滚任务的状态为

    提示

    追踪任务状态为的情况下也可查看已解析的记录。

  • 您是或当前任务的

操作步骤

  1. 登录 NineData 控制台

  2. 在左侧导航栏单击 >

  3. 页面,找到目标任务,单击任务 ID 或任务右侧列的

  4. 区域,查看所有符合要求的变更,包含。单击目标记录左侧的expand按钮,可以查看字段详情。

    提示

    如果记录数量太多,您可以通过变更时间、SQL 语句类型来筛选需要的记录,也可以直接通过搜索表名来定位目标记录。单击,可以选择表名,然后针对目标表中的列进行更细粒度的搜索。

  5. 单击页面中的,可以将追踪记录的回滚 SQL 以 SQL 文件的形式下载到本地,方便进行批量数据回滚,支持两个选项。

  6. 单击目标记录右侧列的,可以查看当前记录对应的变更前和变更后的详细记录。选中可以隐藏未被变更的列。如需恢复到变更前的状态,只需复制 中的 SQL 语句到数据库中执行即可。

生成和下载回滚 SQL

在追踪记录太多的情况下,可能需要通过高级搜索过滤出需要的记录,然后再批量下载成 .sql 文件,方便进行回滚。该场景下,就可以使用 功能。

前提条件

  • 已创建或加入组织。更多信息,请参见管理组织

  • NineData 控制台处于组织模式。如何从个人模式切换组织模式,请参见切换到组织

  • 当前数据追踪与回滚任务的状态为

  • 您是或当前任务的

操作步骤

  1. 登录 NineData 控制台

  2. 在左侧导航栏单击 >

  3. 页面,找到目标任务,单击任务 ID 或任务右侧列的

  4. 页签,根据需求筛选需要的追踪记录,然后单击 >

    提示

    如果需要将所有追踪记录生成回滚 SQL,可以单击 >

  5. 单击页签(位于页签右侧),然后单击目标记录右侧列的即可将回滚 SQL 文件下载到本地。