首页 新闻 搜索 专区 学院

系统A从B数据库中获取数据

0
悬赏园豆:5 [已解决问题] 解决于 2014-12-09 14:45

需求:系统A,需要从B数据库中获取数据。系统A不希望直接查询B数据库,系统A的数据库与B数据库部署在两个不同的服务器上,我想到了三种方案:

方案一、系统A本地没有数据库,系统A中记录全部通过WebService接口形式,从B数据库中查询获得。

优点:实现简单

缺点:系统A数据量太大,而且没有和B数据库部署在同一内网,数据量大时,比较慢

方案二、系统A本地建立数据库A,数据库A与数据库B实时同步,通过DbLink

不太了解,不在同一局域网内,dbLink数据同步,能否实现?这样和直接访问B数据库,安全性方面,一样吗?

方案三、系统A本地建立数据库,初始时数据从B数据库中导入,之后B数据库中有更新,将更新的数据通过WebService方式,发送到系统A的值守程序,更新到数据库A中

优点:比较安全

缺点:实现难度大,环节太多容易出差错

 

大家有什么思路吗?

天水Lv的主页 天水Lv | 初学一级 | 园豆:41
提问于:2014-11-29 15:48
< >
分享
最佳答案
0

数据量小,变化不是太频繁的话,建议采用方案一,用RESTFUL API来是实现

数据量大,方案二可行。相当于读写分离。

收获园豆:3
幻天芒 | 高人七级 |园豆:36652 | 2014-11-29 23:19

数据量很大,数据更新不频繁

数据同步方面,DBLink、数据热备、实时备份 ,这三者怎么理解?B数据库是主数据库,A系统只需从B数据库查询数据,A系统不希望直接访问B数据库(出于安全方面考虑)

天水Lv | 园豆:41 (初学一级) | 2014-12-01 08:36

@天水Lv: 以下为个人理解:DBLink是指通过数据库提供的发布订阅之类的功能,实现多库之间的数据同步,有一定的时间差。

数据热备,这个的话,是直接从底层将数据拦截,然后写入到另外一个硬盘的方式(双击热备)

实时备份这个我估计应该是伪实时吧。

幻天芒 | 园豆:36652 (高人七级) | 2014-12-01 10:00
其他回答(3)
0

推荐1 不过webservice传输是个问题 可以考虑用 wcf

其它的,都有很大局限性,数据同步一般用在HA方面比较多。

局域网不是问题,用vlan就行。

南昌炒粉 | 园豆:714 (小虾三级) | 2014-11-29 20:22
0

像你这种情况,A一般只需要读,不需要写的,直接写一个RESTFUL API接口就可以了,

收获园豆:2
XiaoFaye | 园豆:3082 (老鸟四级) | 2014-11-30 06:04
0

菜鸟很好奇,标记下,以后学习

算了 | 园豆:3 (初学一级) | 2014-12-01 00:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册