首页 > 编程知识 正文

oracle数据同步工具(oracle连接mysql)

时间:2023-05-05 17:29:38 阅读:67492 作者:3114

最近利用一些时间对oracle数据库实时同步工具进行了一些调查分析。 主要关注linkedin的databus和阿里的yugong两个中间件。 其中,databus需要在同步对象的各表中添加额外的列和触发器来实现,方案比较重。 本文重点分析蚂蚁玉公实现方案,并提出分析调查报告。

1 .玉公实时同步原理

使用oracle的materializedviewlog功能,原始表中的数据库必须授予用户创建和删除materializedviewlog的权限,就像内部触发器一样。 有关物化视图日志的详细说明,请参阅以下文章:

2 .性能测试

a .在测试环境1的原始表(TEST_SOURCE )中生成新的300万数据

b .为了不影响开发环境的数据,修改yugong代码并将目标表更改为TEST_SOURCE_BAK

启动yugong服务,开始数据同步

d .经过1.5小时后,同步所有增量数据

3 .数据延迟测试

a .分别手动更改删除原表数据,10秒内实现数据同步

b .在目标库中添加列。 类型为时间类型,默认值为当前时间

c .使用脚本在原始库中重复生成一系列数据(50条为一批) ) ) ) ) )。

d .所有数据的延迟时间在30秒以内

4 .数据完整性测试

a .手动随机提取数据,比较同一记录各列的值,数据匹配

使用jdbc提取特定的记录集合,使用md5函数时,md5的结果一致

5 .其他测试用例

a .在原始表中添加字段,不添加目标表,数据正常同步

b .先向目标表中添加字段,不向原始表中添加字段,数据同步正常

c .必须同时在原始表和目标表中添加字段,重新启动服务,然后同步数据

d .无主键测试,yugong不支持无主键同步

e .主键是多列测试,可以正常同步

f.yugong服务连续运行了72个小时,中间可能发生过同步中断,但原因尚不清楚

g .在事务中回滚实例化视图日志时,将同步回滚

h .目标表删除记录,原始表更新此记录,并将此记录重新同步到目标表

6 .玉公分析

a .代码简洁,分为提取器、转换器、应用程序和更新到目标库三个部分

b .只有一项服务,没有其他第三方的依赖

c .原理简单,可以按照我们的意图更改代码

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。