异地容灾系统和数据仓库中数据同步的设计及其
2015-02-12 01:17
导读:计算机应用论文论文,异地容灾系统和数据仓库中数据同步的设计及其论文样本,在线游览或下载,科教论文网海量论文供你参考:
摘要:以异地容灾系统和数据仓库需要实时同步生产系统的数据
摘要:以异地容灾系统和数据仓库需要实时同步生产系统的数据为背景,介绍了一个异地容灾系统和数据仓库中数据同步软件的功能模型;对两个系统中数据同步的设计和体系结构作了介绍,并阐述了该数据同步软件所采用的Oracle高级复制技术。
关键词:数据同步; 容灾系统; 数据仓库; Oracle高级复制
0引言
尽管人们小心谨慎,各种各样的灾难仍不可避免,如系统硬件故障、网络故障、机房断电甚至火灾、地震,广为人知的“9·11”事件就是触目惊心的例子[1]。这些灾难造成了重要数据的丢失,影响了企业的正常运转[2]。另外,激烈的市场竞争迫使企业高层寻找更为科学、系统、有效的辅助决策技术和整体解决方案来处理日益复杂的公司事务。数据挖掘就成了很好的选择之一,但是数据挖掘需要大量的生产数据,有时甚至是实时的生产数据。如果直接在生产系统上进行数据挖掘,必然会影响到生产的效率,并将严重威胁生产的稳定运行。如何在灾难发生时能够保留生产数据,并启用异地容灾系统及时恢复生产,如何把生产数据及时传递到数据仓库供数据挖掘使用,这些是现代企业需要面对的共同问题。
近年来为了解决上述问题,许多企业不惜耗费巨资来分别建立异地容灾系统和数据仓库。但遗憾的是,很多系统由于无法及时准确地同步生产数据,不能有效地运行。鉴于此,笔者设计并开发了一套基于Oracle高级复制技术的数据同步软件,实现了将一个数据容量为3TB的Oracle 9i RAC数据库的生产数据及时准确同步到异地容灾系统和数据仓库。该系统不仅将对原生产系统的影响降至最小,还极大地降低了项目费用。
1软件模型
该软件的功能模型图如图1所示。
中国大学排名
(1)初始同步模块
该模块主要是在表进行初始同步时使用的;它能够根据实际需要生成物化视图及其索引的创建语句,并完成表的初始同步。如果没有特别的要求,则调用普通初始同步子模块进行目的端表的初始同步,创建语句将从源数据库获取;如果有特别的要求,如按指定的分区初始同步或者按照一定的条件进行初始同步,则会根据这些要求调用分区初始同步或条件初始同步子模块生成特定的创建语句来进行目的端表的初始同步。该模块能够批量自动进行表的初始同步,从而大大减少了人工干预,保证了初始同步的准确性和自动化。
(2)调度模块
由于源端的数据在时刻变化着,在初始同步模块的基础上需要有一个调度模块将这些不断变化的数据同步到目的端,使目的端与源端始终保持数据一致性。该模块中的增量调度子模块是在表的增量同步过程中使用的,并能根据刷新间隔要求对目的端表进行及时准确的刷新;完全刷新调度子模块是在对表进行重新同步时使用;特殊要求调度模块是给需要做特殊同步的表使用的,如需要暂时停止同步、在每天的固定时间不同步等。
(3)监控模块
该模块是为了及时发现同步中断和同步效率低的表。由于其告警方式为短信告警,可以实现任何时间、任何地点的告警,保证了能在第一时间发现同步的中断以及同步效率低下的情况,实现了异常处理的及时性。
(4)错误处理模块
该模块主要是处理同步刷新过程中出现的各种错误。通过对捕获的错误进行相应的处理,从而保证同步能够稳定、高效地运行。另外,由于Oracle高级复制技术自身存在一定的缺陷,需要使用该模块来捕获造成数据不准的源头,并进行相应的处理。
(5)优化模块
(科教范文网http://fw.NSEAC.com编辑发布)
该模块主要是处理同步过程中出现的性能瓶颈,保证能够及时发现性能问题并采取相应的优化手段来加以维护,包括源端优化和目的端优化。
2系统设计和体系结构
数据仓库中同步的数据只要实现小时级别的同步就可以满足要求,但异地容灾的数据库实时性较高,基本上都要求实现分钟级别的同步。现在生产数据库总的数据量约为3 TB,容灾需要同步的数据量比数据仓库要大得多,而且数据仓库需要同步的数据都可以从容灾系统中获取;另外,生产数据库的性能和稳定程度对公司生产有直接的影响。因此在同步过程中,不仅应该尽量减少生产数据库的负担,还应该尽量避免同步过程中的异常情况,如网络故障、同步性能低下等问题[3]。基于以上考虑,笔者设计了如下方案:先将生产数据同步到异地容灾系统后,再以异地容灾系统为数据源同步数据到数据仓库。