tencent cloud

云数据库 PostgreSQL

动态与公告
产品动态
产品简介
产品概述
产品特性
产品优势
应用场景
信息安全说明
地域和可用区
产品功能列表
大版本生命周期说明
MSSQL 兼容版
产品计费
计费概述
实例类型与规格
购买方式
退费说明
欠费说明
备份空间收费说明
快速入门
创建 PostgreSQL 实例
连接 PostgreSQL 实例
管理 PostgreSQL 实例
数据导入
通过 DTS 迁移数据
内核能力介绍
内核版本概述
内核版本更新动态
查看内核版本
自研内核功能介绍
数据库审计
审计服务说明
开通审计服务
查看审计日志
修改审计服务
审计性能说明
用户指南
实例管理
升级实例
CPU 弹性扩容
只读实例
账号管理
数据库管理
参数管理
日志管理及分析
备份与恢复
数据迁移
插件管理
网络管理
访问管理
数据安全
租户及资源隔离
安全组
监控与告警
标签
AI 实践
使用 tencentdb_ai 插件调用大模型
使用 tencentdb_ai 插件构建 AI 应用
结合 Supabase 快速构建基于云数据库 PostgreSQL 的后端服务
实践教程
跨库访问
如何在 PostgreSQL 中自动创建分区
基于 pg_roaringbitmap 实现超大规模标签查找
一条 SQL 实现查询附近的人
如何配置云数据库 PostgreSQL 作为 GitLab 外部数据源
通过 cos_fdw 插件支持分级存储能力
通过 pgpool 实现读写分离
通过 auto_explain 插件实现慢 SQL 分析
使用 pglogical 进行逻辑复制
使用 Debezium 采集 PostgreSQL 数据
在 CVM 本地搭建 PostgreSQL 异地灾备环境
只读实例与只读组实践教程
如何使用云函数定时操作数据库
表膨胀处理
性能白皮书
测试方法
测试结果
API 文档
History
Introduction
API Category
Making API Requests
Instance APIs
Read-Only Instance APIs
Backup and Recovery APIs
Parameter Management APIs
Security Group APIs
Performance Optimization APIs
Account APIs
Specification APIs
Network APIs
Data Types
Error Codes
常见问题
相关协议
Service Level Agreement
Terms of Service
词汇表
联系我们

创建数据一致性校验

PDF
聚焦模式
字号
最后更新时间: 2025-04-07 16:47:48

操作场景

数据一致性校验,即 DTS 对数据迁移的源库和目标库的表数据进行对比,并给出对比结果和不一致详情,辅助用户在割切前快速验证同步结果。数据一致性校验任务是独立进行的,不会影响源数据库的正常业务,也不会影响 DTS 的任务。
说明:
一致性校验仅作为辅助的数据验证手段。在正式割接前,请用户自行进行演练操作以确保结果满足割接要求。
当前支持数据一致性校验的链路如下:
PostgreSQL > PostgreSQL

注意事项及约束

1. 数据一致性校验任务可能会增加源数据库实例的负载,因此请在业务低峰期进行操作。
2. 当前只有迁移类型为全量迁移 + 增量迁移时支持数据一致性校验。
3. 抽样对比需要校验的表必须具有主键或唯一键,否则将跳过不进行校验,行数校验不要求有主键或者唯一键, 如果表格没有主键或唯一键且数据超过1万条则不能进行完整对比。
4. 如果在数据一致性校验任务还未结束时,用户选择完成或者终止 DTS 任务,则数据一致性校验任务会失败。

创建数据一致性校验任务

说明:
单独创建数据校验任务只支持独立校验,不支持内置校验。
独立校验独立于 DTS 任务外,选择源端和目标端相同的数据块进行对比。DTS 任务停止运行后,不支持发起校验。
只有在任务运行中,且为增量同步阶段才能发起独立校验任务。任务已完成无法发起校验任务。您可以基于交割的不同阶段,分批次和不同的校验方法多次发起校验任务。
1. 登录 DTS 控制台,在左侧导航选择数据迁移页,在任务列表的操作列单击查看,或者直接点击任务 ID 进行任务详情。
2. 点击数据一致性校验,进入数据一致性校验的任务列表,单击创建数据一致性校验,新建数据校验任务。


配置校验任务详情,具体如下:
参数
说明
任务类型
独立校验:校验服务独立于 DTS 任务外,可对比迁移对象外的其他数据。
结构校验
校验源端和目标端的数据对象结构,如您已经确认结构一致,则关闭结构校验更节省时间。
校验对象
全部迁移对象:校验范围为迁移任务勾选的全部对象。
自定义选择:在勾选的迁移对象中,选择进行校验的对象。
校验对比类型
完整对比:对所选检验对象的完整数据进行校验。
抽样对比:对所选检验对象抽选一定的比例进行校验,抽样比例支持10%,20%,30%……90%。
行数对比:对所选校验对象,仅对比数据行数。选择行数对比时,不要求表对象有主键,无主键表也可以进行校验。
线程数选择
设置范围为1~8,请根据实际情况选择,提高线程数可加快一致性校验速度,但也会增加源和目标库的负载。每提升一个线程数,约增加消耗一个 CPU 的占用。
3. 配置完毕后点击创建并启动一致性校验,则发起校验任务。

查看数据一致性校验结果

说明:
当校验任务中首次校验出不一致的表时,系统会将任务对比结论标记为不一致,并将任务状态标记为失败。
1. 在迁移任务首页,最后一次校验结果列,可查看校验结果,一致或者不一致,单击查看 > 数据一致性校验进入校验详情页。


2. 单击查看,即可查看校验结果。


数据校验结果汇总

数据校验结果的汇总信息如下表所示:
项目
详情
概要
对比类型:当前全部为独立校验。
对比方式:可选方式为完整对比、抽样对比和行数校验。
结构校验:可选方式为已开启或者未开启。
状态:当前校验任务的状态,为创建完成、等待运行、运行中或者已完成。
对比结论:当前校验任务的运行结果,为不一致或者一致。
线程数:当前任务配置的线程数。
预估表总数目
系统预计的需要校验的所有的表的总数。
已检测表数量
任务当前已经完成检测的表的数量。
不一致表数量
已经完成检测的表中,源和目标端不一致的表的数量。具体的不一致表,可以到不一致详情查看。
不一致分块数
已经完成检测的表中,源和目标端不一致的表的分块的数量。系统校验时在源端和目标端采用分块的方式进行校验,10000行数据为一个块。

数据校验结果详情

PostgreSQL 的数据校验任务在校验任务中会展示如下几种不一致,下面为您一一介绍:
不一致详情
此部分会详细的展示在当前已经完成校验的表中,不一致的分块详情。您可以通过点击详情列表的操作列的查看,来定位具体的数据。具体如下图所示:


表结构不一致详情
只有开启了结构校验的任务,才会展示结构不一致详情。在进行结构校验时,系统会列出已经校验过的所有不一致的表结构的详情,具体如下图所示:

您可以通过点击列表中结构字段的详情,来查看结构不一致的详细 SQL,具体如下图所示:

OWNER 不一致详情
数据校验任务会列出已经校验的所有表格中,OWNER 不一致的表详情,具体如下图所示:

未检查表详情
数据校验任务会列出未校验的所有的表格详情。

实现原理

行数对比:校验源表和目标表行数量是否一致
抽样对比:
无主键或者唯一索引的表无法进行抽样对比,系统直接跳过。
其他表格会先比较源和目标的行数是否一致,不一致则判定为不一致,系统跳过这些表格进行其他表格校验。
在表格的行数一致时,系统会根据抽样比例,将一个表格分为多个块,每个块内随机选择一些行数据,分别计算源和目标的 MD5值进行比较,MD5一样的代表一致。
完整对比:
对于无主键或者唯一索引的表:
如果表格超过1万行,则系统不进行数据一致性校验。
如果没有超过1万行,则系统会对所有列排序后获取表格所有数据,分别计算源和目标的 MD5,MD5一样的代表一致。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈