更新时间:2026-10-30 GMT+08:00
分享

校验任务配置

对比使用场景

对比实时校验项可以清晰反馈出源数据库和目标数据库的数据是否存在差异。为了尽可能减少业务的影响和业务中断时间,校验场景提供了以下几种对比方式:

  • 对象级对比:支持对数据库、表、索引等进行对比。
  • 数据级对比-行对比:对比选择的表的行数是否一致,只查询表的行数,对比速度较快,建议优先使用。
  • 数据级比对-内容比对-静态比对:比对选择的表的内容是否一致,对比速度取决于表的数据量。

内容对比和行数对比不能同时运行。

内容对比和对象级对比不能同时运行。

前提条件

  • 已启动校验任务。

对比链路说明

表1 数据校验各链路支持能力

同步方向

数据流向

对象级对比

行对比

用户对比

静态内容对比

入云

MySQL->MySQL

支持

支持

不支持

支持

入云

MySQL->PostgreSQL

支持

支持

不支持

不支持

入云

MySQL->GaussDB分布式版

支持

支持

不支持

支持

入云

MySQL->GaussDB集中式版

支持

支持

不支持

支持

入云

MySQL->TaurusDB

支持

支持

不支持

支持

入云

PostgreSQL->PostgreSQL

支持

支持

支持

支持

入云

PostgreSQL->GaussDB 集中式版

支持

支持

不支持

支持

入云

PostgreSQL->GaussDB分布式版

支持

支持

不支持

支持

入云

DDM->MySQL

支持

支持

不支持

不支持

入云

DDM->DDM

支持

支持

不支持

不支持

入云

Oracle->MySQL

支持

支持

不支持

支持

入云

Oracle->TaurusDB

支持

支持

不支持

支持

入云

Oracle->GaussDB集中式版

支持

支持

不支持

支持

入云

Oracle->GaussDB分布式版

支持

支持

不支持

支持

入云

Oracle->DDM

支持

支持

不支持

不支持

入云

Oracle->PostgreSQL

支持

支持

不支持

不支持

入云

DB2 for LUW->GaussDB集中式版

支持

支持

不支持

支持

入云

DB2 for LUW->GaussDB分布式版

支持

支持

不支持

支持

入云

TiDB->TaurusDB

支持

支持

不支持

不支持

入云

Microsoft SQL Server->GaussDB集中式版

支持

支持

不支持

支持

入云

Microsoft SQL Server->GaussDB分布式版

支持

支持

不支持

支持

入云

Microsoft SQL Server->Microsoft SQL Server

支持

支持

不支持

不支持

入云

MongoDB->DDS

支持

支持

不支持

支持

入云

MariaDB->MariaDB

支持

支持

不支持

支持

入云

MariaDB->MySQL

支持

支持

不支持

支持

入云

MariaDB->TaurusDB

支持

支持

不支持

支持

入云

TaurusDB->TaurusDB

支持

支持

不支持

支持

入云

DynamoDB->GeminiDB兼容DynamoDB接口

支持

不支持

不支持

不支持

出云

MySQL->MySQL

支持

支持

不支持

支持

出云

DDM->MySQL

支持

支持

不支持

不支持

出云

DDM->Oracle

支持

支持

不支持

不支持

出云

DDS->MongoDB

支持

支持

不支持

支持

出云

PostgreSQL->PostgreSQL

支持

支持

不支持

支持

出云

GaussDB集中式版->MySQL

支持

支持

不支持

不支持

出云

GaussDB集中式版->Oracle

支持

支持

不支持

支持

出云

GaussDB集中式版->GaussDB分布式版

支持

支持

不支持

支持

出云

GaussDB集中式版->GaussDB集中式版

支持

支持

不支持

支持

出云

GaussDB集中式版->PostgreSQL

支持

支持

不支持

支持

出云

GaussDB分布式版->MySQL

支持

支持

不支持

不支持

出云

GaussDB分布式版->Oracle

支持

支持

不支持

支持

出云

GaussDB分布式版->GaussDB分布式版

支持

支持

不支持

不支持

出云

GaussDB分布式版->GaussDB集中式版

支持

支持

不支持

不支持

出云

TaurusDB->MySQL

支持

支持

不支持

支持

出云

TaurusDB->Oracle

支持

支持

不支持

不支持

出云

MariaDB->MariaDB

支持

支持

不支持

支持

自建-自建

Oracle->GaussDB集中式版

支持

支持

不支持

支持

自建-自建

Oracle->GaussDB分布式版

支持

支持

不支持

支持

自建-自建

MySQL->GaussDB集中式版

支持

支持

不支持

不支持

自建-自建

GaussDB集中式版->Oracle

支持

支持

不支持

支持

自建-自建

GaussDB集中式版->GaussDB集中式版

支持

支持

不支持

不支持

自建-自建

GaussDB分布式版->Oracle

支持

支持

不支持

支持

自建-自建

GaussDB分布式版->GaussDB分布式版

支持

支持

不支持

不支持

自建-自建

DB2 for LUW->GaussDB集中式版

支持

支持

不支持

支持

自建-自建

DB2 for LUW->GaussDB分布式版

支持

支持

不支持

支持

DRS提供的数据比对功能可以清晰反馈出源数据库和目标数据库的数据是否存在差异,目前对于以下数据类型,DRS不支持内容对比,进行内容对比时会自动跳过。

表2 不支持内容对比的数据类型

源数据库类型

数据类型

MySQL

TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT

GaussDB

TEXT、CLOB、BLOB、BYTEA、INTERVAL DAY TO SECOND、INTERVAL

Oracle

BLOB、NCLOB、CLOB、LONG RAW、LONG、INTERVAL DAY TO SECOND、INTERVAL YEAR TO MONTH、UROWID、BFILE、XMLTYPE、SDO_GEOMETRY

Microsoft SQL Server

TEXT、NTEXT、IMAGE、BINARY、VARBINARY、HIERARCHYID、XML、TIMESTAMP

DB2 for LUW

CLOB、DBCLOB、BLOB、BINARY、VARBINARY、TEXT

PostgreSQL

lob、text、byte、interval

对于以下数据类型作为主键,DRS也不支持内容对比,进行内容对比时会归到无法比对的表中。

表3 不支持内容对比的主键类型

源数据库类型

数据类型

MySQL

TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、FLOAT、TIMESTAMP、DATE、DATETIME

GaussDB

TEXT、CLOB、BLOB、BYTEA、INTERVAL DAY TO SECOND、INTERVAL、REAL、DOUBLE PRECISION、BOOL、TIME、TIMETZ、TIMESTAMP、TIMESTAMPTZ、DATE

Oracle

BLOB、NCLOB、CLOB、LONG RAW、LONG、INTERVAL DAY TO SECOND、INTERVAL YEAR TO MONTH、UROWID、BFILE、XMLTYPE、SDO_GEOMETRY、BINARY_FLOAT、BINARY_DOUBLE、FLOAT、RAW、TIMESTAMP、TIMESTAMP WITH TIME ZONE、TIMESTAMP WITH LOCAL TIME ZONE、DATE

Microsoft SQL Server

FLOAT、REAL、DATE、DATETIME、DATETIME2、DATETIMEOFFSET、TIME、TIMESTAMP、TEXT、NTEXT、IMAGE、BINARY、VARBINARY

DB2 for LUW

CLOB、DBCLOB、BLOB、BINARY、VARBINARY、TEXT

创建对比任务

  1. 在“校验任务管理”界面,选择指定的校验任务,单击任务名称。
  2. 页面跳转至“基本信息”,切换到“校验任务”页签,进入“对比”信息页面。
  3. 选择对比的内容。

    • 创建对象级对比:选择“对象级对比”页签,单击“开始对比”后稍等一段时间再单击,观察源数据库和目标数据库的各个对比项结果是否一致。若需要查看结果详情,可单击指定对比项操作列的“详情”按钮。
      图1 对象对比

    • 创建数据级对比:选择“数据级对比”页签,单击“创建对比任务”,选择“对比类型”和“对象选择”,单击“确定”提交对比任务。
      图2 创建数据对比任务

      • 行数对比:用于对比源和目标端的表的行数是否相等。
      • 内容对比:用于对比源和目标端的表的内容是否相同。

        静态对比:适用于无数据变化的非业务时间。

      • 对象选择:可根据具体的业务场景选择需要进行对比的对象。
    • 创建数据过滤对比:选择“数据级对比”页签,单击“创建对比任务”,选择“对比类型”、“对比方式”勾选“进行数据过滤”选项。
      图3 创建数据过滤对比任务

      选择具体的对象,单击“下一步”,选择需要校验的表,输入过滤条件,单击“校验规则”。

      图4 选择对象

      校验完成后,单击“生成过滤规则”,然后单击“是”完成对比任务的创建。

      图5 过滤规则

  4. 对比任务提交成功后,在“数据级对比”页签,单击刷新列表,可以查看到所选对比类型的对比结果。

    图6 数据对比

    • 若需要查看行数对比或者内容对比详情,可单击指定对比类型操作列的“查看对比报表”,页面将跳转至新的窗口,可观察对比结果的详细情况。
      图7 数据级对比详情

    • 单击“导出报告”,可导出对比报告。
    • 导出的报告,可以单击“下载报告”,将报告下载至本地。
    • 已取消的对比任务也支持查看对比报表。
    • 导出的报告保留24小时,请尽快下载至本地。

周期性对比

周期性对比是DRS定时对源数据库与目标数据库表的行数或对象进行对比,并展示结果。

当前支持周期性对比的链路:
  • MySQL->MySQL
  • MySQL->TaurusDB
  • MySQL->GaussDB集中式版
  • TaurusDB->TaurusDB
  • TaurusDB->MySQL
  • PostgreSQL->GaussDB分布式版
  • PostgreSQL->GaussDB集中式版
  • Oracle->GaussDB集中式版
  • Oracle->GaussDB分布式版
  • GaussDB分布式版->GaussDB分布式版
  • GaussDB分布式版->GaussDB集中式版
  • GaussDB分布式版->Oracle
  • GaussDB集中式版->GaussDB集中式版
  • GaussDB集中式版->GaussDB分布式版
  • GaussDB集中式版->Oracle
  • GaussDB集中式版->MySQL
  • DB2 for LUW->GaussDB集中式版
  • DB2 for LUW->GaussDB分布式版
  • Microsoft SQL Server->GaussDB集中式版
  • Microsoft SQL Server->GaussDB分布式版

周期性对比步骤如下:

  1. 在“校验任务管理”界面,选中指定校验任务,单击任务名称,进入“基本信息”页签。
  2. 单击“校验任务”页签,进入“校验任务”信息页面。
  3. 选择“周期性对比”页签,单击“修改对比策略”。
  4. 在“修改对比策略”对话框中,开启周期性对比并设置对比频率、时间等策略,单击“是”完成设置。

    • 开启后,DRS会按照设置的定时策略进行行数、内容或对象对比,对比结果需要在对应的数据级对比、内容对比或对象级对比页签中查看。
    • 关闭周期性对比后,下一次的周期性对比将不会再进行,历史对比结果仍可正常查看。
    • 修改检查设置不会影响当前在进行的周期性对比任务,修改后的设置下次生效。
    • 周期性对比会在源和目标端执行一定的读取操作,请选择无业务期时间点进行对比。
    • 当对比频率选择每周对比但是勾选全部对比时间(即周一到周日全部勾选)时,任务会根据设置将任务的对比频率自动转换为每天对比。
    图8 修改对比策略

对比键设置

数据级对比场景,可进行对比键设置。

  1. 当前支持对比键设置同步任务类型的链路:
    • MySQL->MySQL
    • MySQL->TaurusDB
    • MySQL->GaussDB集中式版
    • TaurusDB->TaurusDB
    • TaurusDB->MySQL
    • PostgreSQL->GaussDB分布式版
    • PostgreSQL->GaussDB集中式版
    • Oracle->GaussDB集中式版
    • Oracle->GaussDB分布式版
    • GaussDB分布式版->GaussDB分布式版
    • GaussDB分布式版->GaussDB集中式版
    • GaussDB分布式版->Oracle
    • GaussDB集中式版->GaussDB集中式版
    • GaussDB集中式版->GaussDB分布式版
    • GaussDB集中式版->Oracle
    • GaussDB集中式版->MySQL
    • DB2 for LUW->GaussDB集中式版
    • DB2 for LUW->GaussDB分布式版
    • Microsoft SQL Server->GaussDB集中式版
    • Microsoft SQL Server->GaussDB分布式版
  2. 对比键设置注意事项:
    • 当内容对比的源库表或目标库表为无主键表,但是存在非空唯一索引时,可以手动将需要对比无主键表的非空唯一索引的列配置为对比键后,启动内容对比功能。配置对比键后,DRS数据一致性对比将使用对比键配置的列名作为表记录的唯一标识进行数据对比。
    • 对比键:由一列或多列组成,可作为表记录的唯一标识,且值必须非空(当同一张表需要设置多列时,每一列都不能为NULL)。
    • 对比键设置需要满足以下条件:
      • 设置对比键的列必须为源库表和目标库表都存在的列;
      • 设置对比键的列时,库表列大小写需要与源库的大小写一致;
      • 设置对比键的列必须为源库主键/唯一索引中的全列,若设置的对比键不符合该项,通过业务可确保对比键能够标识表记录的唯一性。
      • 设置对比键的列类型必须为DRS数据一致性内容对比支持的主键类型,可参考 不支持内容对比的主键类型。
    • 对比键设置进行内容级对比的约束:
      • 若配置的对比键的列为NULL,则将过滤掉该条对比键的列为NULL的记录不进行对比。
      • 如设置table的对比键为C1,C2,C3,若存在4条记录分别为Record1(NULL, '1', '1'),Record2('2', NULL, '2'),Record3('3', '3', NULL),Record4('4', '4' , '4')。进行内容对比时,将会过滤Record1,Record2和Record3,只对比Record4记录。
      • 设置对比键的表若需要进行动态对比,Oracle数据库为源需要对应的表开启ALL级别补充日志,GaussDB数据库为源需要对应的表开启FULL级别补充日志。

相关文档