解决金仓KingbaseFlySync DB2源端数据不解析的问题
关键字
KingbaseFlySync ,KFS,DB2,同步服务,源端不解析
问题描述
DB2作为源端时,源端状态正常,但是当源端正常插入数据时,源端未正常解析插入的数据,导致数据不能正常同步到目标端
问题分析
可以从如下的几个方面依次进行排查:
一、检查CDC相关的配置
A、检查setupCDC.conf中相关配置是否正确
B、检查flysync.tables中模式、表名和数据库中一致(包括名称和大小写)
二、检查源端捕获进程
源端DB2是通过捕获进程获取增量数据的,如果捕获进程异常,也会导致源端不解析,查看命令如下:
如果进程不存在,则需要查看家目录下的db2inst1.DBNAME.ASNCDC.CP.log文件,根据对应的报错进行修改
三、检查表中是否有不支持的数据类型
A、DB2 CDC不支持解析boolean、xml 类型,如果表中有相关类型,则该表不支持进行CDC解析
B、源端大对象类型不能有非空约束、大对象类型不能做主键,否则也会导致解析异常
四、检查ASNCDC模式下对应CDC表是否捕获到数据
检查CDC_${source_user}_${tablename}表中捕获到源端的增量解析数据,如果未捕获到数据,则可以检查如下内容:
A、SELECT * FROM SYSCAT.TABLES t WHERE TABSCHEMA = 'ASNCDC',对应表的OWNER需要和setupCDC.conf中source_user配置的一致 (如果不一致,可能存在权限问题,需要完全删除CDC后重新部署)
B、Select * from ASNCDC.IBMQREP_COLVERSION,确认CDC部署后,表中字段成功进行了注册
解决方案
根据问题分析中的检查项,依次检查,如有异常,则根据要求进行修复