跳到主要内容

数据追踪

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

背景信息

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

功能介绍

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

  • 支持的变更类型

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

注意事项

在商业化版本下(),请确保您的包年包月订阅未过期,否则将无法正常使用数据库 DevOps 服务。您可以在 NineData 控制台页面右上方快速查看剩余配额以及到期时间。check_quota

使用限制

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

前提条件

数据源已开启 Binlog,并且 Binlog 相关参数设置如下:

  • binlog_format=ROW
  • binlog_row_image=FULL
提示

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

提交任务

前提条件

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

操作步骤

  1. 登录 NineData 控制台

  2. 在左侧导航栏单击 >

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

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

    参数
    说明
    输入数据追踪任务的名称。为了方便后续查找和管理,请尽量使用有意义的名称。最多支持 64 个字符。
    选择需要进行数据追踪的数据源。
    说明:如果您没有该数据源的权限,请先进行权限申请。更多信息,请参见权限申请与审批
    选择需要进行数据追踪的库名。
    说明:如果您没有该库的权限,请先进行权限申请。更多信息,请参见权限申请与审批
    选择需要进行数据追踪的表名,支持多选。
    (可选)只追踪单表的情况下,可以设置过滤条件,只有符合该过滤条件的结果才会被追踪到。
    选择需要追踪的变更类型,可多选。单击可选择所有变更类型。
    选择您所在地域的时区,系统会根据您所选择时区的时间点进行数据追踪,默认为北京时区。
    选择需要追踪的变更所在的时间段,可选时间段为 48 小时。您可以追踪到当前时间的前一个月内的数据。
    (可选)输入当前任务备注信息。
  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. 区域,查看所有符合要求的变更,包含。单击目标记录左侧的expand按钮,可以查看字段详情。

    提示

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

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

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