为数据库规划灾难恢复

您可以使用 Oracle GoldenGateActive Data Guard 和 Autonomous Data Guard 为 Oracle Cloud 中部署的数据库实施 DR。

  • 通过在远程位置维护生产数据库的同步物理副本(备用),Active Data Guard 可以简单经济地为 Oracle Database 提供全面的数据保护、高可用性和灾难恢复。备用数据库在重做传输、验证和恢复期间以只读方式打开。

    与典型的存储复制方法不同,Active Data Guard 仅复制内存中重做日志,并验证复制以防止任何损坏的可能性。

  • Oracle GoldenGate 是一款高级逻辑复制产品,支持多主复制、集线器部署和数据转换。GoldenGate 为客户提供了灵活的选项来满足完整的复制要求,包括异构硬件平台。
  • 自治数据卫士可在 Oracle Cloud 中为自治数据库实例提供数据保护和灾难恢复。为自治数据库实例启用 Autonomous Data Guard 时,将在同一区域中创建备用数据库。在具有多个可用性域的区域中,备用数据库预配在与主数据库不同的可用性域中。在具有单个可用性域的区域中,备用数据库预配在与主数据库不同的物理计算机上。Autonomous Data Guard 监视主实例,如果主数据库不可用,则自动故障转移到备用数据库。

关于 Oracle Maximum Availability Architecture

Oracle Maximum Availability Architecture (MAA) 是一组优秀实践蓝图,用于集成使用 Oracle 的高可用性技术。MAA 最佳实践介绍了为实现不同的服务级别目标而设计的标准架构,从而满足高可用性和数据保护要求。Bronze、Silver、Gold 和 Platinum MAA 架构层旨在实现不同的服务级别目标,并提供高可用性、数据保护和灾难恢复选项。

以下每个 MAA 层都使用一组最佳的 Oracle 功能,可以在一起部署时可靠地实现计划外停机和计划内维护事件的目标服务级别:

  • 古铜色

    Bronze 层以尽可能低的成本提供基本数据库服务。为了降低成本和实施复杂性,接受更低级别的高可用性和数据保护。此体系结构可能适用于用于测试、开发和小型生产应用及数据库的数据库。

    该架构使用 Oracle Enterprise Edition 中包含的高可用性功能。铜牌默认为 Oracle Database 单实例或多租户体系结构。Oracle Restart 或 Oracle Clusterware 高可用性功能用于重新启动发生故障的实例、数据库服务器或任何相关的托管服务。对于逻辑损坏(如人为错误),可以使用闪回操作将数据库“重绕”到特定时间点。在最坏的情况下,完全站点停机的情况是,从备份恢复和恢复系统和数据库需要更多时间,这可能会导致数小时或数天停机。

    始终建议在同一数据中心内进行本地备份,以实现最快的恢复。Oracle 还建议在远程数据中心内维护另一个备份副本,以防站点故障和灾难。您可以使用 Oracle Database Backup Cloud Service 为内部部署数据库维护基于云的备份。

  • Silver

    Silver 层专为无法等待冷重新启动或从备份恢复的数据库而设计,如果出现不可恢复的数据库实例或服务器故障。此体系结构可能适用于业务关键型生产应用,并且需要减少本地故障和常见计划内维护活动的停机时间。

    Silver 体系结构是基于 Bronze 体系结构构建的,并添加了 Oracle Real Application Clusters (Oracle RAC) 主动 - 主动群集,以便在数据库实例或服务器发生故障时停机最少或零,以及大多数常见计划维护事件的数据库停机时间为零。

    与青铜架构一样,恢复管理器 (RMAN) 提供了针对数据库优化的备份,以便在出现完整的集群停机或灾难时恢复可用性。

  • 金色

    Gold 层专为无法容忍长时间停机和数据丢失的服务级别要求而设计。这组架构模式可为所有类型的计划外停机(包括数据损坏、数据库故障和站点停机)提供高可用性和全面的数据保护。对于所有数据库和系统停机以及计划内维护活动,需要快速恢复时间且零或最小数据丢失的任务关键型生产应用将受益于 Gold 参考架构中包含的功能。

    Gold 参考体系结构基于 Silver 参考体系结构,提供了使用 Oracle Active Data Guard 的四种体系结构模式。模式因具有快速启动故障转移和 HA 观察程序的单个远程活动备用数据库而异,以及包括备用读取器场在内的多个备用数据库配置,最终实现远同步(跨区域)零数据丢失备用配置。

  • Platinum

    白金层可能会为停机和计划内维护活动提供零停机时间,而这些活动无法在金色架构中实现。Platinum 体系结构通过添加 Oracle GoldenGate 复制来基于 Gold 体系结构构建,从而消除迁移、应用程序升级和数据库升级的停机时间。每个 Oracle GoldenGate 数据库都受备用数据库保护,以便在数据库、集群或站点发生故障时实现零数据丢失。

    与其他 MAA 体系结构不同,将 Oracle GoldenGate 集成到体系结构中需要应用注意事项,以确保正确执行冲突检测和解决。对于迁移和数据库升级等活动,还可能需要全局数据服务或定制应用服务管理来实现零应用停机。

使用活动 Data Guard

数据卫士提供了一组全面的服务,可以创建、维护、管理和监视一个或多个备用数据库,使 Oracle 生产数据库在灾难和数据损坏后能够保留下来。Data Guard 将这些备用数据库作为生产数据库的事务一致副本进行维护。大多数 Active Data Guard 最佳实践是在 MAA Gold 层参考架构中定义、测试和验证的。
如果生产数据库因计划内或计划外停机而变得不可用,Data Guard 可以将任何备用数据库切换到生产角色,从而最大程度地减少与停机关联的停机时间。Data Guard 可与传统备份、还原和集群技术结合使用,以提供高级别的数据保护和数据可用性。

Active Data Guard 的好处

Active Data Guard 具有多个优势。

  • 安全物理复制。

    备用数据库以只读方式打开,因此可以保证数据一致性。

    请注意,从 Oracle Database 19c 开始,您可以偶尔向备用数据库发出更新和插入说明,该说明会将说明重定向到主数据库。

  • 简单、快速、单向复制完整的 Oracle Database。

    默认配置可以处理大多数工作负载,因此管理开销很小。

  • 没有限制。

    Oracle Data Guard 重做应用支持所有 Oracle 功能,并透明地复制所有数据和存储类型、PL/SQL 程序包和 DDL,而无需特殊考虑。

  • 最佳数据保护。

    直接从内存复制可将备用数据库与可能在主数据库上发生的 I/O 损坏隔离。检测可在主数据库或备用数据库上独立发生的无提示写入损坏。自动检测并修复可在主数据库或备用数据库上独立发生的物理块损坏。

  • 可选择无数据丢失的同步选项,或与几乎零数据丢失保护同步。
  • 改进了 RoI。

    您可以将只读工作负载(例如报告应用程序、临时查询和数据提取)分载到同步的物理备用数据库。

  • 单个命令将物理备用数据库转换为打开读/写测试系统。第二个命令将其转换回物理备用数据库,并将其与主数据库重新同步。主数据始终受保护。
  • 使用 Oracle Data Guard Broker 命令行和自动数据库故障转移对完整配置进行集成管理。
  • 支持单节点数据库或多节点数据库 (Real Application Cluster) 配置。
  • 应用连续性,为您的事务提供动态保护。

    Active Data Guard 通过恢复受影响数据库会话的正在进行的工作来屏蔽最终用户和应用程序的数据库中断。

配置模式

  • 最大保护
    如果主数据库失败,此保护模式将提供零数据丢失。为确保数据无法丢失,主数据库将在某个故障导致其无法将重做流写入至少一个备用数据库的备用重做日志时关闭。

    注意:

    此模式不可用于自治数据库。对于 Exadata Cloud Service 和 Exadata Cloud@Customer,您可以手动配置此模式,但云控制层不会反映此模式。
  • 最高可用性

    此保护模式在不影响主数据库可用性的情况下,提供最高级别的数据保护。与 "Maximum Protection"(最大保护)模式一样,只有将恢复该事务处理所需的重做数据写入本地联机重做日志以及至少一个事务一致的备用数据库的备用重做日志后,才会提交事务处理。与 "Maximum Protection"(最大保护)模式不同,当某个故障导致主数据库无法将重做流写入远程备用重做日志时,主数据库不会关闭。而是将主数据库和数据卫士配置降级为 UNSYNCHRONIZED 状态。当至少有一个备用数据库可用时,将自动重新同步备用数据库。

  • 最高性能

    此保护模式(默认值)在不影响主数据库性能的情况下尽可能提供最高级别的数据保护。此操作通过允许在将恢复事务处理所需的重做数据异步写入本地联机重做日志时提交事务处理来完成。如果使用网络链接时,该模式提供的数据保护级别接近于最高可用性模式,同时对主数据库性能的影响最小。

数据库放置注意事项

要提高可用性和灾难恢复能力,请将备用数据库的数据库系统放置在与主数据库的数据库系统不同的可用性域中。

如果您为数据库启用了 Data Guard,并且备用数据库与主数据库位于同一可用性域中(可以选择,或者由于区域具有单个可用性域),请将备用数据库放在与主数据库不同的容错域中。

如果主数据库和备用数据库是双节点 RAC 虚拟机数据库系统并且它们位于同一可用性域中,则建议在可用性域中的所有三个容错域中分布所有四个节点(两个用于主数据库,两个用于备用数据库)。此配置利用所有三个容错域,可确保尽可能高的可用性。在此方案中,备用数据库的两个节点中只有一个可以在故障域中,该容错域不包含主数据库或备用数据库的任何其他节点。

为了确保主数据库与备用数据库之间的最佳角色转换,Oracle 建议对两个数据库进行对称大小调整和配置。

配置最佳实践

请参阅Oracle Database High Availability Overview and Best Practices中的“Oracle Data Guard Best Practices”。

使用 Oracle GoldenGate

Oracle GoldenGate 是一个全面的软件包,用于在异构 IT 环境中进行实时数据集成和复制。该产品集支持运营和分析企业系统之间的高可用性解决方案、实时数据集成、事务处理更改数据捕获、数据复制、转换和验证。在 MAA 白金层中,大多数 Oracle GoldenGate 最佳实践都是在参考架构中定义、测试和验证的。
在复制处于活动状态时,如果副本数据库必须是打开的读/写,请使用 Oracle GoldenGate,包括在以下情况下:
  • 高级复制要求,例如多主和双向复制、子集复制、多对一复制、跨端复制和数据转换
  • 使用双向复制需要零停机的维护和迁移
  • Data Guard 不支持跨平台迁移(例如跨端平台迁移)
  • 支持跨数据库版本分布式系统(例如,副本 1 在 12.2 上,副本 2 在 19c 上)
  • 支持跨数据库平台(例如,副本 1 在 Oracle 上,副本 2 在非 Oracle DB 上)

配置模式

使用 Oracle GoldenGate 微服务架构,该架构在云中提供了一个安全、全面且可扩展的复制平台。为了最大限度地减少数据库服务器上的开销,Oracle 建议您在集线器配置中部署 GoldenGate。

GoldenGate 支持多个拓扑,如下图中所示。选择适合您用例的模式。



配置最佳实践

由于 Oracle GoldenGate 在事务处理级别复制数据,因此我们建议实施冲突检测和解决 (Conflict Detection and Resolution,CDR) 以实现两个站点之间的数据一致性。系统会立即识别冲突并使用自动脚本进行处理。

如果您主要将 GoldenGate 用于 DR 用途,并且复制只是一种方式,则我们建议在两个区域之间添加 Data Guard。这样做可以实现零数据丢失解决方案。主实例与数据卫士实例之间具有很强的数据一致性。此配置还可以减轻从主数据库运行 GoldenGate 提取的开销。

后面是 db-dg-gg.png 的说明
插图 db-dg-gg.png 的说明

注意:

该体系结构显示多个可用性域 (Availability Domain,AD)。对于具有单个 AD 的区域,请调整体系结构以在 AD 中的容错域之间分配资源。

在 HA 配置中部署 Oracle GoldenGate。可以对关键 GoldenGate 文件使用 Oracle ASM 集群文件系统 (ACFS) 复制。

使用 Active Data Guard 和 GoldenGate

Oracle GoldenGateActive Data Guard 不互斥。可以将它们结合使用来实现零恢复点目标 (Recovery Point Objective,RPO)(即,无数据丢失风险),因为 GoldenGate 的性质是异步的,而 Active Data Guard 可以提供同步复制以及数据块验证、自动块修复和应用程序连续性等其他关键功能。

以下是一些同时利用 Oracle GoldenGateActive Data Guard 的方案:
  • 对于任务关键型 OLTP 数据库,使用 Active Data Guard 备用数据库进行灾难保护和数据库滚动升级。使用 GoldenGate 可从 Data Guard 主数据库(或使用 GoldenGate ALO 模式从备用数据库)提取数据,以便对企业数据仓库进行 ETL 更新。
  • 使用 GoldenGate 子集复制可将多个数据源中的数据提取、转换和聚合到中央操作数据存储 (ODS)。ODS 支持为公司带来重大收入的任务关键型应用系统。使用 Active Data Guard 备用数据库保护 ODS,提供最佳的数据保护和可用性。
  • 使用 GoldenGate 多主复制同步多个数据库,每个数据库位于不同的地理位置。每个 GoldenGate 复制都有自己的本地同步 Data Guard 备用数据库,如果发生停机,则会启用零数据丢失故障转移。

注意:

要实施白金级最高可用性体系结构,请使用 Oracle Real Application Clusters (Oracle RAC)Active Data GuardOracle GoldenGate