You need to enable JavaScript to run this app.
导航
配置数据校验
最近更新时间:2024.11.20 17:00:36首次发布时间:2023.11.02 14:15:44

本文介绍如何在数据库传输服务控制台配置数据校验任务,帮助您在不停服的情况下对源端和目标端的差异数据进行校验和检查,可以及时发现数据或结构不一致等问题。

背景信息

数据校验任务支持通过全量内容校验、全量行数校验和结构校验三种校验方式检验源端和目标端的差异数据,该三种校验方式的具体区别如下表所示:

校验方式

全量校验

结构校验

增量校验

内容校验行数校验主键校验

描述

该校验方式可以对比较两个数据库或数据实体之间的全部数据内容。全量内容校验过程可以确保所有的数据值都一致,并且数据的精度和完整性得到保障。

该校验方式仅能简单地对比源数据库和目标数据库中的总行数是否一样。该校验方式快速且有效,能快速发现数据的丢失或重复添加等问题。

该校验方式可以校验源端和目标端的主键是否一致。

该校验方式可以检查数据结构的一致性,如表的列、数据类型、主键和索引等是否相同。该校验方式可以确保源数据库和目标数据库的结构一致性。

该校验方式可以校验增量任务开启后源端和目标端的全部增量数据是否一致。

限制

  • 如果待校验的表没有主键且没有唯一索引时,DTS 将不会进行数据校验。

  • 单表最多仅支持校验出 100 行不同数据,超过 100 行 DTS 将不会进行数据校验。

  • 如果数据同步任务中配置了 ETL 规则,那么不支持进行数据校验。

  • 如果待校验的表没有主键且没有唯一索引时,DTS 将不会进行数据校验。

  • 如果数据同步任务中配置了 ETL 规则,那么不支持进行数据校验。

单表最多仅支持校验出 100 行不同数据,超过 100 行 DTS 将不会进行数据校验。

如果数据同步任务中配置了 ETL 规则,那么不支持进行数据校验。

  • 最多支持校验出 1 万条不同的数据。

  • 如果数据同步任务中配置了 ETL 规则,那么不支持进行数据校验。

  • 源端和目标端的数据库实例都已开启 GTID。

  • 不支持校验无主键的表。

支持的数据库类型

  • MySQL

  • veDB MySQL

  • PostgreSQL

  • MongoDB

  • MySQL

  • veDB MySQL

  • MongoDB

  • MongoDB
  • MySQL

  • veDB MySQL

  • MySQL

  • veDB MySQL

  • MongoDB

前提条件

  • 已创建全量迁移任务,且任务状态为执行中。详细操作,请参见迁移方案概览

  • 已创建全量同步任务,且任务状态为执行中。详细操作,请参见同步方案概览

注意事项

  • 当任务完成全量迁移或全量初始化时校验任务才开始校验数据。

  • DTS 不会校验既没有主键约束也没有唯一约束的数据。

  • 在执行校验任务前需评估源端和目标端的数据库性能,建议您在业务低峰期执行数据校验(例如源库和目标库的 CPU 负载在 30% 以下)。因为 DTS 在进行数据校验时将占用源库和目标库一定的读资源,可能会导致数据库负载上升。在数据库性能较差、规格较低或业务量较大的情况下,可能会加重数据库的压力,甚至导致数据库服务不可用。

操作步骤

  1. 登录 DTS 控制台

  2. 在顶部菜单栏的左上角,选择项目和地域。

  3. 在左侧导航栏,单击数据迁移数据同步

  4. 迁移任务列表数据同步列表页面,根据以下方式选择配置数据校验的路径:

    • 路径一:在任务列表页面配置数据校验任务

      1. 在目标迁移或同步任务右上角,选择 ... > 创建数据校验任务

      2. 创建校验任务对话框,配置相关参数信息。

    • 路径二:在目标任务的数据校验页签配置数据校验任务

      1. 单击目标任务名称。

      2. 在目标任务页面,单击数据校验

      3. 数据校验页签,单击创建数据校验

      4. 创建校验任务对话框,配置相关参数信息。

    参数说明

    任务名称

    自定义任务名称。任务名称的命名规则如下:

    • 以字母开头且长度需在 1~64 个字符内。

    • 只能包含数字、字母、下划线(_)和中划线(-)。

    校验类型按需选择校验方式,当前支持全量校验结构校验增量校验。关于校验方式的更多信息,请参见背景信息
    校验方式校验类型选择全量校验时,支持设置校验方式,当前支持选择内容校验行数校验主键校验

    校验对象

    选择需要校验的对象,您可以在已选择对象区域中实现以下操作:

    • 重命名库:单击目标库后的笔状图标,重命名库。如果在校验对象区域勾选了整库,则在已选择对象区域仅支持修改库名且不支持展开该数据库。

    • 筛选删除不需要的目标:在已选择对象区域的搜索框内支持模糊搜索,批量删除不需要的数据库、表。

  5. 单击下一步

  6. 在创建校验任务页面,根据检查结果执行以下操作:

    • 单击预检查结果操作列的详情,查看详细的告警和失败信息,并根据告警或失败信息修改库表后,单击重试

    • 单击操作列的忽略,忽略本次告警继续启动校验任务。同时,也可以单击忽略全部,一键忽略全部告警信息。

    说明

    • 选择忽略告警并启动校验任务,可能会导致校验失败。

    • 关于预检查的更多信息,请参见预检查(数据校验)

  7. 单击启动任务

后续操作

配置数据校验任务

成功创建数据校验任务后,您可以配置数据校验任务。

说明

以下状态的数据校验任务支持配置。

  • 增量校验任务:校验任务的执行状态为待启动执行中

  • 其他校验任务类型:校验任务的执行状态为待启动

  1. 登录 DTS 控制台

  2. 在顶部菜单栏的左上角,选择项目和地域。

  3. 在左侧导航栏,单击数据校验

  4. 数据校验列表页面,单击目标数据校验任务操作列的配置

  5. 修改校验任务页面,配置任务名称校验对象

    参数说明

    任务名称

    自定义任务名称。任务名称的命名规则如下:

    • 以字母开头且长度需在 1~64 个字符内。

    • 只能包含数字、字母、下划线(_)和中划线(-)。

    校验对象

    选择需要校验的对象,您可以在已选择对象区域中实现以下操作:

    • 重命名库:单击目标库后的笔状图标,重命名库。如果在校验对象区域勾选了整库,则在已选择对象区域仅支持修改库名且不支持展开该数据库。

    • 筛选删除不需要的目标:在已选择对象区域的搜索框内支持模糊搜索,批量删除不需要的数据库、表。

  6. 单击下一步

  7. (可选)当创建的任务已有预检查时,您可以根据以下提示确认是否重新发起预检查,当需要重新发起预检查时,请在是否重新发起预检查对话框,单击确定

    • 若源端和目标端的数据库实例未做修改,则无需再次发起预检查。

    • 如果修改了源端、目标端的数据库实例信息或校验任务的参数配置,那么建议您重新发起预检查,否则可能会导致任务启动失败或者任务中断。

  8. 在创建校验任务页面,根据检查结果执行以下操作:

    • 单击预检查结果操作列的详情,查看详细的告警和失败信息,并根据告警或失败信息修改库表后,单击重试

    • 单击操作列的忽略,忽略本次告警继续启动校验任务。同时,也可以单击忽略全部,一键忽略全部告警信息。

    说明

    • 选择忽略告警并启动校验任务,可能会导致校验失败。

    • 关于预检查的更多信息,请参见预检查(数据校验)

  9. 单击启动任务