下图显示了 Oracle Data Guard 组件。
Oracle Data Guard优势
灾难恢复和高可用性 — Data Guard 提供了一个高效和全面的灾难恢复和高可用性解决方案。易于管理的转换和故障切换功能允许主数据库和备用数据库之间的角色转换,从而使主数据库因计划的和计划外的中断所导致的停机时间减到最少。
完善的数据保护 — 使用备用数据库,Data Guard 可保证即使遇到不可预见的灾难也不会丢失数据。备用数据库提供了防止数据损坏和用户错误的安全保护。主数据库上的存储器级物理损坏不会传播到备用数据库上。同样,导致主数据库永久损坏的逻辑损坏或用户错误也能够得到解决。最后,在将重做数据应用到备用数据库时会对其进行验证。
有效利用系统资源 — 备用数据库表使用从主数据库接收到的重做数据进行更新,并且可用于诸如备份操作、报表、合计和查询等其它任务,从而减少执行这些任务所必需的主数据库工作负载,节省宝贵的 CPU 和 I/O 周期。使用逻辑备用数据库,用户可以在模式中不从主数据库进行更新的表上执行数据处理操作。逻辑备用数据库可以在从主数据库中对表进行更新时保持打开,并可同时对表进行只读访问。最后,可以在维护的表上创建额外索引和物化视图,以获得更好的查询性能和适应特定的业务要求。
灵活的数据保护功能,从而在可用性与性能要求之间取得平衡 — Oracle Data Guard 提供了最大保护、最高可用性和最高性能等模式,来帮助企业在系统性能要求和数据保护之间取得平衡。
自动间隔检测及其解决方案 — 如果主数据库与一个或更多个备用数据库之间的连接丢失(例如,由于网络问题),则在主数据库上生成的重做数据将无法发送到那些备用数据库上。一旦重新建立连接,Data Guard 就自动检测丢失的存档日志序列(或间隔),并将必要的存档日志自动传输到备用数据库中。备用数据库将重新与主数据库同步,而无需管理员的任何手动干预。
简单的集中式管理 — Data Guard Broker 使一个 Data Guard 配置中的多个数据库间的管理和操作任务自动化。Broker 还监控单个 Data Guard 配置内的所有系统。管理员可以使用 Oracle Enterprise Manager 或 Broker 自己专用的命令行界面 (DGMGRL) 来利用这个集成的管理框架。
与 Oracle 数据库集成 — Oracle Data Guard 是作为 Oracle 数据库(企业版)的一个完全集成的功能提供的,无需任何额外费用
备份系统发生故障 主数据库不可用 无影响
无影响 数据保护
无数据丢失
基本无数据丢失
少量数据丢失
Data Guard实现方式以及对系统的限制要求
Oracle针对不同的用户情况提供的两种不同的standby方式。物理standby ,逻辑standby。
物理standby数据库,在通常的模式下备份库始终处于恢复状态,用户无法访问备份库的数据。如果需要访问数据,需要将恢复模式停止,将数据库打开到只读状态。这两种状态是排它的,也就是说数据库要么是恢复状态,保持和主数据库一致,在这种状态下数据库内容不可访问;要么是只读状态,数据库不会做恢复与主数据保持一致。Oracle还提供逻辑standby数据库。这种方式下数据库可以在打开的状态下保持与主数据库的同步工作。这种打开状态和普通的数据库open状态不同,不能对数据做修改。这种方式通常用于繁忙的系统,如主数据库日常完成业务处理,逻辑standby数据库在完成容灾的同时分担主数据库的查询统计工作。这样大大节约了系统资源。但这种方式对数据库有一定的限制,并不是所有的系统都能够支持。部分较为特殊的数据类型不支持,另外所有的表必须要有主键或者唯一性索引。
无论是物理standby 还是逻辑standby均对系统要求如下:
主备数据库必须是完全相同的硬件架构,如均为SUN平台。机器的内存大小、CPU数量主频可以不同。操作系统版本、补丁完全相同。 数据库版本完全相同。但RAC选件可以不同。即主数据库可以是RAC
模式,备份节点可以是单机。
切换方式
Oracle Data Guard可以实现failover 以及switchover的切换。 Switchover指有计划的切换。如系统主数据库服务器需要硬件维护等有计划的停机操作。这时候可以手工将所有的日志以及归档日志文件传输到备份节点后执行switchover的切换。这种情况下等主数据库恢复正常后系统可以手工切换回来。
Failover切换是指系统出现了异常情况下的切换。系统管理员发现主数据库服务器无法提供服务,决定启动容灾系统。在这种情况下的切换后如果主数据库服务器恢复正常后需要重新配置整个Data Guard环境,无法切换回主数据库服务器。
无论是那种切换方式,主备系统之间均存在部分差别。如IP地址不同,需要修改服务器IP 地址或应用程序重新指向。因为在不同的局域网内,应用中间件需要跨防火墙访问系统。机器档次不同、网络带宽不同造成的性能下降等问题。这需要在容灾的预案中考虑。