1 Oracle Data Guard 介绍
Oracle Data Guard概念和管理10g版本2
Oracle Data Guard 确保企业数据的高可用性、数据保护以及灾难恢复。Data Guard 提供了一套全面的服务来创建、维护、管理和监控一个或多个备数据库,使得生产 Oracle 数据库从灾难和数据损坏中得以幸存。Data Guard 维护这些备数据库作为生产数据库的事务一致性拷贝。然后,如果生产数据库因为计划的或计划外的中断而变得不可用。Data Guard 能切换任何备数据为生产角色,从而最小化中断引起的宕机时间。Data Guard 能与传统的备份、恢复和 cluster 技术一起使用,以提供高级别的数据保护和数据可用性。
使用Data Guard,管理员能通过将资源密集的备份和报表操作转移到备系统上,来提高生产数据库的性能。
本章包括下面描述Oracle Data Guard 亮点的主题: z Data Guard 配置
z Data Guard 服务
z Data Guard Broker
z Data Guard 保护模式
z Data Guard 和互补技术
z Data Guard 益处总结
1.1 Data Guard 配置
Data Guard 配置包含一个生产数据库和一个或更多备数据库。在 Data Guard 配置中的数据库可以通过 Oracle Net 连接并可以分布在不同地理位置。数据库所处位置是没有限制的,只要它们能互相通讯。例如,你能有一个备数据库与生产数据库处于同一系统上,并且有两个备数据库在异地的其它系统上。
你能使用SQL 命令行工具或 Data Guard broker 工具来管理主和备数据库,包括命令行工具(DGMGRL)和在 Oracle 企业管理器中集成的图形化用户工具。
1.1.1 主数据库
Data Guard 配置包含一个生产数据库,也称为主数据库,作为主角。这是大多数你的应用访问的数据库。
主数据库能是单实例Oracle 数据库或 Oracle Real Application Clusters 数据库。
1.1.2 备数据库
备数据库是主数据库的一个事务一致性拷贝。使用主数据库的备份拷贝,你能创建最多九个备数据库,并将其合并到一个Data Guard 配置中。一旦创建,Data Guard 自动维护每个备数据库,从主数据库传送重做数据然后应用重做到备数据库。
类似于主数据库,备数据库也可以是单实例Oracle 数据库或 Oracle Real Application
Clusters 数据库。
备数据库可以是物理备数据库或逻辑备数据库: z 物理备数据库通过基于块对块的与主数据库同样的磁盘数据库结构,提供主数据库的完全一致的物理拷贝。数据库方案,包括索引,是相同的。物理备数据库与主数据库保持同步,通过重做应用,恢复从主数据库收到的重做数据并将重做应用到物理备数据库。
除了灾难恢复,物理备数据库只能在有限的范围内用于业务目的。
z 逻辑备数据库
包含与生产数据库同样的逻辑信息,尽管数据的物理组织和结构可以是不同的。逻辑备数据库通过SQL 应用与主数据库保持同步,其将从主数据库收到的重做中的数据转换成 SQL 语句,然后在备数据库上执行 SQL 语句。
逻辑备数据库能用于灾难恢复需求以外的业务目的。这允许用户在任何时间访问逻辑备数据库,进行查询和报表。同时,使用逻辑备数据库,你能升级Oracle 数据库软件和补丁集而几乎没有宕机时间。这样,逻辑备数据库能并发用于数据保护、报表、和数据库升级。
1.1.3 配置举例
图1-1 显示典型的 Data Guard 配置,包含一个主数据库,传送重做数据到一个备数据库。备数据库异地于主数据库以用于灾难恢复和备份操作。你能配置备数据库与主数据库在同一位置。然而,为了灾难恢复的目的,Oracle 建议你配置备数据库在异地位置。
图1-1 显示典型的 Data Guard 配置,在其中重做被应用到备数据库的备重做日志文件中。
1.2 Data Guard 服务
下面小节解释了Data Guard 如何管理重做数据的传送、重做数据的应用、以及更改数据库角色:
z 重做传输服务
控制从生产数据自动传输重做数据到一个或更多归档的目的地。
z 日志应用服务
在备数据库上应用重做数据,与主数据库维持事务同步。重做数据能从归档重做日志文件,或者,如果允许实时应用,当备重做日志写满时直接从其中应用,而不需要将重做数据首先归档到备数据库。
z 角色转换 使用切换或故障转移操作,从备数据库更改数据的角色到主数据库,或者从主数据
库到备数据库。
1.2.1 重做传输服务
重做传输服务控制重做数据从生产数据库自动传输到一个或更多归档的目的地。重做传输服务执行下述任务: z 从主数据库传送重做数据到配置中的备系统 z 管理解决归档重做日志文件由于网络故障中断的过程 z 强制数据库保护模式(在 1.4 节中描述) z 自动探测在备系统上丢失或损坏的归档重做日志文件,并且自动从主数据库或其它备数据库检索替代的归档重做日志文件
1.2.2 日志应用服务
从主数据库传送的重做数据写到备系统上的备重做日志文件中,如果配置了,然后再归档到归档重做日志文件。日志应用服务自动应用备数据库上的重做数据,以维持与主数据库的一致性。其同时也允许对数据的只读访问。
物理与逻辑备数据库的主要区别是日志应用服务应用归档重做数据的方式:
z 对于物理备数据库,Data Guard 使用重做应用技术,使用 Oracle 数据库的标准恢复技术在备数据库上应用重做数据,如图 1-2 所示。
图1-2 物理备数据库的自动更新
z 对于逻辑备数据库,Data Guard 使用 SQL 应用技术,首先将收到的重做数据转换为 SQL 语句,然后在逻辑备数据库执行生成的 SQL 语句,如图 1-3 所示。
1.2.3 角色转换
Oracle 数据库操作在两种角色之一:主或备。使用 Data Guard,你能使用切换或故障转移操作更改数据库的角色。
切换是在主数据库与其备数据库之一进行的角色反转。切换确保不丢失数据。这是对于主系统计划维护的典型操作。在切换期间,主数据库转换到备角色,备数据库转换到主角色。转换发生不需要重建任何数据库。
故障转移是当主数据库不可用时。故障转移只有在主数据库的灾难故障的情况下执行,并且故障转移导致备数据库转换到主角色。数据库管理员能配置 Data Guard 以确保不丢失数据。
在本文档中描述的角色转换是使用SQL 语句手工执行。你也能使用 Oracle Data Guard broker 来简化角色转换,并使用 Oracle 企业管理器或 DGMGRL 命令行界面来自动化故障转移,如 1.3 节所述。
1.3 Data Guard Broker
Data Guard Broker 是一个分布式的管理构架,用于自动化 Data Guard 配置的创建、维护、和监控。你能使用 Oracle Enterprise Manager 图形化用户界面(GUI)或 Data Guard 命令行界面(DGMGRL)来:
z 创建和允许 Data Guard 配置,包括设置重做传输服务和日志应用服务 z 从配置中的任何系统管理整个 Data Guard 配置
z 管理和监控包含 Real Application Clusters 主或备数据库的 Data Guard 配置
z 通过允许你使用 Oracle 企业管理器中的单次点击或在 DGMGRL 命令行界面中的单条命令简化切换和故障转移
z 当主数据库变得不可用时允许快速启动故障转移来自动转移故障。当允许快速启动故障转移时,由 Data Guard broker 决定是否需要故障转移,并自动启动故障转移到指定的目标备数据库,不需要 DBA 的介入并且不丢失数据。
另外,Oracle 企业管理器自动化及简化了:
z 从主数据库的备份拷贝中创建物理或逻辑备数据库
z 添加新的或现有的备数据库到现有的 Data Guard 配置
z 监控日志应用速度,捕获诊断信息,以及使用集中化的监控、测试、和性能工具快速发现问题。
1.3.1 使用 Oracle 企业管理器
Oracle 企业管理器,也称为企业管理器,提供了一个基于 web 的界面,用于查看、监控、和管理Data Guard配置中的主和备数据库。企业管理器的易于使用的界面结合了broker 的集中管理和 Data Guard 配置的监控,增强了对于高可用性、站点保护、和企业的数据保护的 Data Guard 解决方案。
从企业管理器中央控制台,所有的管理操作能在本地或异地执行。你能查看Oracle 数据库的主页,包括主和备数据库以及实例,创建或添加现有的备数据库,气筒和停止实例,监控实例性能,查看事件,调度作业,以及执行备份和恢复操作。查看 Oracle Data Guard
Broker 和 Oracle 企业管理器联机帮助系统。
图1-4 显示了在企业管理器中的 Data Guard 管理概要页面。
1.3.2 使用 Data Guard 命令行界面
Data Guard 命令行界面(DGMGRL)允许你从 DGMGRL 提示符或脚本中控制和监控 Data Guard 配置。你能使用 DGMGRL 执行大多数所需的行动来管理和监控配置中的数据库。查看 Oracle Data Guard Broker 以获得完整的 DGMGRL 参考信息和举例。
1.4 Data Guard 保护模式
在一些情况下,业务不允许丢失数据。在另外一些情况下,数据库的可用性比丢失数据更为重要。一些应用需要最强的数据库性能并且能容忍丢失少量的数据。下面的描述概述了三种不同的数据保护模式。
最大保护 这种保护模式确保如果主数据库故障不会发生数据丢失。要提供这种级别的保护,恢复每个事务所需的重做数据必须在事务提交之前同时写到本地联机重做日志和至少一个备数据库上的备重做日志。要确保不发生数据丢失,如果故障导致主数据库无法写重做流到至少一个事务一致性备数据库的备重做日志时,主数据库会关闭。
最大可用性 这种保护模式提供了可能的最高级别的数据保护,而不用与主数据库的可用性相折衷。与最大保护模式相同,在恢复事务所需的重做写到本地联机重做日志和至少一个事务一致性备数据库上的备重做日志之前,事务将不会提交。与最大保护模式不同的是,如果故障导致主数据库无法写重做流到异地备重做日志时,主数据库不会关闭。替代地,主数据库以最大性能模式运行直到故障消除,并且解决所有重做日志文件中的中断。当所有中断解决之后,主数据库自动继续以最大可用性模式运行。
这种模式确保如果主数据库故障,但是只有当第二次故障没有阻止完整的重做数据集从主数据库发送到至少一个备数据库时,不发生数据丢失。
最大性能 这种保护模式(默认)提供了可能的最高级别的数据保护,而不影响主数据库的性能。这是通过允许事务在恢复该事务所需重做数据在写到本地联机重做日志后立即提交而实现的。主数据库的重做数据流也写到至少一个备数据库,但是那个重做流相对于创建重做数据的事务是异步写的。
当所用的网络连接有足够的带宽,这种模式提供了近似于最大可用性模式的数据保护级别,并且对主数据库性能的影响最小。
最大保护和最大可用性模式需要备重做日志文件配置在配置中的至少一个备数据库上。所有三种保护模式需要在LOG_ARCHIVE_DEST_n 初始化参数上指定特定的日志传输属性以发送重做数据到至少一个备数据库。查看 5.6 节以获得数据保护模式的完整信息。
1.5 Data Guard 和互补技术
Oracle数据库提供了几种独特的技术互补Data Guard确保业务关键系统以比使用其中任何单种技术更高级别的可用性和数据保护运行。下面的列表总结了一些 Oracle 高可用性技术:
z Oracle Real Application Clusters(RAC)
RAC 允许多个独立服务器通过内部连接共享访问一个 Oracle 数据库,提供了高可用性、可扩展性、和在故障时的冗余性。RAC 和 Data Guard 一起提供了系统级别、站点级别、和数据级别的保护,导致了高级别的可用性和灾难恢复而不丢失数据: