WatchStor.com — 领先的中文存储网络媒体 | 51CTO旗下网站

评测导购 > 机房 > 正文

异地容灾是企业发展的双刃剑

Watchstor.com  佚名丨2009-10-16 16:24 标签:机房 

在建立异地容灾系统的时候,有些企业没有按照实际来做盲目的投资,最后导致了企业资金的大量流失。异地容灾的建设时有许多要注意的地方的。本文对于想要建立异地容灾的企业网络管理员来说会有些帮助。

近年来为了解决上述问题,许多企业不惜耗费巨资来分别建立异地容灾系统和数据仓库。但遗憾的是,很多系统由于无法及时准确地同步生产数据,不能有效地运行。鉴于此,笔者设计并开发了一套基于Oracle高级复制技术的数据同步软件,实现了将一个数据容量为3TB的Oracle 9i RAC数据库的生产数据及时准确同步到异地容灾系统和数据仓库。该系统不仅将对原生产系统的影响降至最小,还极大地降低了项目费用。

1软件模型

(1)初始同步模块

该模块主要是在表进行初始同步时使用的;它能够根据实际需要生成物化视图及其索引的创建语句,并完成表的初始同步。如果没有特别的要求,则调用普通初始同步子模块进行目的端表的初始同步,创建语句将从源数据库获取;如果有特别的要求,如按指定的分区初始同步或者按照一定的条件进行初始同步,则会根据这些要求调用分区初始同步或条件初始同步子模块生成特定的创建语句来进行目的端表的初始同步。该模块能够批量自动进行表的初始同步,从而大大减少了人工干预,保证了初始同步的准确性和自动化。

(2)调度模块

由于源端的数据在时刻变化着,在初始同步模块的基础上需要有一个调度模块将这些不断变化的数据同步到目的端,使目的端与源端始终保持数据一致性。该模块中的增量调度子模块是在表的增量同步过程中使用的,并能根据刷新间隔要求对目的端表进行及时准确的刷新;完全刷新调度子模块是在对表进行重新同步时使用;特殊要求调度模块是给需要做特殊同步的表使用的,如需要暂时停止同步、在每天的固定时间不同步等。

(3)监控模块

该模块是为了及时发现同步中断和同步效率低的表。由于其告警方式为短信告警,可以实现任何时间、任何地点的告警,保证了能在第一时间发现同步的中断以及同步效率低下的情况,实现了异常处理的及时性。

(4)错误处理模块

该模块主要是处理同步刷新过程中出现的各种错误。通过对捕获的错误进行相应的处理,从而保证同步能够稳定、高效地运行。另外,由于Oracle高级复制技术自身存在一定的缺陷,需要使用该模块来捕获造成数据不准的源头,并进行相应的处理。

(5)优化模块

该模块主要是处理同步过程中出现的性能瓶颈,保证能够及时发现性能问题并采取相应的优化手段来加以维护,包括源端优化和目的端优化。

2系统设计和体系结构

数据仓库中同步的数据只要实现小时级别的同步就可以满足要求,但异地容灾的数据库实时性较高,基本上都要求实现分钟级别的同步。现在生产数据库总的数据量约为3 TB,容灾需要同步的数据量比数据仓库要大得多,而且数据仓库需要同步的数据都可以从容灾系统中获取;另外,生产数据库的性能和稳定程度对公司生产有直接的影响。因此在同步过程中,不仅应该尽量减少生产数据库的负担,还应该尽量避免同步过程中的异常情况,如网络故障、同步性能低下等问题。基于以上考虑,笔者设计了如下方案:先将生产数据同步到异地容灾系统后,再以异地容灾系统为数据源同步数据到数据仓库。

(1)生产系统数据同步到异地容灾系统

生产系统与异地容灾系统之间是通过百兆网连接的;生产系统的数据库是Oracle 9i RAC,总的数据量大约为3 TB,涉及五千多张表。对这些表进行分析归类,发现容灾系统真正需要实时同步的表大约只有五百张,数据量约为1 TB,只要能够把这五百张表的变更及时准确地进行同步,即可在生产系统发生灾难时,启用异地容灾的营业应急系统。鉴于此,本系统数据库使用Oracle 9i,同步软件实时同步这关键的五百张表的变更。这样大大减少了同步的数据量,也最大限度地减少了生产系统的负担。从同步运行情况看,该同步软件对生产系统的影响可以忽视。

(2)异地容灾系统数据同步到数据仓库

异地容灾系统与数据仓库之间是通过百兆网连接的;数据仓库需要的生产数据从异地容灾系统数据库获取,因此数据仓库也采用Oracle 9i数据库。数据仓库需要实时同步的表大约为三百张。从同步运行情况看,同步生产数据延时大约为十分钟,能满足数据仓库的要求,并且与生产环境没有任何关系,不会对生产环境造成影响。该系统结构使系统在各个实现层次上均具有明确的界限和分工,既避免了相互影响,简化了数据同步的难度,又实现了对生产系统的影响达到最小化。该结构使得系统易于维护、扩展性好、安全性好、稳定性好。

3异地容灾采用的关键技术

同步软件采用的关键技术为Oracle高级复制技术。该技术能将Oracle数据库中的数据同步或异步拷贝到不同的数据库中。将数据复制到复制环境数据库的技术实体叫做物化视图。物化视图可以是只读的、可更新的或可写的。

该技术在不同Oracle数据库之间进行复制时可以是同步的,也可以是异步的。同步复制,即复制数据在任何时间、任何复制节点均保持一致。如果复制环境中的任何一个节点的复制数据发生了更新操作,这种变化会立刻反映到其他所有的复制节点上。异步复制,即所有复制节点的数据在一定时间内是不同步的。如果复制环境中一个节点的复制数据发生了更新操作,这种改变将在不同的事务中被传播和应用到其他所有复制节点。这些不同的事务间可以间隔几秒、几分种、几小时,也可以是几天之后。复制节点之间的数据临时是不同步的,但传播最终将保证所有复制节点间的数据一致。

(1)异地容灾系统使用异步可写物化视图方案

启动营业应急系统要求容灾数据库的这些物化视图是可写的,这样才能保证系统的正常运行,但是又不要求这些变更数据同步至生产系统,因为现在的生产系统已经遭到破坏。可写的物化视图允许用户通过在这个可写的物化视图上进行插入、更新和删除行的操作,但是这些操作不会同样地插入、更新和删除主表或主实体化视图上的行。因此容灾数据库中应该使用这种可写的物化视图;同时容灾数据库的表结构、索引、存储结构应该与生产数据库保持一致,使用该同步软件中的普通初始同步方式来完全拷贝生产系统的表和索引定义。 

当灾难发生时,应该首先停止生产系统到容灾系统的同步软件,然后启动营业应急系统以保证继续营业;同时因为同步延时了几分钟(最长不超过5 min),所以有可能会丢失少量数据。部分丢失的数据需要通过营业补录的方式解决。

(2)数据仓库是使用异步只读物化视图的方案

数据仓库只要求对读取生产的数据进行分析,因此数据仓库的这些物化视图是只读的就可以了。只读物化视图提供只读的访问表数据。这个表数据来源于一个主体站点或一个主物化视图站点,因此数据仓库中采用这种只读物化视图。另外,异地容灾数据仓库在分析时一般需要扫描这些物化视图,需要建立与生产数据库不同的表和索引结构,如对表进行分区、建立数据分析需要的索引等。因此应该使用该同步软件中的分区初始同步和条件初始同步方式来建立合适的物化视图及索引。

4结束语

从这次生产数据的及时准确同步到异地容灾和数据仓库的实施过程中,笔者通过摸索解决了同步过程中的性能问题,从而最终解决了Oracle高级复制技术同步的可行性,保证了同步的效率;在实施和维护的过程中,笔者还逐步发现了该技术本身存在的问题并注意加以解决,从而保证了同步的稳定性和准确性。从这次同步实施过程看,任何技术都存在缺陷,但是本文的探索和创意可以弥补这些缺陷。该系统对于很多企业在设计数据仓库和异地容灾系统中数据同步的方案时有一定的推广意义。

【编辑推荐】

  1. 容灾备份理想的合作伙伴
  2. Web 2.0数据的类型解析
  3. 容灾备份见招拆招经典详解
  4. 远程容灾备份简要方式概括
  5. 容灾备份极品助理Oracle11gActive DataGuard

相关资讯

今日微信独家

《华尔街日报》报道日前援引知情人士的消息称,由于被美国政府以国家安全问题为由进行调查,联想斥资23亿美元收购IBM低端服务器业务的交易陷入了停滞状态。
关注新浪官博 订阅微信订阅号

订阅焦点周刊

论坛与活动

2016中国数据加速峰会直播专题
2016中国数据加速峰会直播专题[详细]
点击查看

精彩视频

最新文章

1111111
1111111
asdasd
asdasd
同有科技应用型大数据存储在南京掀起智能风暴
同有科技应用型大数据存储在南京掀起智能风暴
斯蒂芬斯蒂芬
斯蒂芬斯蒂芬
京东双11技术备战 构建多中心交易系统
京东双11技术备战 构建多中心交易系统