“当我们建立生产系统时,我们的恢复战略是基于磁带备份的。我们还设置了 Oracle Data Guard:我原来将它看作是“可有可无”的可选附件。但在 2008 年,我们有一个 SAN 完全故障并且另一个 SAN 磁盘严重损坏,二者都间接导致电力中断。在这两种情况下,Oracle Data Guard 都使我们得以恢复而没有丢失任何数据。现在,我认识到它不是“可有可无的”,而是必需的!”— 英国牛津布鲁克斯大学数据服务经理 Rachel Slade
Oracle Data Guard 是针对企业数据库的最有效和最全面的数据可用性、数据保护和灾难恢复解决方案。它提供管理、监视和自动化软件基础架构来创建和维护一个或多个同步备用数据库,从而保护数据不受故障、灾难、错误和损坏的影响。
Data Guard 备用数据库可以位于距离生产数据中心几千英里外的远程灾难恢复网站上,也可以位于同一个城市、同一个校园,甚至同一个建筑物中。如果生产数据库由于计划中或计划外中断而变得不可用,Data Guard 可以将任意备用数据库切换到生产角色,从而可使停机时间减到最少并防止数据丢失。
Data Guard 提供:
Data Guard 是 Oracle 真正应用集群 (RAC) 的理想补充并可与其他 Oracle 高可用性 (HA) 解决方案(如 Oracle 闪回、Oracle Recovery Manager (RMAN))以及 Oracle 数据库 11g 的新数据库选件(包括 Oracle Active Data Guard 和 Oracle Advanced Compression)结合使用,以提供最高级别的数据保护、数据可用性和资源利用率。
下图为 Oracle Data Guard 的概括示意图。
Data Guard 优点
Oracle Data Guard 功能组件概述
Data Guard 配置
一个 Data Guard 配置包括一个生产数据库(或主数据库)和最多九个备用数据库。Data Guard 配置中的数据库通过 Oracle Net 连接,地理上可能非常分散。对数据库所处位置没有限制,只要它们能互相通信就行。
Data Guard 体系结构图
重做应用和 SQL 应用
备用数据库最初是从主数据库的一个备份副本创建的。一旦创建了备用数据库,Data Guard 会自动将主数据库重做数据传输给备用系统,然后将重做数据应用到备用数据库中,从而保持备用数据库为与主数据库同步的副本。
Data Guard 提供了两种方法将这些重做数据应用到备用数据库中,并使之与主数据库同步。这两种方法与 Data Guard 支持的两种类型的备用数据库对应。
物理备用数据库提供与主数据库在物理上完全相同的副本,磁盘上的数据库结构与主数据库在块级别上完全相同。数据库模式(包括索引)都是相同的。重做应用技术使用标准 Oracle 介质恢复技术在物理备用数据库上应用重做数据。除传统的 Data Guard 功能外,适用于 Oracle 数据库 11g 的 Active Data Guard 选件使物理备用数据库可以在应用来自主数据库的更新时开启只读功能。这使物理备用数据库可以减少主数据库在处理只读查询和报表时的负担。这也使得对备用数据库是否时刻与主数据库同步的验证变得简单。
虽然数据的物理组织和结构可能不同,但逻辑备用数据库与生产数据库包含相同的逻辑信息。SQL 应用技术通过将从主数据库接收到的重做数据转换成 SQL 语句然后在备用数据库上执行 SQL 语句,使逻辑备用数据库与主数据库保持同步。这样,在将 SQL 应用到逻辑备用数据库上的同时,可以开启逻辑备用数据库的读写功能并访问逻辑备用数据库来进行查询和报表操作。
角色管理
使用 Data Guard,数据库的角色可以在确保该过程中没有数据丢失且停机时间最少的前提下从主数据库切换到备用数据库,反之亦然。共有两种角色转换 — 转换和故障切换。转换是主数据库和它的一个备用数据库间的角色调换。通常在主系统计划维护中执行。在转换期间,主数据库将从主数据库角色转换为一个备用角色,而备用数据库将转换为主数据库角色。转换无需重新创建任何数据库。故障切换是备用数据库在主数据库突然中断时切换为主数据库角色。当问题得到修复后,故障主数据库可以使用 Oracle 闪回数据库迅速恢复为新主数据库的备用数据库,大大减少了将配置恢复为受保护状态的时间和工作量。管理员可以选择手动执行故障切换,也可以将 Data Guard 配置为自动检测主数据库故障并自动执行向备用数据库的故障切换(无需人工干预)。
Data Guard 保护模式
在某些情况下,业务数据是无论如何不能丢失的。而在有些情况下,某些应用程序需要最佳的数据库性能并能承担数据丢失风险。Data Guard 提供三种不同的数据保护模式来满足这些不同需求:
最大保护 — 该模式提供最高级别的数据保护。数据从主数据库同步传输到备用数据库,而且仅当重做数据至少在该模式中配置的一个备用数据库上可用时,才执行传输。如果该模式中配置的最后一个备用数据库不可用,主数据库上的处理将停止。甚至在多方出现故障的情况下,该模式也可以确保无数据丢失。
最大可用性 — 该模式和最大保护模式相似(包括零数据丢失)。然而,如果一个备用数据库不可用(例如,由网络连接问题导致),主数据库上的处理仍将继续。当错误修复后,备用数据库会自动与主数据库同步。该模式在单一故障时可以实现无数据丢失(例如,网络故障、主站点故障)。 . .
最佳性能 — 该模式对主数据库提供相对较少的数据保护,但是提供比最大可用性模式更佳的性能。在该模式中,在主数据库处理事务时,重做数据异步传入备用数据库。主数据库的提交操作在完成主数据库上的写入操作之前不等待备用数据库确认收到重做数据。
Data Guard Broker
Oracle Data Guard Broker 是一个分布式管理框架,它不但自动化了 Data Guard 配置的创建、维护和监视,并对这些操作进行统一管理。可以通过 Oracle 企业管理器(它使用 Broker)或 Broker 的专用命令行界面 (DGMGRL) 执行所有管理操作。Data Guard Broker 11g 还可以使用最大可用性或最佳性能模式将 Data Guard 配置为在数据库出现故障时自动切换。
Oracle Data Guard 11g 中有什么新特性?
Data Guard 11g 使用 Data Guard broker 命令行界面或企业管理器网格控制简化了实施和管理。Data Guard 11g 增加了新的损坏检测方法,避免了数据丢失并减少了停机时间。Data Guard 11g 在最大可用性和最佳性能模式中均包含了灵活的配置选项来实现快速、自动的故障切换。Data Guard 11g 物理备用数据库可以通过在应用处于活动状态时开启只读功能来减少主数据库处理查询和报表时的负担,从而有效地创建高级别的性能保护和对每一个 Data Guard 环境的高级别投资回报。以下的部分将重点介绍 Oracle Data Guard 11g 的主要新特性。有关详细信息,请参见以下内容:
快照备用数据库
这是从物理备用数据库创建的一种新的备用数据库。创建完成后,快照备用数据库可以开启读写功能来处理独立于主数据库的事务,以用于测试或其他目的。快照备用数据库将继续从主数据库接收并存档更新,然而,从主数据库接收到的重做数据在快照备用数据库转变回物理备用数据库后才会得到应用,而作为快照备用数据库时应用到该数据库的所有更新将全部废弃。快照备用数据库开启读写功能后才能从主数据库接收存档数据,这意味着生产数据始终处于受保护状态。
对 Oracle Active Data Guard 选件的支持
Active Data Guard 选件通过将资源密集型负载从生产数据库卸载到一个或多个同步的备用数据库来提升服务质量。Active Data Guard 针对查询、实时报表、基于 Web 的访问等支持对物理备用数据库进行只读访问,同时可继续应用接收自生产数据库的更改。Active Data Guard 还通过支持使用物理备份数据库进行 RMAN 块更改和快速增量备份,消除了在生产数据库上执行备份引起的开销。
故障切换的改进
Data Guard 10g 第 2 版引入了自动故障切换,通过采用最大可用性保护模式 (SYNC) 的快速启动故障切换这一新特性来实现。Data Guard 11g 通过添加用户可配置的数据丢失阈值将快速启动故障切换支持扩展到最佳性能模式 (ASYNC) 中,从而确保了自动故障切换永远不会导致数据丢失超过所需的恢复点目标 (RPO)。
用户还可以配置为基于指定的健康检查条件或任何所需 ORA-nnnnn 错误立即执行自动故障切换,而无需等待快速启动故障切换阈值过期。
可以使用新的 DBMS_DG PL/SQL 包让应用程序通知快速启动故障切换观察器进程启动自动故障切换。
其他改进使跨一系列 Data Guard 配置的故障切换更加迅速 — 包括手动和自动的故障切换,以及逻辑和物理备用数据库。
增强的数据保护
物理备用数据库可以检测由于以下原因导致的丢失的数据文件写入:存储硬件和固件故障造成主数据库或备用数据库数据损坏。Data Guard 将逐块比较备用数据库和传入重做流的版本。如果版本有差别,将会提示丢失写入。然后用户可以故障切换到备用数据库并还原数据一致性。
重做传输的改进
Data Guard 11g 实施新的流设计,大大增加了重做传输在最佳性能保护模式中(在异步重做传输期间和使用 ARCn 进程解决间隔时)的吞吐量。这些改进的优点在高延迟 — WAN 环境中 — 将尤为突出。
对最大可用性模式中同步重做传输的改进进一步降低了网络延迟对主数据库吞吐量的影响,增加了能够允许同步零数据丢失保护的应用程序的数量,加大了主数据库和备用数据库之间的距离(这对此类实施非常有用)。
使用 Oracle Advanced Compression 选件,可在网络或备用数据库中断后获得更快的备用数据库重新同步。Advanced Compression 选件的一个功能是对由 Data Guard 传输的存档日志执行自动网络压缩以解决备用数据库的间隔。此特性在带宽受限的高延迟网络环境中尤为突出。
应用性能的改进
平行介质恢复大大提高了所有负载配置文件的重做应用性能(物理备用数据库)。
对逻辑备用数据库 SQL 应用的改进提高了向未分区且不包含 LOB、LONG 或 XML 类型列的表执行插入和更新的应用性能。此外,SQL 应用现在并行应用并行 DDL,而不是像在以前的版本中那样按序应用。
临时逻辑备用数据库
用户可以将物理备用数据库转换为临时逻辑备用数据库以实现滚动数据库升级,升级结束后,再将备用数据库恢复为物理备用数据库的原始状态 — 使用 KEEP IDENTITY 子句。这适用于希望执行滚动数据库升级又不想在创建逻辑备用数据库所需的冗余存储设备上进行投资的物理备用数据库用户。
Data Guard 配置的细粒度监视
Oracle 企业管理器已得到改进,可提供对 Data Guard 配置的最新细粒度监视,这样管理员可以针对管理该配置做出有依据且有效的决策。
Data Guard 的 RMAM 改进
RMAN DUPLICATE 可以直接从主数据库在备用系统中创建备用数据库,任一位置都无需任何临时存储。
除之前讨论过的实时查询外,Active Data Guard 选件还支持物理备用数据库上的 RMAN 块更改跟踪,从而实现物理备用数据库的快速增量备份。测试显示,较之传统的增量备份,使用 RMAN 块更改跟踪时以合适的更改速率进行数据库增量备份快达 20 倍。
改善的安全性
SSL 身份验证可用于代替口令文件对重做传输进行身份验证。注意:SSL 身份验证需要使用 PKI 证书、Oracle Advanced Security 选件和 Oracle Internet Directory。
改进的 SQL 应用支持
SQL 应用可管理性
调度程序作业可以使用 DBMS_SCHEDULER 包在备用数据库上创建,并且可以与相应数据库角色相关联以便以所需角色运行(例如,数据库是主数据库、备用数据库或二者兼具)。
结合使用 Oracle RAC 数据库和 SQL 应用的转换不再需要关闭所有实例而只需关闭每一个 Oracle RAC 集群中的第一个实例。
还可动态设置 Data Guard SQL 应用参数,而无需重新启动 SQL 应用。使用 DBMS_LOGSTDBY.APPLY_SET 包,您可以动态设置初始化参数,从而提高逻辑备用数据库配置的可管理性、运行时间和自动化程度。
Data Guard Broker
企业管理器网格控制 11g
摘自:http://www.oracle.com/technology/global/cn/deploy/availability/htdocs/DataGuardOverview.html