绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
SinoRepl增量数据迁移工具介绍
2022-02-28 10:35:45

1、引言

背景

       由于各企业业务的发展信息化系统不断地建设,环境日益复杂,各系统间的数据交换复制需求日益增长,但是市场上数据复制软件的功能,大多无法满足实际客户的需要,实际上实施数据复制常常面临以下几个问题:1. 复杂的异构环境,实施困难; 2.对性能造成影响;3.库表结构变更时,复制中断,而导致远营中断。针对 以上问题星瑞格自主研发一款星瑞格异构数据实时复制软件-SinoRepl,采用表级复制的方式,将表数据从某个数据库实时复制到其他数据库,并可以在异构平台与异构数据库上实现数据复制。通过从源数据库基于数据库曰志实时捕获,交付到目标数据库端,将数据变化提交到目标数据库完成数据复制, 对原有数据库影响极小。SinoRepl可以应用在数据集中、数据分发的问题,也可以解决在高可用需求下数据容灾备份, 零停机数据库升级等数据复制应用方案。

2、特殊需求测试场景

场景类型

字段结构

源端

目标端

描述及预期

char空串问题(长度为0,非null)

存在非空约束:

源:char(3) not null

目标:varchar2(3) not null

测试值:‘   ’

存入空串,存储为三个空格

实际值:’三个空格’

 

预期值:一个空格(或null)

 

char字段存入空串,会补空格,由于目标端用的类型是varchar2,预期根据是否有not null约束来处理,存在非空约束则保留一个空格,无非空约束则保存为null,打印操作日志和源数据

无非空约束:

源:char(1)

目标:varchar2(1)

测试值:‘’

实际值:’空格’

 

预期值:null

varchar空串

无非空约束:

源:varchar(16)

目标:varchar2(16)

测试值:‘’

实际值:‘空格’

 

预期值:null

与char类型类似,预期根据是否有not null约束来处理,存在非空约束则保留一个空格,无非空约束则保存为null,打印操作日志和源数据

存在非空约束:

源:varchar (3) not null

目标:varchar2(3) not null

测试值:‘’

实际值:‘空格’

 

预期值:一个空格(或null)

char没有达到字段的长度

源:char(3) not null

目标:varchar2(3) not null

测试值:‘ab空格’

实际值:‘ab空格’

 

预期值:’ab’

char字段达不到大长度时,会在末尾补空格,由于目标端用的类型是varchar2,预期去除末尾空格

乱码

乱码在末尾:

源:varchar (3)

目标:varchar2(3)

测试值:‘天�’

 

实际值:‘天’

预期值:‘天�’

保留非乱码部分,乱码直接被删除,预期保持原样,如无法修复,应打印操作日志和源数据

乱码非末尾:

源:varchar (18)

目标:varchar2(18)

测试值:‘� 看过’

实际值:‘��看过’

预期值:‘� 看过’

乱码多了一位,预期保持原样,如无法修复,应打印操作日志和源数据

3、功能模块

3.1可实现功能目标

1、实现Informix数据库的表复制到Oracle,mysql等数据库上(DDL,DML)。

2、实现Informix数据库与目标数据库表记录数的比对和表数据的比对。

3.2运行环境

 项目

名称

操作系统

AIX 、Linux

数据库

Informix、Oracle、mysql


3.3架构图
适用场景 
数据库滚动升级

       7x24核心业务生产系统一般无法为了数据库升级而停机, 因此可先将原有备机或准备另一台数据库服务器先做升级成新版本,用SinoRepl把生产库数据复制到新升级的数据库,验证应用运行是否正确,待运行一段时间无误后再行切换,缩短服务停止时间窗口,切换成功后,原数据库再行升级。


适用场景 

数据库实时容灾解决方案

SinoRepl可以做为一个低成本、低凤险的数据库实时容灾解决方案,如果因预算或其他因素无法使用HDR,RSS做为灾备数据库,可以采用SinoRepl将数据库实时复制到备库当作灾备应用。

数据下发

SinoRepl可以将中心端数据库某些表数据下发到各省数据中心,各省应用系统可直接调用省数据库信息, 完成相关业务。各省数据中心可采购设备等级较低阶服务器以节省成本开销。


生产库数据实时分析应用

为避免影响生产库性能,可将生产库数据使用SinoRepl实时复制到分析平台进行计算分析。例如半导体MES制程系统,可以将生产机台数据实时复制到分析系统进行统计分析计算。


适用场景 

物联网环境下,前端设备采集信息集中处理

在物联网应用环境下,前端感知层设备采集的信息,可以使用SinoRepl实时复制到应用分析层或大数据分析层集中数据做计算分析。


4、功能模块

4.1数据克隆

用法:

java -jar J2Repl.jar replicateJson   读取deJsonQ下的json,replicate 到target, 成功执行的json移动到jsonDoneQ

注:该功能可实现informix数据增量同步到任何目标数据库中。也可以实现ddl迁移同步。市面上的同步工具如datax或其它场商对informix支持不够全面或不支持ddl

3.2比对数据

用法:

java -jar J2Repl.jar compareData demo1 ywxtdb call051   对指定源表和目标表进行比对,可以生成两个txt文件在程序目录下。然后可以使用diff工具进行自定义比对。将来也可根据需求实现内存比对或中间库比对功能。

 5、性能报告

       

       总结。Sinorepl迁移工具是专门为了informix数据库所研发的同步产品,有市面上其它同步工具无法实现的优势如复杂的异构环境,优越的性能,表结构的变列,断点续传。数据比对等等功能,有需要迁移informix数据的了朋友推荐使用。


分享好友

分享这个小栈给你的朋友们,一起进步吧。

专业的官方救援小分队
创建时间:2019-11-07 09:33:49
我是一个官方吐槽小栈我们是技术栈的搬砖IT民工。 我知道你们在使用小栈的过程中会遇到很多问题: 迭代功能太鸡肋? 界面太low? 编辑器难用到爆? ··· 需求尽管提,槽点尽管说,技术救援小分队在线为您灭火,致力于提供专业的解答,提供迅疾的反馈。 悄悄的说,毛线不懂的运营喵、产品狗他们不在,我们一起吐槽!
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 山中老狐狸
    栈主
  • 栈栈
    嘉宾
  • gaokeke123
    嘉宾
  • Ys
    嘉宾

小栈成员

查看更多
  • gyu
  • aabbcc1832611
  • 飘絮絮絮丶
  • h313895741
戳我,来吐槽~