tencent cloud

文档反馈

创建数据一致性校验

最后更新时间:2024-11-04 10:44:58

    操作场景

    数据一致性校验,即 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一样的代表一致。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持