2 u014236217 u014236217 于 2017.08.28 16:58 提问

数据库与数据库之间的同步 20C

目前有A,B,C,D 4个数据库,A数据库是我的,BCD是其他地方的数据库,每个数据库的表结构都不同。
想要实现A<=>B,A<=>C,A<=>D

我现在有2中想法:
1.BCD分别建一个视图,把所有数据采集好,然后做一个跟视图对比的表,通过kettle实现对比,
有差异的数据发送到A。实现BCD->A,但是A->B,A->C,A->D 不好做
2.A做成3个表,A=B,A=C,A=D, 这样A<=>B,A<=>C,A<=>D很方便。但是因为有对A进行CRUD的操作,所以代码可能就会变成BCD各一份代码

两种方法都有它的方便之处和不方便之处,
想请教一下各位大佬有什么意见,或者想法来实现A<=>B,A<=>C,A<=>D

备注:
1.数据库的数量是不一定的,可能会有BCDEFG这样的
2.数据库也可能不一样,mysql,oracle都有可能

5个回答

zy841958835
zy841958835   Ds   Rxr 2017.08.29 08:30

1新建DBLINK
2.新建触发器 完成同步

zy841958835
zy841958835 或者用java代码同步 轮询的方式取差异 然后去除差异
3 个月之前 回复
u014236217
u014236217 这个不行,BCD数据库都是在内网上的
3 个月之前 回复
kissweb
kissweb   2017.08.28 17:25

你这是一个什么业务需求啊,怎么感觉怪怪的

kissweb
kissweb 回复song_time: 异构数据同步,eg: kettle
3 个月之前 回复
u014236217
u014236217 学校的人员管理,学校用我们的管理工具,自己还有一个管理工具,所以要双向同步
3 个月之前 回复
kissweb
kissweb   2017.08.28 17:30

做一个数据同步中心, A数据有变化,同步中心把数据同步到B,C,D
B,C,D有变化,数据同步中心把数据同步到A

u014236217
u014236217 到最后可能就,一个学校一份代码,这样也还好
3 个月之前 回复
u014236217
u014236217 我刚开始也是这么想的,但是有可能BCD的数据定义跟A不同,可能要做3个数据同步中心
3 个月之前 回复
qq_33727653
qq_33727653   2017.08.28 17:42

搭建集群, 如果是mysql 的话用复制的方式, A是主节点,BCD是子节点。复制比集群好弄(个人感觉),其实复制也是集群理念(还是我的理解(⊙﹏⊙)b),不知楼主数据库是什么。但是每个数据库都有这方面的api基本。

u014236217
u014236217 A的数据库是mysql,但是B是oracle,C是mysql,D我忘了。。
3 个月之前 回复
kissweb
kissweb   2017.08.30 13:01

异构数据同步,eg: kettle

u014236217
u014236217 能说的在详细一点吗?
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片