需求:系统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中
优点:比较安全
缺点:实现难度大,环节太多容易出差错
大家有什么思路吗?
数据量小,变化不是太频繁的话,建议采用方案一,用RESTFUL API来是实现
数据量大,方案二可行。相当于读写分离。
数据量很大,数据更新不频繁
数据同步方面,DBLink、数据热备、实时备份 ,这三者怎么理解?B数据库是主数据库,A系统只需从B数据库查询数据,A系统不希望直接访问B数据库(出于安全方面考虑)
@天水Lv: 以下为个人理解:DBLink是指通过数据库提供的发布订阅之类的功能,实现多库之间的数据同步,有一定的时间差。
数据热备,这个的话,是直接从底层将数据拦截,然后写入到另外一个硬盘的方式(双击热备)
实时备份这个我估计应该是伪实时吧。
推荐1 不过webservice传输是个问题 可以考虑用 wcf
其它的,都有很大局限性,数据同步一般用在HA方面比较多。
局域网不是问题,用vlan就行。
像你这种情况,A一般只需要读,不需要写的,直接写一个RESTFUL API接口就可以了,
菜鸟很好奇,标记下,以后学习