异地容灾系统与数据仓库之间是通过百兆网连接的;数据仓库需要的生产数据从异地容灾系统数据库获取,因此数据仓库也采用Oracle 9i数据库。数据仓库需要实时同步的表大约为三百张。从同步运行情况看,同步生产数据延时大约为十分钟,能满足数据仓库的要求,并且与生产环境没有任何关系,不会对生产环境造成影响。 该系统结构使系统在各个实现层次上均具有明确的界限和分工,既避免了相互影响,简化了数据同步的难度,又实现了对生产系统的影响达到最小化。该结构使得系统易于维护、扩展性好、安全性好、稳定性好。
3采用的关键技术
同步软件采用的关键技术为Oracle高级复制技术。该技术能将Oracle数据库中的数据同步或异步拷贝到不同的数据库中。将数据复制到复制环境数据库的技术实体叫做物化视图。物化视图可以是只读的、可更新的或可写的[4]。
该技术在不同Oracle数据库之间进行复制时可以是同步的,也可以是异步的[5]。同步复制,即复制数据在任何时间、任何复制节点均保持一致。如果复制环境中的任何一个节点的复制数据发生了更新操作,这种变化会立刻反映到其他所有的复制节点上。异步复制,即所有复制节点的数据在一定时间内是不同步的。如果复制环境中一个节点的复制数据发生了更新操作,这种改变将在不同的事务中被传播和应用到其他所有复制节点。这些不同的事务间可以间隔几秒、几分种、几小时,也可以是几天之后。复制节点之间的数据临时是不同步的,但传播最终将保证所有复制节点间的数据一致。
(1)容灾系统使用异步可写物化视图方案
启动营业应急系统要求容灾数据库的这些物化视图是可写的,这样才能保证系统的正常运行,但是又不要求这些变更数据同步至生产系统,因为现在的生产系统已经遭到破坏。可写的物化视图允许用户通过在这个可写的物化视图上进行插入、更新和删除行的操作,但是这些操作不会同样地插入、更新和删除主表或主实体化视图上的行。因此容灾数据库中应该使用这种可写的物化视图;同时容灾数据库的表结构、索引、存储结构应该与生产数据库保持一致,使用该同步软件中的普通初始同步方式来完全拷贝生产系统的表和索引定义。容灾系统数据同步流程如图3所示[6]。
当灾难发生时,应该首先停止生产系统到容灾系统的同步软件,然后启动营业应急系统以保证继续营业;同时因为同步延时了几分钟(最长不超过5 min),所以有可能会丢失少量数据。部分丢失的数据需要通过营业补录的方式解决。
(2)数据仓库是使用异步只读物化视图的方案
数据仓库只要求对读取生产的数据进行分析,因此数据仓库的这些物化视图是只读的就可以了。只读物化视图提供只读的访问表数据。这个表数据来源于一个主体站点或一个主物化视图站点,因此数据仓库中采用这种只读物化视图。另外,数据仓库在分析时一般需要扫描这些物化视图,需要建立与生产数据库不同的表和索引结构,如对表进行分区、建立数据分析需要的索引等。因此应该使用该同步软件中的分区初始同步和条件初始同步方式来建立合适的物化视图及索引。数据仓库数据同步流程如图4所示。
4结束语
从这次生产数据的及时准确同步到异地容灾和数据仓库的实施过程中,笔者通过摸索解决了同步过程中的性能问题,从而最终解决了Oracle高级复制技术同步的可行性,保证了同步的效率;在实施和维护的过程中,笔者还逐步发现了该技术本身存在的问题并注意加以解决,从而保证了同步的稳定性和准确性。从这次同步实施过程看,任何技术都存在缺陷,但是本文的探索和创意可以弥补这些缺陷。该系统对于很多企业在设计数据仓库和异地容灾系统中数据同步的方案时有一定的推广意义。
参考文献:
[1]王树鹏,云晓春,余翔湛,等.容灾的理论与关键技术分析[J].计算机工程与应用,2004,40(28):54-58.
[2]刘迎风,祁明.容灾技术及其应用[J].计算机应用研究,2002,19(6):7-10.
[3]杨朝红,宫云战,桑伟前,等.基于主从异步复制技术的容灾实时系统研究与实现[J].计算机研究与发展,2003,40(7):1104-1109.
[4]徐秀华,文必龙,毕硕本. Oracle 9i高级复制技术及其应用[J].计算机应用研究,2003,20(11):107-109.
[5]苏燕强.Oracle分布式数据库及其应用研究[J].计算机应用与软件,2004,21(8):36-37,121.
[6]葛卫民,张钢,舒炎泰.基于Oracle高级复制的分布式数据库系统应用研究[J].计算机工程与应用,2003,39(21):186-188,191.