数据迁移的心得 -SinoDB星瑞格数据库
1.1 数据迁移背景
Informix是IBM公司出品的关系数据库管理系统(RDBMS)家族。作为一个集成解决方案,它被定位为作为IBM在线事务处理(OLTP)旗舰级数据服务系统
数据迁移工具,Informix数据库迁移到oracle,mysql,goldendb等数据库,每个数据库sql规则不一样,涉及到的功能和底层数据,在字符集等方面都要做兼容,涉及的面比较广,作为Repl的测试人员,简单总结一下repl的功能和测试方法
1.2 Repl测试工具
Repl工具工作机制
Repl测试工具,根据配置链接信息,使用jdbc的方式链接到目标数据库,迁移工具灵活且强大,可以根据源端服务器的配置情况,进行不同方式的部署:
Repl测试工具支持迁移到oralce,mysql,goldendb,增量迁移时,根据etc/config.yml的文件进行配置
target: #目的数据库JDBC信息#SYS #test123456
dbType: mysql (可以是oracle,mysql,goldendb等
1.3 数据分析
不同字符集之间的同步,涉及到中文数据的一个存储和转码同步的问题,比如informix数据库的字符集en_us.819,oracle或mysql的字符集为utf-8或gdk,存储过程中,utf8 的中文是3字节,GBK是2字节,informix会自动截取,可以正常插入,但是oracle等其他数据库字符编码为utf8时,不会自动截取,在增量同步过程中,涉及到转码功能和目标数据库的字段长度问题
Decode 加密与转码功能
Java解码功能
Source:
properties: #数据库JDBC连接串其他信息
INFORMIXSERVER: hdr #idsol_sinodb1210
charset: "gb18030" #GBK, ISO-8859-1, UTF-8
Target:
properties: #数据库JDBC连接串其他信息
useUnicode: true
characterEncoding: UTF-8
serverTimezone: Asia/Shanghai
useSSL: false
allowPublicKeyRetrieval: true
1.4大数据量增量同步性能测试
导入100W的数据,多进程处理,java分组
getIfxLog抓取日志耗时
getIfxLog耗时:74秒
数据提交时间:committime:15:30:56 getIfxLog 耗时:74s
Decode解码耗时
Decode分5个进程,平均处理dat文件
数据开始处理时间为:32:10 数据结束处理时间为:33:49
Decode 解码耗时时间为:89
JAVA传送kafka耗时
因insert操作没有顺序,java启动多分组多进程处理传送kafka
Java开始时间:33:49 结束时间:34:29
Java传送kafka耗时:40s
1.5Repl的心得:
从来公司就进入repl团队,了解到informix的repl产品功能非常强大,它的灵活性,同步多种对端数据库,采用队列技术;支持并行复制;同表可并行复制;支持远程管道压缩数据等功能,弹性架构使其部署在不同的硬件设备上都能正常工作。
相关文章