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代码同步 轮询的方式取差异 然后去除差异
11 个月之前 回复
u014236217
u014236217 这个不行,BCD数据库都是在内网上的
11 个月之前 回复
kissweb
kissweb   2017.08.28 17:25

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

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

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

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

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

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

异构数据同步,eg: kettle

u014236217
u014236217 能说的在详细一点吗?
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Navicate在同步oracle数据,不同数据库之间同步
举例,oracle之间 1.navicate同步oracle数据库的时候 如果目标oracle数据库不为空则清空。 2.在navicate工具选项里面同步表结构,然后比较,右键选择全选,然后运行查询,表结构同步成功 3.同步数据。同一个数据库下面同步:在工具下面选择同步数据;不同一个数据库(ip地址不同)选择右键,数据传输,选择源数据和目标数据库和模式表空间
数据库之间同步介绍
数据库之间的三种同步方式 DCN的问题
数据库同步 数据库同步
数据库同步 sql 同步 sql 2000 同步 sql 2005 同步 MS-SQL同步
不同数据库之间的实时同步
最近一段时间前单位的同事问我有什么方法可以实现不同数据库之间表数据的同步, 起初我 诉他可以用 DATAGURAD , STREAM , 物化视图 等技术手段实现。但他告诉我需要同步 数据的表并不多(有 3-5 张表需要同步) 。我就想通过编写触发器实现要更为简单一些。通 过几天的努力终于实现。
数据库之间的数据同步
数据库之间的数据同步有以下几种情况:第一种是在非业务工作时同构数据库之间数据同步,这种情况下,只有存量数据库。只需要将源库中的数据文件拷贝的目标库,目标库加载数据文件即可。第二种是在非业务工作时异构数据库之间的数据同步,这种情况 下,只有存量数据库。需要将源库中的数据以SQL数据形式导出,然后加载到目标库即可。第三种是在业务工作时同构数据库之间的数据同步,这种情况下,存量数据同步方法是:将从源库将...
mysql不同数据库之间的同步
前提:目前MySql数据库中有两个数据库,名称分别为:db01和db02。db01中的人员表叫t_user_info;db02中的人员表叫t_user。需求:将表t_user_info(id,name,type,content,createtime)的数据导入到表t_use( userid,username,usertype, usercontent,user createtime)中。第一步:运
比较两个数据库之间的差异数据库之间同步工具
比较两个数据库之间的差异,并进行同步。功能非常强大。
webService数据库同步设计
基于web和service层面的异构数据库之间的同步设计,实现数据同步
实现两个数据库之间的数据同步
不同服务器数据库之间的数据操作   --创建链接服务器  exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '  exec sp_addlinkedsrvlogin  'ITSV ', 'false ',null, '用户名 ', '密码 '    --查询示例  selec
同一服务器上不同数据库之间同步表数据
在同一个服务器上有两个数据库A和B,现在想取B数据库中的某个表中的数据插入到A中,做法是: 1、首先在A数据库中建立一个dblink,其中testLink是dblink名字随便取,username跟password都是B数据库的登录名跟密码; create public database link testLink connect to username identified BY p