目前有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都有可能
你这是一个什么业务需求啊,怎么感觉怪怪的
做一个数据同步中心, A数据有变化,同步中心把数据同步到B,C,D
B,C,D有变化,数据同步中心把数据同步到A
搭建集群, 如果是mysql 的话用复制的方式, A是主节点,BCD是子节点。复制比集群好弄(个人感觉),其实复制也是集群理念(还是我的理解(⊙﹏⊙)b),不知楼主数据库是什么。但是每个数据库都有这方面的api基本。
1新建DBLINK
2.新建触发器 完成同步
异构数据同步,eg: kettle
使用数据库同步软件解决,访问tomcoding网站