5. 校验结果

本章是对校验结果举例和说明。校验结果在输出日志里,搜索关键字———不一致,即可得到结果。如果无不一致信息,则表明对比一致,迁移没有问题。 日志路径:logs/lightdb-etl/lightdb-etl.log

5.1. 表结构对比

对比源数据库和目标数据库的表名、列名、数据类型、数据的精度、数据的标度、字符的长度、日期的标度是否一致。

首先输出:表结构对比开始

对比一致的会在第一行输出:

模式.表名对比一致

对比不一致的:

第一行输出:模式.表名对比不一致 第二行输出:对比不一致的原因。如下所示,如果数据类型不同,会输出数据类型不同,源数据库的数据类型是什么,目标数据类型是什么。

表结构对比开始
 //对比一致
 FUND60ACCO12.tbfundtaclientinfo13对比一致。FUND60ACCO12.tbfundtaclientinfo12对比一致。FUND60ACCO12.tbzdassetacc14对比一致。
 //对比不一致
 FUND60ACCO12.tbfundbakrestables112对比不一致
        busin_type的数据类型不同, 源:VARCHAR2,目标:varchar2
        ori_trans_date的数据类型不同, 源:NUMBER,目标:numeric
 FUND60ACCO12.tbtatransaccount_bak13对比不一致
       目标:invest_flag列不存在
       目标:invest_code列不存在
 FUND60ACCO12.sys_export_schema_01对比不一致
      in_progress: 数据的精度不同,源:88,目标:null;
      invest_flag: 数据的标度不同,源:88,目标:22;
      invest_code:日期的标度不同,源:88,目标:22;
      processing_state: 字符的长度不同,源:88,目标:22;

5.2. 表量对比

对比源数据库和目标数据库的对比表名、表量、表数据行数;对比视图、索引、存储过程、函数数量是否一致。

目前表量对比增加了html输出文档,包含了对比的总量统计、迁移失败原因等

dataCompare.html 是专门针对表的对比结构,统计整体表的对比情况和展开失败的原因。 typeCompare.html 是所有对象的对比结果,统计整体情况,对比失败的类型和schema会进行标红处理,详细对比失败原因可点击展开查看。

../_images/dataCompare.png ../_images/typeCompare.png

对比结果也会在日志的输出,会打印所有的内容,便于一些特殊报错的查询,以下是日志的结构说明:

首先输出:表量对比开始

然后输出:特殊的情况:如pg自动增加的索引:tbcustamlx1currents_pkey,oracle自动增加的索引:sys_il0007162376c00045$$,pg自动增加的分区表:tbcustamlx1currents_1_prt_atr

然后开始输出对比结果:

第一行输出:视图等对比开始

对比一致的会在第二行输出:

模式.表名对比一致。如 tbdictconvert对比一致 tbfundcentralizex8file14对比一致 tbfundcentralizex8file13对比一致

对比不一致的:

第一行输出:模式.表名对比不一致 第二行输出:对比不一致的原因。如下在视图对比时,对比不一致,因为目标数据库的某一个视图没有迁移成功;表量对比时,tbfundcrsclientcfm对比不一致,输出不一致的原因时数据的行数不相同。

表量对比开始
viewCount对比开始
   tbdictconvert对比一致  tbfundcentralizex8file14对比一致    tbfundcentralizex8file13对比一致
   tcustinfo对比不一致
              目标:FUND60ACCO12.tcustinfo 不存在
 sequenceCount对比开始
   无数据,对比一致

 proceduresCount对比开始
   proc_droptable对比一致   proc_droppk对比一致   proc_addcolumn对比一致
   proc_droptable对比不一致
              目标:FUND60ACCO12.proc_droptable 不存在
   proc_dropcolumn对比不一致
              目标:FUND60ACCO12.proc_dropcolumn 多余

 functionCount对比开始
   tbdic对比一致  tbfundcentr对比一致 tbfundcentrali对比一致

   tranferidcode对比不一致
              目标:FUND60ACCO12.tranferidcode 不存在
      tranferidtype对比不一致
              目标:FUND60ACCO12.tranferidtype 不存在

 tableCount对比开始
   tbfundcentralizex8file12对比一致       tbfundcentralizex8file11对比一致    tbfundtaclientinfo15对比一致
   FUND60ACCO12.tbfundaccfrozendetail对比不一致
               数量不同,源:21,目标:0
   FUND60ACCO12.tbfundcrsclientcfm对比不一致
               数量不同,源:63,目标:0

 indexCount对比开始
   tbdictconvert对比一致  tbfundcentralizex8file14对比一致    tbfundcentralizex8file13对比一致
   FUND60ACCO12.sys_export_schema_05对比不一致
               目标:索引sys_export_schema_05_process_order_duplicate_key多余
   FUND60ACCO12.sys_export_schema_01对比不一致
               目标:索引sys_export_schema_01_process_order_duplicate_key不存在

5.3. 表数据对比

表数据对比,每个表采取随机抽取5个列排序之后的前20个数据进行比较。

首先输出:数据对比开始

然后输出对比一致的表:表名对比一致

输出对比一致的表:
表名对比不一致

源数据: 目标数据:

数据对比开始
tbfundconfirmstatdetailtmp对比一致,无数据。tbfundcentralizexdfile9对比一致
tbaccountopenasset16结果不一致
      目标:无数据
tbfundliqprdinfo结果不一致
      源数据为:1 234
      目标数据:1 789