好学IT学院:IT信息技术分享交流平台
来源:IT专家网论坛  作者:jzxue  发布时间:2009-09-30  ★★★加入收藏〗〖手机版
摘要:可能在云计算、SOA架构下这种方案会逐渐消亡,但是目前还是比较实用的,本文简单介绍了常用的数据同步方案,由于正在使用高级复制的解决方案,所以重点说了oracle的高级复制…

内容提示:可能在云计算、SOA架构下这种方案会逐渐消亡,但是目前还是比较实用的,本文简单介绍了常用的数据同步方案,由于正在使用高级复制的解决方案,所以重点说了oracle的高级复制

Oracle相关分布式数据解决方案

可能在云计算、SOA架构下这种方案会逐渐消亡,但是目前还是比较实用的,本文简单介绍了常用的数据同步方案,由于正在使用高级复制的解决方案,所以重点说了oracle的高级复制

一、常见的分布式数据解决方案

如果数据库为oracle、数据分散的分布式系统,常可以见到入下的分布解决方案

非实时,批量同步

1.ETL工具或者自己开发的接口

一般对应于特定格式的数据文件,使用FTP服务。

数据仓库或者数据集市可以使用ETL工具做数据整合,一般系统都是自己写的接口程序实现。常规思路是数据导入接口表,清洗后进入正式表

导入方式非常多,如果数据量很大可以使用sqlLoder,如果数据不大,可以逐行导入并同时清洗。就我的经验来看,将清洗逻辑放在数据库比较好。

也有可能是通过http获得的XML文件,这时需要自己定制XML的解析程序,读出CDATA节。高级程序语言这方面的功能都很强大、简单。

实时、小批量同步

1.第三方提供的

对于关键系统,可以使用中间件保证数据的安全、稳定。比如BEA的Tuxedo就不错。

2.自己开发

如果都是unix机器可以使用socket编程,数据打成包发送,稳定性可以保证。经常是打成XML的格式,数据文件的自描述能力比较强。

这两种方案在电信等系统都可以见到,还是比较可靠的。

3.oracle自己提供的

3.1实时表接口

使用db_link和存储过程,结合job,很灵活和强大。

3.2 oracle高级复制

如果需要保证双向的实时数据同步,同时复制环节又比较复杂,存在多个复制结点,可以使用Oracle的高级复制,今年在我做的房产局项目中使用了这种方案。虽然就这个项目来说,不太适用使用这种方案,但由于历史的原因,为了一期系统的需要我们延续了这种同步方案。这篇文章主要就高级复制的过程进行说明