一起学习
陈光 holen@263.net 2003.10
本文简要介绍了ORACLE的高级复制功能,并通过一个实际项目,讨论了在内外网的两级DB中如何采用高级复制达到内外网的数据统一,最后给出配置脚本供大家参考。
1、基本概念
ORACLE
ORACLE是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是客户/服务器(CLIENT/SERVER)体系结构的数据库之一。
高级复制
什么是复制?简单地说复制就是在由两个或者多个数据库系统构成的一个分布式数据库环境中拷贝数据的过程。
高级复制,是在组成分布式数据库系统的多个数据库中复制和维护数据库对象的过程。 Oracle 高级复制允许应用程序更新数据库的任何副本,并将这些更改自动传递到其他数据库,同时确保全局事务处理的一致性和数据完整性。
同步复制,复制数据在任何时间在任何复制节点均保持一致。如果复制环境中的任何一个节点的复制数据发生了更新操作,这种变化会立刻反映到其他所有的复制节点。这种技术适用于那些对于实时性要求较高的商业应用中。
异步复制,所有复制节点的数据在一定时间内是不同步的。如果复制环境中的其中的一个节点的复制数据发生了更新操作,这种改变将在不同的事务中被传播和应用到其他所有复制节点。这些不同的事务间可以间隔几秒,几分种,几小时,也可以是几天之后。复制节点之间的数据临时是不同步的,但传播最终将保证所有复制节点间的数据一致。
2、项目情况
需求描述
这是一个内外网结构的审批系统。
外网有一个WEB( APPSERVER),一个DB(ORACLE9.2,双网卡),负责接收申报和反馈审批结果。
内网有一个WEB( APPSERVER),一个DB(ORACLE9.2,双网卡),负责接收申报和反馈审批结果,以及通过审批流程处理来自外网的审批申报。
由上可知,内网功能包括外网功能,不过外网申报需要CA认证,内网则不需要。
根据国家保密有关规定,政务系统的内外网必须物理隔绝,所以外网接收到的申报并不能马上反应到内网,同理,内网的处理结果也不能迅速反馈到外网。
技术选择`
我们选择ORACLE异步手工复制,复制主要完如下功能:
1. 把外网新申报数据复制到内网;
2. 把内网对申报的处理结果反馈到外网。
操作实现
因为正常工作时间,内外网均不能停顿,而内外网又不能物理连通。于是设定在每天晚上18:00至18:15(或其它时段)为维护时段,该时段内外网均停止作业,由系统管理员把与内外网DB相连的所有网线均断开,用一根直连网线把两台DB连接,通过ORACLE提供的操作界面,在外网端手工刷新记录。
3、具体实现步骤
详细请下载
4、后记
ORACLE的高级复制功能非常强大,能实现多点间的数据同步、异步复制。
内外网结构的报送、审批、备案等两(多)级系统日益流行,若内外DB为同类型商业数据库,一般数据库本身都提供复制功能,若内外网为不同类型的数据库,如内网为SQLSERVER,外网为ORACLE,则一般使用“同步机”中间件,在程序中调用即可。
感谢李鑫为我提供技术解答!
5、关于作者
陈光,J2EE项目经理,熟悉EJB、XML,致力Aapche Jakarta、Aapche XML项目的应用与推广,可通过holen@263.net与作者联系。
下载本文示例代码
用ORACLE的高级复制实现内外网数据同步用ORACLE的高级复制实现内外网数据同步用ORACLE的高级复制实现内外网数据同步用ORACLE的高级复制实现内外网数据同步用ORACLE的高级复制实现内外网数据同步用ORACLE的高级复制实现内外网数据同步用ORACLE的高级复制实现内外网数据同步用ORACLE的高级复制实现内外网数据同步用ORACLE的高级复制实现内外网数据同步用ORACLE的高级复制实现内外网数据同步用ORACLE的高级复制实现内外网数据同步用ORACLE的高级复制实现内外网数据同步