远程磁盘镜像是一种被广泛应用的数据保护技术,然而在对Oracle数据库进行备份的实际应用中,由于该技术本身所固有的局限,使得其无法很好地实现数据库的完整备份,为此,本文提出以Oracle的容灾技术Data Guard,来实现Oracle数据库的完整备份。
Data Guard是Oracle公司提出的数据库容灾技术,它提供了一种治理、监测和自动运行的体系结构,用于创建和维护一个或多个备份数据库。与远程磁盘镜像技术的根本区别在于,Data Guard是在逻辑级,通过传输和运行数据库日志文件,来保持生产和备份数据库的数据一致性。一旦数据库因某种情况而不可用时,备份数据库将正常切换或故障切换为新的生产数据库,以达到无数据损失或最小化数据损失的目的,为业务系统提供持续的数据服务能力。
Data Guard体系结构
一个Data Guard环境可配置一个生产数据库和最多至9个备份数据库系统,生产和备份数据库之间通过Oracle Net技术互联,并且没有任何距离上的限制(Data Guard体系结构如图2所示)。
物理备份数据库 物理上提供了与生产数据库在数据块级的一致性镜像。物理备份数据库是通过Redo Apply技术来保障数据镜像能力。
逻辑备份数据库 通过SQL Apply(即Log Miner)技术,将接收到的日志文件还原成SQL语句,并在逻辑备份数据库上执行,从而达到数据一致性的目的。
Data Guard的保护模式
● 最大保护模式: 该模式以牺牲生产数据库性能为代价,换取无数据损失的能力。
● 最大可用模式: 该模式也能提供无数据损失,对生产数据库的影响较小。
● 最大性能模式: 该模式答应少量数据损失,但能为生产数据库提供最大性能。
与远程磁盘镜像技术比较
Data Guard和远程磁盘镜像技术的总体比较
远程磁盘镜像技术是存储层的数据保护方案,对于Oracle数据库而言,Oracle Data Guard提供了更有效、可行,更完备的数据库容灾方案。以下是两种方案的总体比较:
异步远程磁盘镜像技术的潜在问题
远程磁盘镜像技术可采用异步方式,达到降低网络延时、减轻对生产系统影响等目的。但用这种方式进行Oracle数据库的镜像,却存在一个潜在问题:无法保证写操作顺序的一致性(write-order consistency),导致出现数据坏块的可能性增大。最坏情况,可能导致备份数据库无法打开。
而Data Guard基于逻辑级,传输的是与业务逻辑完整性相关的日志文件。Data Guard是以日志文件为边界,会自动检验日志文件的完整性,并可进行断点日志文件的检查(log gap detection),通过FAL后台进程自动重传断点日志文件。因此,备份数据库的一致性会得到保证。
网络传输量分析
网络传输量的大小直接关系到容灾方案实施的可行性。在原理上,Data Guard只是传输一份日志文件,而磁盘镜像技术将传输数据文件、联机日志、归档日志、控制文件等所有发生变化的文件。例如,针对交易处理,Data Guard只传输相应DML语句的日志信息,而磁盘镜像技术将传输该交易所涉及的所有数据块,以及归档日志等数据。根据统计资料显示,磁盘镜像的网络传输量是Data Guard的7倍,而磁盘I/O次数是Data Guard的27倍。
以某银行业务系统为实例: 该系统日交易量达到高峰时,日志文件将有60GB,网络传输率要求6Mbps/秒。使用磁盘镜像技术,网络传输率则至少会达到6×7 = 42Mbps/秒。假如还要考虑DB2、CICS、MQ等系统对线路的复用,以及系统的扩充,即便采用155Mbps的线路,从广域网络建设和运行成本等考虑,磁盘镜像进行数据库容灾也难以实施。
远程灾备分析
远程磁盘镜像技术由于受底层通信技术(光纤、ESCON等)限制,一般都有距离限制,如几十或百公里,假如要在广域网实施远程磁盘镜像,则需要大量的网络中继和转发设备,这样,网络设备投入将大量增加,而且网络延时的增加,对生产系统的影响也将加大。
相比之下,Data Guard基于Oracle Net Services(即标准的TCP/ip协议) 传输数据。TCP/IP协议是ESCON之上的传输协议,由于在信息包转发、路由和拥塞控制等方面更为优化,同时TCP/IP与底层通信协议无关(以太网、ATM、SONET等),而且,TCP/IP可以并行地进行若干信息包的传输。因此,TCP/IP的效率更高、网络延时更低,对生产系统的影响也更小。
数据保护能力分析
在各种故障中,故障率最高的是磁盘故障(Corruption)。
一旦出现磁盘坏块,磁盘镜像技术将忠实地将这种错误传播到备份数据库的磁盘中,导致备份数据库无法使用。而由于Data Guard传输的是日志文件,而且传输之前对日志文件的完整性进行了校验,因此,不可能发生因系统磁盘出现物理坏块,或磁盘控制器故障等,将数据块写坏而导致备份数据库出现坏块的情况。
投资回报率(ROI)分析
Data Guard软件对硬件没有非凡的要求,网络只要求TCP/IP。备份数据库可以建立在相对低档的系统和廉价的磁盘阵列中。而磁盘镜像技术不仅需要单独购买昂贵的磁盘镜像软件,而且对硬件要求也很苛刻。
此外,Data Guard具有备份数据库的查询统计功能,而磁盘镜像技术建立的备份数据库在正常情况下处于闲置状态,只有在发生故障时,才能投入应用;为降低生产数据库的负载,Data Guard还可以将物理备份功能移植到备份数据库进行,备份数据库产生的物理备份数据,同样可用于生产数据库的恢复操作。
互为补充的关系
在实际应用中,Oracle数据库与远程磁盘镜像技术应该是互为补充的关系。理论上,远程磁盘镜像可在存储层实现所有系统的容灾,而Data Guard则提供了更有效、可行、成本更低的Oracle数据库灾备方案。Oracle已推出了OSCP(Oracle's Storage Compatibility PRogram)计划,有关存储和硬件厂商可以与Oracle相关技术进行兼容性验证,用户也可通过验证名单选择全面的灾备技术。Oracle针对灾备系统的应用需求,提出了以下基本建议:
● 对Oracle数据库系统,选择Data Guard方案;
● 对文件系统和非Oracle系统,选择远程磁盘镜像技术。
点评:Oracle——适用于数据库的高效备份
亮点:Oracle Data Guard容灾方案是专为数据库备份而设计的,它提供了远程磁盘镜像技术所无法实现的功能,非凡是在远程数据库备份过程中,Data Guard的优势更加明显。对于Oracle数据库远程异步备份而言,Data Guard则提供了更有效可行、成本更低的Oracle数据库灾备方案,而远程磁盘镜像技术却无法保证写操作顺序的一致性,导致数据坏块的可能性增大,甚至有可能使备份数据库无法打开。另外在网络资源占用上,Data Guard只传输相应DML语句的日志信息,而磁盘镜像技术传输交易所涉及的所有数据块及归档日志数据,其传输量是Data Guard的7倍。
更为要害的是,磁盘镜像技术将忠实地将源磁盘中的错误传播到备份数据库的磁盘中,导致备份数据库无法使用。而Data Guard传输的是日志文件,而且传输之前对日志文件的完整性进行了校验,因此,不可能发生损坏数据块的现象,使得数据安全性得到提高。
不足:在实际应用中,Oracle Data Guard与远程磁盘镜像技术应该是互为补充的关系,远程磁盘镜像是在存储层实现所有系统的容灾,而Oracle Data Guard方案仅仅适用于对Oracle数据库系统的容灾备份。