You need to enable JavaScript to run this app.
文档中心
数据库传输服务

数据库传输服务

复制全文
下载 pdf
数据校验
配置数据校验
复制全文
下载 pdf
配置数据校验
本文介绍如何在数据库传输服务控制台配置数据校验任务,帮助您在不停服的情况下对源端和目标端的差异数据进行校验和检查,可以及时发现数据或结构不一致等问题。
背景信息
数据校验任务支持通过全量内容校验、全量行数校验和结构校验三种校验方式检验源端和目标端的差异数据,该三种校验方式的具体区别如下表所示:
校验方式
全量校验
结构校验
增量校验
内容校验
行数校验
主键校验
描述
该校验方式可以对比较两个数据库或数据实体之间的全部或部分数据内容。全量内容校验过程可以确保数据的一致性,并且数据的精度和完整性得到保障。
该校验方式仅能简单地对比源数据库和目标数据库中的总行数是否一样。该校验方式快速且有效,能快速发现数据的丢失或重复添加等问题。
该校验方式可以校验源端和目标端的主键是否一致。
该校验方式可以检查数据结构的一致性,如表的列、数据类型、主键和索引等是否相同。该校验方式可以确保源数据库和目标数据库的结构一致性。
该校验方式可以校验增量任务开启后源端和目标端的全部增量数据是否一致。
限制
  • 如果待校验的表没有主键且没有唯一索引时,DTS 将不会进行数据校验。
  • MySQL 到 MySQL 的单表最多支持校验出 10 万行不同数据,超过 10 万行 DTS 将不会进行数据校验。
  • 其他类型数据库的单表最多仅支持校验出 100 行不同数据,超过 100 行 DTS 将不会进行数据校验。
  • 如果数据同步任务中配置了 ETL 规则,那么不支持进行数据校验。
  • 请勿在校验过程中对源端进行 DDL 操作,否则会导致校验任务结果不一致。
  • 如果待校验的表没有主键且没有唯一索引时,DTS 将不会进行数据校验。
  • 如果数据同步任务中配置了 ETL 规则,那么不支持进行数据校验。
  • 请勿在校验过程中对源端进行 DDL 操作,否则会导致校验任务结果不一致。
  • 单表最多仅支持校验出 100 行不同数据,超过 100 行 DTS 将不会进行数据校验。
  • 请勿在校验过程中对源端进行 DDL 操作,否则会导致校验任务结果不一致。
  • 如果数据同步任务中配置了 ETL 规则,那么不支持进行数据校验。
  • 请勿在校验过程中对源端进行 DDL 操作,否则会导致校验任务结果不一致。
  • 最多支持校验出 1 万条不同的数据。
  • 如果数据同步任务中配置了 ETL 规则,那么不支持进行数据校验。
  • 源端和目标端的数据库实例都已开启 GTID。
  • 不支持校验无主键的表。
支持的数据库类型
  • MySQL
  • veDB MySQL
  • PostgreSQL
  • MongoDB
  • SQL Server
  • Redis
  • MySQL
  • veDB MySQL
  • MongoDB
  • SQL Server
  • MongoDB
  • MySQL
  • veDB MySQL
  • MySQL
  • veDB MySQL
  • MongoDB
前提条件
  • 已创建全量迁移任务,且任务状态为执行中。详细操作,请参见迁移方案概览
  • 已创建全量同步任务,且任务状态为执行中。详细操作,请参见同步方案概览
注意事项
  • 数据校验对象只能在迁移/同步对象中选择,即只有 DTS 迁移/同步对象才支持数据校验。
  • 如果删除了同步对象,数据校验默认不会自动删除,此时如果修改校验对象时,则不再支持该对象的校验。
  • 修改迁移或同步任务的目标实例后,已有数据校验任务可能无法继续复用,若数据校验任务报错,请重新创建数据校验任务。
  • 当任务完成全量迁移或全量初始化时校验任务才开始校验数据。
  • 在全量内容校验过程中如果数据变更有频繁的变动,那么可能会导致数据校验任务结果不一致。可发起二次数据校验任务。
  • 在执行校验任务前需评估源端和目标端的数据库性能,建议您在业务低峰期执行数据校验(例如源库和目标库的 CPU 负载在 30% 以下)。因为 DTS 在进行数据校验时将占用源库和目标库一定的读资源,可能会导致数据库负载上升。在数据库性能较差、规格较低或业务量较大的情况下,可能会加重数据库的压力,甚至导致数据库服务不可用。
  • MySQL 到 MySQL 的单表最多支持校验出 10 万行不同数据,超过 10 万行 DTS 将不会进行数据校验。控制台页面不展示 Diff 数据,如需查看可将数据下载至本地。详细操作,请参见下载数据校验结果。该功能为加白功能,如需使用请提交工单
  • MySQL 到 MySQL 的单表数据校验功能,默认最多展示前 2000 行差异数据;单表校验总量上限为 10 万行,超过该阈值将自动跳过校验(不生成 Diff 结果)。控制台页面仅显示部分差异数据,如需查看完整校验结果,请下载本地文件。详细操作,请参见下载数据校验结果。该功能为加白功能,如需使用请提交工单
  • 在 MongoDB 的数据校验中,数据校验以源库为基准,仅验证源库中选中的同步或迁移数据在目标库中是否存在且一致,无法检测目标库中多出的额外数据。
操作步骤
  1. 登录 DTS 控制台
  1. 在顶部菜单栏,选择项目和地域。
  1. 在左侧导航栏,单击数据迁移数据同步
  1. 迁移任务列表数据同步列表页面,根据以下方式选择配置数据校验的路径:
  • 路径一:在任务列表页面配置数据校验任务
    路径二:在目标任务的数据校验页签配置数据校验任务
    1. 在目标迁移或同步任务右上角,选择更多操作 > 创建数据校验任务
    1. 创建校验任务对话框,配置相关参数信息。
  • 参数
    说明
    任务名称
    自定义任务名称。长度需在 256 个字符内。
    说明
    若未进行设置,系统将按照命名规则,默认生成一个以 dts- 开头命名的任务。
    校验类型
    按需选择校验方式,当前支持全量校验结构校验增量校验。关于校验方式的更多信息,请参见背景信息
    校验方式
    校验类型选择全量校验时,支持设置校验方式,当前支持选择抽样内容校验行数校验主键校验
    抽样百分比
    按需设置需要抽取校验的数据百分比,默认值为 100,取值范围为 [1,100 ]。有助于在校验大量数据时提高效率、节省资源、快速发现问题并改善使用体验。
    说明
    • 只有校验类型选择全量校验,且校验方式选择抽样内容校验时,支持配置该参数。
    • 该功能仅适用 MySQL 类型的数据传输任务。
    校验模式
    按需从下拉框中选择校验模式,当前支持对比 key 和 value只对比 key只对比 value 的长度
    说明
    只有 Redis 类型的数据传输任务支持配置此参数。
    校验对象
    选择需要校验的对象,您可以在已选择对象区域中实现以下操作:
    • 重命名库:单击目标库后的笔状图标,重命名库。如果在校验对象区域勾选了整库,则在已选择对象区域仅支持修改库名且不支持展开该数据库。
    • 筛选删除不需要的目标:在已选择对象区域的搜索框内支持模糊搜索,批量删除不需要的数据库、表。
    说明
    • 数据校验对象只能在迁移/同步对象中选择,即只有 DTS 迁移/同步对象才支持数据校验。
    • 如果新增了同步对象,数据校验默认不会自动增加对新增对象的校验,如有需要可以手动增加校验对象;如果删除了同步对象,数据校验默认不会自动删除。
    Batch Count
    按需设置每批次处理 key 的数量,取值范围 1~10000,默认值 300。
    说明
    只有 Redis 类型的数据传输任务支持配置此参数。
    计费类型
    目前仅支持按量计费,且不可修改。
    错误重试时间
    在数据校验任务中,当源库和目标库断连后导致数据校验任务失败时,会立即在指定时间内多次重试连接源库和目标库。取值范围:600~86400,单位:秒(s)。默认值为 600 秒。
    全量读取速率
    当读取速率过高时,可能会影响源端数据库的性能,您可以根据源端数据库和目标端数据库的读写压力适当调整迁移速率。
    • 每秒读取的行数:按需开启并设置每秒读取的行数,防止在读取速率过高时,影响源库的性能,您可以根据源库和目标库的读写压力情况适当调整每秒读取的行数。默认值 100000,取值范围 1~1000000。
    • 校验任务并发数:按需设置数据校验任务的并发数,该并发数可以提升数据校验任务的性能和效率,进而确保数据校验任务可以快速稳定地完成。默认值 8,取值范围 1~64。
    说明
    • 只有实例类型为 MySQL、MongoDB 和 PostgreSQL 的任务支持设置全量读取速率。
    • 仅当数据校验进度进入全量校验阶段时,才支持调整全量读取速率。
  1. 单击预检查
  1. 在创建校验任务页面,根据预检查结果执行以下操作:
  • 单击预检查结果操作列的详情,查看详细的告警和失败信息,并根据告警或失败信息修改库表后,单击重试
  • 单击操作列的忽略,忽略本次告警继续启动校验任务。同时,也可以单击忽略全部,一键忽略全部告警信息。
说明
  • 选择忽略告警并启动校验任务,可能会导致校验失败。
  1. 单击确认订单
后续操作
修改数据校验任务
成功创建数据校验任务后,您可以配置数据校验任务。
说明
以下状态的数据校验任务支持配置。
  • 增量校验任务:校验任务的执行状态为待启动执行中
  • 其他校验任务类型:校验任务的执行状态为待启动
  1. 登录 DTS 控制台
  1. 在顶部菜单栏,选择项目和地域。
  1. 在左侧导航栏,单击数据校验
  1. 数据校验列表页面,单击目标数据校验任务操作列的配置
  1. 修改校验任务页面,配置任务名称校验对象
  • 参数
    说明
    任务名称
    自定义任务名称。长度需在 256 个字符内。
    说明
    若未进行设置,系统将按照命名规则,默认生成一个以 dts- 开头命名的任务。
    抽样百分比
    按需设置需要抽取校验的数据百分比,默认值为 100,取值范围为 [1,100 ]。有助于在校验大量数据时提高效率、节省资源、快速发现问题并改善使用体验。
    说明
    • 只有校验类型选择全量校验,且校验方式选择抽样内容校验时,支持配置该参数。
    • 该功能仅适用 MySQL 和 Redis 类型的数据传输任务。
    校验模式
    按需从下拉框中选择校验模式,当前支持对比 key 和 value只对比 key只对比 value 的长度
    校验对象
    选择需要校验的对象,您可以在已选择对象区域中实现以下操作:
    • 重命名库:单击目标库后的笔状图标,重命名库。如果在校验对象区域勾选了整库,则在已选择对象区域仅支持修改库名且不支持展开该数据库。
    • 筛选删除不需要的目标:在已选择对象区域的搜索框内支持模糊搜索,批量删除不需要的数据库、表。
    说明
    • 数据校验对象只能在迁移/同步对象中选择,即只有 DTS 迁移/同步对象才支持数据校验。
    • 如果新增了同步对象,数据校验默认不会自动增加对新增对象的校验,如有需要可以手动增加校验对象;如果删除了同步对象,数据校验默认不会自动删除,此时修改校验对象时,则不再支持该对象的校验。
    Batch Count
    按需设置每批次处理 key 的数量,取值范围 1~10000,默认值 300。
    说明
    只有 Redis 类型的数据传输任务支持配置此参数。
    全量读取速率
    当读取速率过高时,可能会影响源端数据库的性能,您可以根据源端数据库和目标端数据库的读写压力适当调整迁移速率。
    • 每秒读取的行数:按需开启并设置每秒读取的行数,防止在读取速率过高时,影响源库的性能,您可以根据源库和目标库的读写压力情况适当调整每秒读取的行数。默认值 100000,取值范围 1~1000000。
    • 校验任务并发数:按需设置数据校验任务的并发数,该并发数可以提升数据校验任务的性能和效率,进而确保数据校验任务可以快速稳定地完成。默认值 8,取值范围 1~64。
    说明
    • 只有实例类型为 MySQL、MongoDB 和 PostgreSQL 的任务支持设置全量读取速率。
    • 仅当数据校验进度进入全量校验阶段时,才支持调整全量读取速率。
  1. 单击预检查
  1. (可选)当创建的任务已有预检查时,您可以根据以下提示确认是否重新发起预检查,当需要重新发起预检查时,请在是否重新发起预检查对话框,单击确定
  • 若源端和目标端的数据库实例未做修改,则无需再次发起预检查。
  • 如果修改了源端、目标端的数据库实例信息或校验任务的参数配置,那么建议您重新发起预检查,否则可能会导致任务启动失败或者任务中断。
  1. 在创建校验任务页面,根据检查结果执行以下操作:
  • 单击预检查结果操作列的详情,查看详细的告警和失败信息,并根据告警或失败信息修改库表后,单击重试
  • 单击操作列的忽略,忽略本次告警继续启动校验任务。同时,也可以单击忽略全部,一键忽略全部告警信息。
说明
  • 选择忽略告警并启动校验任务,可能会导致校验失败。
  1. 单击确认订单
最近更新时间:2026.09.02 11:04:15
这个页面对您有帮助吗?
有用
有用
无用
无用