Oracle 零数据丢失恢复一体机(ZDLRA)
实施企业级Oracle数据库备份以及管理零数据丢失恢复一体机(英文全称Zero Data Loss Recovery Appliance ,以下简称ZDLRA)的相关人员。
目的: 深入了解ZDLRA的体系架构,以及硬件软件的组成。并深入了解相关的核心组件技术。 内容:
一、简介 ZDLRA是一个云级别的工程系统设备,设计它的目的是为了保护所有跨企业的oracle数据库。几乎所有的oracle数据库的备份和恢复过程都可以在它上面进行,并且对存储的利用、性能监测和备份的管理更加高效。ZDLRA利用了RMAN的“incrementalforever”的策略可以在统一的存储设备上保存和管理多个Oracle数据库备份。利用持续的压缩、去重和数据块级别校验等技术来及时构建虚拟的数据库全备份。这个虚拟的数据库全备份其实就是一个数据库在一个时间点上的唯一镜像,ZDLRA通过被保护的数据库增量备份的索引来维护这个虚拟备份。ZDLRA是Oracle推出又一个优异的一体机产品,在性能,扩展性和可管理性都有着非常好的表现。 二、硬件架构 ZDLRA X4 硬件基础配置 ![]() ![]() 三、ZDLRA 环境 如下是ZDLRA的整体架构图,各个组成部分构成了Oracle对企业级数据库及数据库群的备份恢复解决方案。保护的数据库相当于客户端数据库,它们通过RMAN调用Oracle提供的备份模块把数据库备份从网络上传输到ZDLRA上,这个阶段用到了永远的增量备份和实时的redo传输技术。当备份数据传输到ZDLRA上时,通过Delta Store技术进行压缩、校验、存储并构成虚拟的数据库全备份。恢复目录和ZDLRA的一些Metadata数据都会保存在Metadata数据库中,数据库备份的位置信息也保存在这个数据库中。被保护的数据库就是利用恢复目录将备份数据传输到ZDLRA上。管理员们可以通过Oracle企业管理器对ZDLRA的整个环境进行管理和监控,比如设置数据库的保护策略,查看哪些数据库的哪些备份在磁盘上还是在磁带上。它还可以监控多个ZDLRA设备,和磁带设备。对于存储在ZDLRA上的数据库备份,可以通过OSB(Oracle Secure Backup)备份到特定的磁带库上,对备份数据进行有效的磁带归档,也可以复制数据到另一台ZDLRA上,便于数据的多重保护。
![]() 四、关键技术 4.1 保护的数据库 每个被保护的数据库使用ZDLRA作为rman备份和恢复的中心。它们将备份统一发送到ZDLRA上,并且使用matedata数据库上的恢复目录。在正常工作之前,需要进行一些访问配置,这个配置包括:创建适当的用户,分配访问权限,以及设置对数据库的保护策略,还包括ZDLRA与每个数据库之间的连接认证。这个阶段分为如下三部分: 4.1.1 备份模块 这个模块是oracle 提供的SBT(System Backup to Tape)程序库,RMAN通过它将备份的数据通过网络备份到ZDLRA上,它可以在不同的设备上传输数据,比如从一个磁带设备到ZDLRA上进行数据传输。备份模块必须安装在oracle home里,假如一个主机上装了两个oracle home, 一个11g的,另一个是12c的,一个备份模块只支持5个保护的数据库,我们必须在每个home下安装一个备份模块才能保护这个两个home下10个数据库。 4.1.2 保护策略 保护策略其实就是赋予多个受保护的数据的属性的集合,通过它更好的减少管理的时间。通过一个操作可以改变多个保护数据库的属性。为了适应不同数据库的备份和恢复需求,需要定义不同的策略。可以使用DBMS_RA.CREATE_PROTECTION_POLICY过程和企业管理器进行设置。如下表格是默认安装的保护策略: 目前支持保护的数据库版本有10.2.0.5,11.2.0.3,11.2.0.4,12.1.0.2及更高版本。其中一些特殊的功能在其中的版本中不支持。更多信息请访问My Oracle Support 文档(Doc ID 1995866.1)。 4.2 delta push delta push和delta store是ZDLRA上的核心技术,这两个技术解决了保护数据库备份的传输和在ZDLRA上的存储问题。首先我们先介绍一下delta push。它分成两个操作:永远的增量备份策略和实时的redo传输。 4.2.1 永远的增量备份策略 对于保护的数据库,只需要做一个0级的增量备份并传输到ZDLRA上就可以了,对于一个磁带的全备份,这个0级的增量备份不会包括提交的undo块或者当前没有用到的数据块。由于除了开始的时候做了一个0级的全备份,以后不需要全备份。因此永远的增量备份策略极大的减少了备份窗口的设置工作和备份负载。正常情况下,系统会自动执行如下操作:从保护的数据库上接受1级的增量备份的计划安排;验证传输过来的备份用来继续保护物理数据块的损坏;使用特殊的块级别的算法对备份进行压缩;将备份写到ZDLRA存储位置上的delta store里。 4.2.2 实时的redo传输 所有对数据库的改变全部保存在redo里,如果数据损坏时redo可以最大程度减少数据的丢失。用实时的redo传输特性可以最大程度避免当archived log 损坏时的数据丢失。当实时的redo传输启用时,在受保护的数据库端的内存中生成redo的改变,并立即将它们传输到ZDLRA上,验证之后,将其写到存储区域。当保护的数据库进行在线log switch时,ZDLRA将这些redo的改变转换和装配到压缩的归档日志文件的备份里。ZDLRA目录可以自动跟踪归档日志备份它自己的恢复目录。RMAN可以像正常一样还原和应用这些归档日志。这种机制有很多益处,第一,在rodo传输流突然中断时, ZDLRA 可以马上关闭正在到来的redo 流,并生成部分的归档日志备份,从而保护了事务最后对数据的改变。当检测到redo 传输流重新启动时,它会从保护的数据库端自动接收所有丢失的归档日志,这样ZDLRA才能保护预设的恢复窗口目标。另外一个益处是由于只是转换和传输在线redo 日志,不需要传输归档日志,从而减少了开销。 ZDLRA 不会应用传输过来的redo,只是在delta store里构建虚拟的0级备份和相关的1级的备,只有在用0级备份来恢复数据库时用到这些redo进行前滚操作。 4.3 ZDLRA metadata 数据库 这个数据库是ZDLRA上最关键的组件,它管理了所有备份的metadata和rman的恢复目录。下图展示了metadata 数据库的整体结构。 4.3.1 Delta Store 所有被保护的数据库的备份数据和归档日志的备份数据都会保存在Delta Store。具体的存储位置在ZDLRA的磁盘组里。 4.3.2 Delta Pools Delta Store相当于Delta Pools的集合。ZDLRA 接受保护数据库的备份数据后,将其放在delta pools 里,并建立相应的索引。ZDLRA构建虚拟的全备份其实就是一套完整的数据库文件块并保存在Delta Pool 里。每一个接受的备份的数据文件都会有一个单独的Delta Pool 。数据文件1是来自数据库A的,那么数据文件1就有一个单独的delta Pool,同理,数据文件100是来自数据库B的,那么数据文件100也有自己单独的Delta Pool。 Delta Store中最重要的技术就是构造虚拟全备份的技术。这种技术是依靠每天传输过来的增量备份构造一个虚拟的全备份。如下图所示,第一天(day0)构造出全备份,其它四天中,每天都会构造出增量备份数据的虚拟全备份。通过这种技术data store中可以储存基于每个时间点上完全的数据库镜像。 ZDLRA 提供一些功能对这个Delta Pools空间 进行自动有效的管理,他们包括:定义哪些备份在ASM里或是磁带里已经超出了恢复窗口和磁带的保留策略已经废弃和过期了。如果有恢复操作,标识哪些数据块不再需要。为了改善存储操作的性能,ZDLRA会对Delta Pool进行有效的存储优化。
4.4 ZDLRA存储 Oracle ASM提供了ZDLRA对数据库备份和归档redo log的物理共享存储。 在ZDLRA以外来看,有很多可选的文件系统路径来存放这些备份数据和redo日志。当实时的redo传输启用时,会在ASM里创建临时的存储区域来放置redo 流。并且不断搜集redo数据到归档日志文件,然后压缩这些归档日志文件的备份到ASM的存储区域。ZDLRA的存储位置为占用ASM磁盘组的空间。默认情况下,Delta pool 被存储在normal的磁盘组DELTA里。ZDLRA的medata的数据库放在了high冗余策略的磁盘组CATALOG中。 五、EM 管理 EM里可以对ZDLRA的各个组件进行管理。如下是管理界面,只作为参考。 ZDLRA 官方文档: https://docs.oracle.com/cd/E55822_01/AMAGD/amagd_concepts.htm#AMAGD573
|