数据库同步,求解决方案
现有一项目,需要实现如下需求
已经有N套应用系统,分别有不同的数据库支撑,暂且称为DB1,DB2,DB3......它们有SQL SERVER ,也有oracle
现在需要将DB1,DB2,DB3..中的部分数据抓取出来,同步到一个Linux下的oracle数据库,作为另一套应用的支撑数据库,这里称A库.
如何做可以实现
1.A库中的数据修改更新,可以同步更新到各自应用系统中的DB
2.DB1,DB2,DB3等库中有数据更新,能够同步更新到A库中
就一个双向同步问题,求高人指点,在此谢过~
------解决方案--------------------现在ORACLE大力推GODENGATE,可惜费用不便宜啊,不过,稳定和高性能,
同步的方法还有很多,有硬件同步,软件同步,软件除了ORACLE的,还有第三方的,如SharePlex等等
------解决方案--------------------1.对于Oracle数据库--Oracle数据库,可以采用DBLink+Oracle Job+Procedure
建立好DBLink后,每小时运行一次Oracle Job,在Job里运行Procedure 导数据就可以。
2.对于Oracle数据库--SQL Server数据库,采用第三方工具,或者自己写个应用导数据吧。我也想知道更好的、直接导数据的方法。
------解决方案--------------------其实你的需求不是同步,同步是秒级;你的需求是数据集中和分发,属于数据仓库级,也就是ETL工具来做的,如果你只是ORACLE到ORACLE同步,可以考虑一下下面的软件(免费):
http://www.onlinedown.net/soft/49863.htm
如果你需要ETL建立数据仓库,那就找www.woxintech.com网站,他们有自己的ETL工具,可以通过配置,进行相关数据的抓取、清洗和装载,不过是肯定要收费的
------解决方案--------------------具体要看你项目同步的数据量,还有你数据源与目标A库的网络环境了;
1.如果数据量小,网络稳定,可以考虑自己用脚本的方式来做数据同步;
2.如果数据量大,网络不文档,可以考虑第3方软件,做物理逻辑的同步;迪思杰(北京),我们这里电信用的就是这个数据同步的东西,你可以参考下
------解决方案--------------------如果是单向同步,用ETl方式就可以.如果是双向同步.
在原库上建立日志,然后写一只程序,定期根据日志进行同步.
因为你的同步期在一个小时左右,因此你的同步方案选择主要考虑要同步的数据量.
------解决方案--------------------如果不想花钱买成型产品的话,可以考虑使用ORACLE的同名网关技术将异类数据源镜像成ORACLE后进行同步处理