Oracle DataGuard在灾备系统中的应用研究

2020-07-03 02:49袁超
科学与信息化 2020年13期

袁超

摘 要 在多数企业里,信息化支撑着各種业务。很多企业关注的不仅仅是业务的安全问题,对于业务的容灾能力、灾难发生后的恢复也非常重视。本文对甲骨文公司DG产品进行了研究,结合本人参与的灾备系统实践经验,为企业的灾备系统建设提供了一种容灾技术方案和可借鉴的建设经验。

关键词 灾备系统;容灾技术:DATAGUARD

引言

灾备系统也称为灾难备份系统,它是企业预先建立的、具备业务运行环境的备份系统,在短时间内能恢复业务系统的正常运行。

通常企业的业务系统由许多硬件和软件组成,而数据库系统是其中最重要的一环,因为它存储着企业最有价值的资产:数据。当灾难发生导致生产系统无法提供服务时,灾备系统就需要暂时接管。ORACLE DG技术通过将生产数据同步到灾备,并可以在短时间内完成主备角色切换,从而保证业务系统的可用性。

1ORACLE DG技术原理

1.1 DG概述

通过创建、维护、管理和监视一个或多个备库,使生产库能够应对灾难的发生而不丢失数据,Oracle DG提供的是一整套技术手段。这些备库作为生产库的副本由DG来进行维护。当生产库计划内或计划外停机无法提供服务时,DG可以将任何备库切换为生产角色,从而降低业务的停机时间。

1.2 DG工作原理

当主库的LGWR进程写日志时,LNS进程从Redo buffer中读取日志数据,通过ONS将日志数据传输到备库上;备库上的RFS进程接收日志数据并写到备用日志文件中;应用服务验证日志数据并应用,从而与主库数据保持一致。

1.3 DG日志传输方式和备库类型

DG有两种日志传输方式:同步和异步。

同步模式下只有当LNS进程确认日志数据被传输到备库且被应用后,主库上的提交操作才会被成功执行。异步模式下LGWR无须等待LNS的确认信息即可在主库上执行提交,对主库的性能几乎没有任何的影响。

DG包含三种备库类型:

物理备库:主备库的物理结构完全相同。通过日志应用与主库保持同步。逻辑备库:与主库有相同的逻辑信息,但物理结构可能不同。通过SQL应用与主库保持同步。快照备库:它从主库接收日志数据,但并不应用。只有当它转换为物理备库时,才开始应用日志数据。

1.4 DG保护模式和故障切换

DG支持最大性能、最大可用、最大保护三种保护模式:

运行在最大性能模式时主库事务正常提交,备库故障不会影响到主库的运行;运行在最大可用模式时要求主库的事务能够提交的条件是至少一个备库收到日志数据后;最大保护模式下主库日志不能写入备库时,会自动关闭。

DG提供了switchover和failover两种切换方法。

failover是主库发生灾难时的故障切换;switchover是计划内的角色转换。

2ORACLE DG在灾备项目中的实际应用

2.1 DG部署环境要求

在实际项目的DG部署中需要满足以下关键要求:

(1)主备库服务器的操作系统版本必须一致;

(2)主备库的数据库软件版本、补丁号必须一致;

(3)备库安装数据库软件后,不必创建库;

(4)主备库的DB_UNIQUE_NAME必须不同;

(5)生产和灾备之间的网络须连通;

(6)建议采用相同型号和配置的服务器。

2.2 日志传输方式和保护模式选择

灾备建设中建议最大保护、最大可用模式使用同步日志传输模式,最大性能使用异步日志传输模式。

在实际的实施过程中,业务系统和数据丢失之间的关系需要平衡。如果采用最大保护模式,虽然可以实现零数据丢失,但是只要备库出现问题,主库就会自动关闭,业务系统就会中断,此种模式下建议配置2个以上的备库。最大可用模式虽然也是同步传输,但不会立即关闭,它会降级到最大性能模式,直到故障解除。最大性能模式不受备库故障的影响,而且能在备库恢复后补传日志数据。在实际的项目中,如果生产和灾备间的网络质量能够保证,延时能低于5ms,建议采用最大可用性模式;如果延时较大,建议采用最大性能模式。

2.3 备库类型的选择

灾备系统建设的初衷就是作为生产系统的备份,另外再分担部分业务系统查询工作。11G发布后,新增了ADG功能,备库与主库同步时,能以只读模式打开,可以进行数据查询。由于物理备库是基于块对块级别拷贝技术,因此效率要高于逻辑备库,且不会有SQL性能问题。在实际应用中,建议配置物理备库,完全能满足企业需求。

2.4 灾备系统切换演练

通过对灾备系统进行定期切换演练,可以验证和检查灾备系统的容灾功能。数据库层面可通过DG的switchover来验证。

switchover和failover之间的差异是:switchover是计划内的角色转换,不会破坏现有DG架构。因而,可以更安全地执行切换演练。而failover则是破坏现有的DG架构,虽然可以执行切换演练,但演练结束后需要重新配置DG架构,对于以演练为目的切换来说,代价太大。所以在实际的灾备切换演练中,执行switchover就能达到目的。可以使用DG Broker工具来执行切换,只需一条命令,一般能在2分钟内切换完成。

2.5 网络带宽要求

假设主库的日志数据在业务最繁忙时生成的速度为1MB/s,那么对带宽传输速度的最低要求就是1MB/s,带宽的大小为1MB/s*8=8M,考虑到网络损耗假设为80%,实际带宽需求为10M。计算公式为:1/0.8*8=10Mbps。

在实际的项目中,不仅要考虑带宽是否满足日志传输的要求,还要考虑是否满足灾难恢复的要求。带宽越大,灾难恢复花费的时间就越少,对业务的影响就越小。所以一般要求带宽必须为千兆网络。

3结束语

企业都希望自己的数据能得到最好的保护,不管发生何种灾难,数据都不会丢失。灾备系统是一个复杂的系统工程,可以提升企业应对灾难发生的能力。而Oracle DG容灾技术能完善企业的灾备系统,避免数据丢失,保护企业的投资,对企业来说具有重要意义。

参考文献

[1] 佚名.Oracle官方文档:Oracle? Data Guard Concepts and Administration 11g Release 2 (11.2)[ED/OL].https://www.doc88.com/p-6701552258020.html,2016-11-13.

[2] Oracle官方文档:Oracle? Data Guard Concepts and Administration 12c Release 2 (12.2)[ED/OL].https://docs.oracle.com/database/121/SBYDB/title.htm,2017-5-8.