在 Oracle Database@Azure 上使用多区域备用数据库实施灾难恢复

在设计应用程序时,确保不间断的业务连续性是成功的关键。实现这一目标需要强大的灾难恢复策略,以便在发生中断时快速恢复功能。

多年来,企业一直依靠 Oracle Exadata Database Service (这是 Oracle 先进的灾难恢复技术)来支持关键任务应用,无论是本地部署还是 Oracle Cloud Infrastructure (OCI)。Oracle Database@Azure 上的 Oracle Exadata Database Service on Dedicated Infrastructure 与 OCI 上的 Exadata 性能、功能集和价格均等。它利用 Microsoft Azure 的可用性区域 (AZ) 和区域,在无与伦比的高可用性和灾难恢复功能的基础上为 Azure 应用提供低延迟,从而确保在维护期间以及在发生中断时无缝运行。

体系结构

此架构使用两个远程备用数据库在多区域灾难恢复拓扑中显示 Oracle Database@Azure 上的 Oracle Exadata Database Service on Dedicated Infrastructure 。

下图说明了此引用体系结构。



多区域备用数据库 -azure-arch-oracle.zip

Oracle Database 在主区域中的 Exadata 虚拟机 (VM) 集群中运行。对于数据保护和灾难恢复,Oracle Active Data Guard 会将数据复制到两个不同备用区域中的 Exadata VM 集群上运行的两个备用数据库。远程备用数据库设置可确保针对区域故障提供数据保护,并且还可用于卸载只读查询处理。切换到备用数据库后,跨区域复制应用以避免更高的延迟。

您可以通过 Azure 网络路由活动数据卫士流量。但是,此架构侧重于通过 OCI 网络的活动数据卫士网络流量,以优化网络吞吐量和延迟。

Oracle Database@Azure 网络上的 Oracle Exadata Database Service on Dedicated Infrastructure 使用 Oracle 管理的动态路由网关 (DRG) 连接到 Exadata 客户端子网。还需要使用 DRG 才能在不同区域的虚拟云网络 (Virtual Cloud Network,VCN) 之间创建对等连接。由于 OCI 中的每个 VCN 只允许一个 DRG,因此需要第二个充当中心 VCN 且具有自身 DRG 的 VCN 才能连接每个区域中的主 VCN 和备用 VCN。在此架构中:

  • 主 Exadata VM 集群与 CIDR 10.10.0.0/16 一起部署在 VCN1 中的 Region 1 中。
  • 主 Region 1 中的中心 VCN 为带 CIDR 10.11.0.0/16 的 HubVCN1。
  • 第一个备用 Exadata VM 集群与 CIDR 10.20.0.0/16 一起部署在 VCN2 中的 Region 2 中。
  • 第一个备用区域中的中心 VCN 为带 CIDR 10.22.0.0/16 的 HubVCN2。
  • 第二个备用 Exadata VM 集群部署在 VCN3 中的 Region 3 中,使用 CIDR 10.30.0.0/16。
  • 第二个备用区域中的中心 VCN 为带 CIDR 10.33.0.0/16 的 HubVCN3。

集线器 VCN 无需子网即可启用传输路由,因此这些 VCN 可以使用非常小的 IP CIDR 范围。OCI 子站点上的 VCN 在为主数据库和备用数据库创建 Oracle Database@Azure 上的 Oracle Exadata Database Service on Dedicated Infrastructure VM 集群之后创建。

Microsoft Azure 提供以下组件:

  • Azure 区域

    Azure 区域是指一个或多个物理 Azure 数据中心(称为可用性区域)所在的地理区域。地区独立于其他地区,远距离可以把它们分开(跨越国家甚至大陆)。

    Azure 和 OCI 区域是本地化的地理区域。对于 Oracle Database@Azure ,Azure 区域连接到 OCI 区域,Azure 中的可用性区域 (AZ) 连接到 OCI 中的可用性域 (AD)。选择 Azure 和 OCI 区域对以尽可能减少距离和延迟。

  • Azure 可用性区域

    Azure 可用性区域是 Azure 区域内的物理独立位置,旨在通过提供独立的电源、冷却和网络来确保高可用性和弹性。

  • Azure 虚拟网络 (VNet)

    Azure 虚拟网络 (VNet) 是 Azure 中专用网络的基本构建块。VNet 支持多种类型的 Azure 资源(例如 Azure 虚拟机 (VM))安全地相互通信、互联网和内部部署网络。

  • Azure 委托子网

    通过委派子网,您可以将托管服务(尤其是平台即服务 (PaaS) 服务)直接作为资源插入到虚拟网络中。您可以在虚拟网络中对外部 PaaS 服务进行完全集成管理。

  • Azure Virtual Network Interface Card (VNIC)

    Azure 数据中心的服务具有物理网络接口卡 (Network Interface Card,NIC)。虚拟机实例使用与物理 NIC 关联的虚拟 NIC (virtual NIC,VNIC) 进行通信。每个实例都有一个主 VNIC,在启动期间自动创建和连接,并在实例生命周期内提供。

OCI 提供以下组件:

  • 区域

    Oracle Cloud Infrastructure 区域是一个本地化地理区域,其中包含一个或多个数据中心,托管可用性域。地区独立于其他地区,远距离可以把它们分开(跨越国家甚至大陆)。

  • 可用性域

    可用性域是区域中的独立数据中心。每个可用性域中的物理资源与其他可用性域中的资源隔离,从而提供容错能力。可用性域不共用电源、冷却设施或内部可用性域网络等基础设施。因此,一个可用性域出现故障不会影响区域中的其他可用性域。

  • 虚拟云网络 (VCN) 和子网

    VCN 是一个可定制的软件定义网络,您可以在 Oracle Cloud Infrastructure 区域中设置。与传统的数据中心网络一样,VCN 允许您控制您的网络环境。VCN 可以具有多个不重叠的 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 划分为子网,子网可以限定为区域或可用性域。每个子网都包含一系列不与 VCN 中的其他子网重叠的连续地址。可以在创建后更改子网的大小。子网可以是公共子网,也可以是专用子网。

  • 路由表

    虚拟路由表包含用于将流量从子网路由到 VCN 之外目的地的规则,通常是通过网关。

  • 本地对等连接

    通过本地对等连接,您可以在同一区域中将一个 VCN 与另一个 VCN 对等。对等连接意味着 VCN 使用专用 IP 地址进行通信,而流量不会通过互联网或内部部署网络进行路由。

  • 动态路由网关 (DRG)

    DRG 是虚拟路由器,用于为同一区域中的 VCN 之间、VCN 与区域外的网络(例如另一个 Oracle Cloud Infrastructure 区域中的 VCN、内部部署网络或另一个云提供商中的网络)之间的专用网络流量提供路径。

  • 对象存储

    通过 OCI Object Storage ,您可以访问任何内容类型的大量结构化和非结构化数据,包括数据库备份、分析数据和丰富的内容,例如图像和视频。您可以直接从互联网或云平台安全地存储数据。您可以在不降低性能或服务可靠性的情况下扩展存储。

    将标准存储用于需要快速、立即和频繁访问的“热”存储。将归档存储用于长期保留、很少访问或很少访问的“冷”存储。

  • Data Guard

    Oracle Data Guard 和 Oracle Active Data Guard 提供一组全面的服务,用于创建、维护、管理和监视一个或多个备用数据库,并使生产 Oracle 数据库能够在不中断的情况下保持可用。Oracle Data Guard 使用内存中复制将这些备用数据库作为生产数据库的副本进行维护。如果生产数据库由于计划内或计划外停机而变得不可用,则 Oracle Data Guard 可以将任何备用数据库切换到生产角色,从而最大限度地减少与停机关联的停机时间。Oracle Active Data Guard 提供了将以读为主的负载卸载到备用数据库的额外功能,并且还提供了高级数据保护功能。

  • Oracle Database Autonomous Recovery Service

    Oracle Database Autonomous Recovery Service 是一项保护 Oracle 数据库的 Oracle Cloud 服务。借助 OCI 数据库的备份自动化和增强的数据保护功能,您可以将所有备份处理和存储需求分流到 Oracle Database Autonomous Recovery Service ,从而降低备份基础设施成本和手动管理开销。

  • 专用基础结构上的 Exadata 数据库服务

    借助 Oracle Exadata Database Service on Dedicated Infrastructure ,您可以充分利用云端 Exadata 的强大功能。Oracle Exadata Database Service 在公有云中专门构建、优化的 Oracle Exadata 基础设施上提供经过验证的 Oracle Database 功能。为所有 Oracle Database 工作负载提供内置的云技术自动化、弹性资源扩展、安全性和快速性能,可帮助您简化管理和降低成本。

  • Oracle Database@Azure

    Oracle Database@Azure 是部署在 Microsoft Azure 数据中心的 Oracle Cloud Infrastructure (OCI) 上运行的 Oracle Database 服务(Oracle Exadata Database Service on Dedicated Infrastructure 和 Oracle Autonomous Database Serverless )。该服务提供与 OCI 相同的功能和价格。在 Azure Marketplace 上购买该服务。

    Oracle Database@Azure 将 Oracle Exadata Database Service 、Oracle Real Application Clusters (Oracle RAC) 和 Oracle Data Guard 技术集成到 Azure 平台中。用户使用 Azure 控制台和 Azure 自动化工具管理服务。该服务部署在 Azure 虚拟网络 (VNet) 中,并与 Azure 身份和访问管理系统集成。OCI 和 Oracle Database 通用指标和审计日志在 Azure 中原生可用。该服务要求用户具有 Azure 订阅和 OCI 租户。

    Autonomous Database 基于 Oracle Exadata 基础设施构建,具有自我管理、自我保护和自我修复功能,可帮助消除手动数据库管理和人为错误。Autonomous Database 支持您使用内置 AI 功能,选择大型语言模型 (LLM) 和部署位置,使用任意数据开发可扩展的 AI 应用。

    Oracle Exadata Database Service 和 Oracle Autonomous Database Serverless 均可通过原生 Azure 门户轻松预配,从而访问更广泛的 Azure 生态系统。

推荐

在 Oracle Database@Azure 上对 Oracle Exadata Database Service on Dedicated Infrastructure 执行灾难恢复时,请使用以下建议作为起点。您的要求可能与此处描述的体系结构不同。
  • 使用活动数据卫士通过自动块修复、联机升级和迁移以及通过以读为主的横向扩展将工作负载卸载到备用数据库来全面防止数据损坏。
  • 启用应用连续性以在最终用户的计划内和计划外事件期间屏蔽数据库中断,并确保应用不间断。
  • 为 Oracle Database Autonomous Recovery Service (在 Azure 或 OCI 中)设置自动备份,即使数据受 Oracle Data Guard 保护,通过实施永久增量备份策略来尽可能减少数据库上的备份工作负载,从而消除每周的完全备份。客户也可以使用 OCI Object Storage 进行自动备份。
  • 启用备用数据库备份以实现跨区域的备份复制。
  • 使用 OCI Full Stack DR 编排数据库切换和故障转移操作。
  • 使用 OCI Vault 使用客户管理的密钥存储数据库的透明数据加密 (Transparent Data Encryption,TDE) 密钥。

注意事项

在 Oracle Database@Azure 上为 Oracle Exadata Database Service on Dedicated Infrastructure 执行多区域灾难恢复时,请考虑以下事项。

  • 在 Oracle Database@Azure 子站点中创建 Exadata VM 集群时,将在其自己的 OCI VCN 中创建每个 VM 集群。Oracle Data Guard 要求数据库相互通信以提供 redo 数据。对等 VCN 以启用此通信。因此,Exadata VM 集群 VCN 不能共享重叠的 IP CIDR 范围。
  • 灾难场景的准备工作需要一种全面的方法来考虑不同的业务需求和可用性架构,并在可操作、高可用性和灾难恢复计划中包括这些注意事项。此处介绍的方案提供了一些指导原则,通过对 OCI 和 Microsoft Azure 环境中的灾难恢复配置使用简单但有效的故障转移来帮助选择最适合应用部署的方法。
  • OCI 是通过延迟和吞吐量来衡量性能和降低成本(包括免费前 10 TB/每月出站)的首选网络。
  • 通过 Cloud Tooling 最多可以为主数据库创建六个备用数据库。
  • 使用 Cloud Tooling 不支持创建与另一个备用数据库(级联备用数据库)关联的备用数据库。

部署

按照以下步骤配置体系结构图中所示区域之间的网络通信:

按照以下步骤配置“Primary(主)”区域:

  1. 将以下入站规则添加到 VCN1 客户端子网的安全列表,以允许来自 VCN2 和 VCN3 的传入流量。
    无状态 源 IP 协议 源端口范围 目的地端口范围 允许 说明
    无 10.20.0.0/16 TCP 1521 1521 以下端口的 TCP 流量:1521 允许从 VCN2 入站
    无 10.30.0.0/16 TCP 1521 1521 以下端口的 TCP 流量:1521 允许从 VCN3 入站
  2. 使用 CIDR 10.11.0.0/16 创建虚拟云网络 HubVCN1。
  3. 在虚拟云网络 HubVCN1 中创建本地对等连接网关 HubLPG1。
  4. 在虚拟云网络 VCN1 中创建本地对等连接网关 LPG1R。
  5. 在 LPG1R 和 HubLPG1 之间建立本地对等连接。
  6. 将路由规则添加到 VCN1 客户机子网的路由表中,以将目标为 VCN2 和 VCN3 的流量转发到 LPG1R。
    目的地 目标类型 目标 路由类型 说明
    10.20.0.0/16 本地对等连接网关 LPG1R 静态 流量至 VCN2
    10.30.0.0/16 本地对等连接网关 LPG1R 静态 流量至 VCN3
  7. 在 HubVCN1 中创建路由表 HubLPG1rt。
  8. 将路由表 HubLPG1rt 关联到本地对等连接网关 HubLPG1。
  9. 创建动态路由网关 DRG1。
  10. 在 HubVCN1 中创建路由表 DRG1rt。
  11. 将路由规则添加到路由表 DRG1rt,以将目标为 VCN1 的流量转发到 HubLPG1。
    目的地 目标类型 目标 路由类型 说明
    10.10.0.0/16 本地对等连接网关 HubLPG1 静态 流量至 VCN1
  12. 要将 DRG1 附加到 HubVCN1,请执行以下操作:
    1. 选择VCN 附加的自动生成的借项路由表。
    2. 选择现有路由表 DRG1rt。
    3. 选择 VCN CIDR 块。
  13. 在 DRG1 中创建两个名为 RPC1a 和 RPC1b 的远程对等连接。
  14. 向 HubLPG1rt 添加两个路由规则,以将目标为 VCN2 和 VCN3 的流量转发到 DRG1。
    目的地 目标类型 目标 路由类型 说明
    10.20.0.0/16 动态路由网关 DRG1 静态 流量至 VCN2
    10.30.0.0/16 动态路由网关 DRG1 静态 流量至 VCN3

要创建第一个备用区域(区域 2),请执行以下步骤:

  1. 将以下入站规则添加到 VCN2 客户端子网的安全列表,以允许来自 VCN1 和 VCN3 的传入流量。
    无状态 源 IP 协议 源端口范围 目的地端口范围 允许 说明
    无 10.10.0.0/16 TCP 1521 1521 以下端口的 TCP 流量:1521 允许从 VCN1 入站
    无 10.30.0.0/16 TCP 1521 1521 以下端口的 TCP 流量:1521 允许从 VCN3 入站
  2. 使用 CIDR 10.22.0.0/16 创建虚拟云网络 HubVCN2。
  3. 在虚拟云网络 HubVCN2 中创建本地对等连接网关 HubLPG2。
  4. 在虚拟云网络 VCN2 中创建本地对等连接网关 LPG2R。
  5. 在 LPG2R 和 HubLPG2 之间建立本地对等连接。
  6. 将路由规则添加到 VCN2 客户端子网的路由表,以将目标为 VCN1 和 VCN3 的流量转发到 LPG2R。
    目的地 目标类型 目标 路由类型 说明
    10.10.0.0/16 本地对等连接网关 LPG2R 静态 流量至 VCN1
    10.30.0.0/16 本地对等连接网关 LPG2R 静态 流量至 VCN3
  7. 在 HubVCN2 中创建路由表 HubLPG2rt。
  8. 将路由表 HubLPG2rt 关联到本地对等连接网关 HubLPG2。
  9. 创建动态路由网关 DRG2。
  10. 在 HubVCN2 中创建路由表 DRG2rt。
  11. 将路由规则添加到 DRG2rt 以将目标为 VCN2 的流量转发到 HubLPG2。
    目的地 目标类型 目标 路由类型 说明
    10.20.0.0/16 本地对等连接网关 HubLPG2 静态 流量至 VCN2
  12. 要将 DRG1 附加到 HubVCN2,请执行以下操作:
    1. 选择VCN 附加的自动生成的借项路由表。
    2. 选择现有路由表 DRG2rt。
    3. 选择 VCN CIDR 块。
  13. 在 DRG2 中创建两个名为 RPC2a 和 RPC2c 的远程对等连接。
  14. 在 RPC1a(区域 1)和 RPC2a(区域 2)之间建立远程对等连接。
  15. 向 HubLPG2rt 添加两个路由规则,以将目标为 VCN1 和 VCN3 的流量转发到 DRG2。
    目的地 目标类型 目标 路由类型 说明
    10.10.0.0/16 动态路由网关 DRG2 静态 流量至 VCN1
    10.30.0.0/16 动态路由网关 DRG2 静态 流量至 VCN3

要创建第二个备用区域(区域 3),请执行以下步骤:

  1. 将以下入站规则添加到 VCN3 客户端子网的安全列表,以允许来自 VCN1 和 VCN2 的传入流量。
    无状态 源 IP 协议 源端口范围 目的地端口范围 允许 说明
    无 10.10.0.0/16 TCP 1521 1521 以下端口的 TCP 流量:1521 允许从 VCN1 入站
    无 10.20.0.0/16 TCP 1521 1521 以下端口的 TCP 流量:1521 允许从 VCN2 入站
  2. 使用 CIDR 10.33.0.0/16 创建虚拟云网络 HubVCN3。
  3. 在虚拟云网络 HubVCN3 中创建本地对等连接网关 HubLPG3。
  4. 在虚拟云网络 VCN3 中创建本地对等连接网关 LPG3R。
  5. 在 LPG3R 和 HubLPG3 之间建立本地对等连接。
  6. 将路由规则添加到 VCN3 客户端子网的路由表,以将目标为 VCN1 和 VCN2 的流量转发到 LPG3R。
    目的地 目标类型 目标 路由类型 说明
    10.10.0.0/16 本地对等连接网关 LPG3R 静态 流量至 VCN1
    10.20.0.0/16 本地对等连接网关 LPG3R 静态 流量至 VCN2
  7. 在 HubVCN3 中创建路由表 HubLPG3rt。
  8. 将路由表 HubLPG3rt 关联到本地对等连接网关 HubLPG3。
  9. 创建动态路由网关 DRG3。
  10. 在 HubVCN3 中创建路由表 DRG3rt。
  11. 将路由规则添加到 DRG3rt 以将目标为 VCN3 的流量转发到 HubLPG3。
    目的地 目标类型 目标 路由类型 说明
    10.30.0.0/16 本地对等连接网关 HubLPG3 静态 流量至 VCN3
  12. 要将 DRG1 附加到 HubVCN3,请执行以下操作:
    1. 选择VCN 附加的自动生成的借项路由表。
    2. 选择现有路由表 DRG3rt。
    3. 选择 VCN CIDR 块。
  13. 在 DRG3 中创建两个名为 RPC3b 和 RPC3c 的远程对等连接。
  14. 在 RPC1b(区域 1)和 RPC3b(区域 3)之间建立远程对等连接。
  15. 在 RPC2c(区域 2)和 RPC3c(区域 3)之间建立远程对等连接。
  16. 向 HubLPG3rt 添加两个路由规则,以将目标为 VCN1 和 VCN2 的流量转发到 DRG3。
    目的地 目标类型 目标 路由类型 说明
    10.10.0.0/16 动态路由网关 DRG3 静态 流量至 VCN1
    10.20.0.0/16 动态路由网关 DRG3 静态 流量至 VCN2

确认

  • 授权者:Sinan Petrus Toma, Sebastian Solbach, Julien Silverston
  • 贡献者:Sreya Dutta