Oracle Database@Azure 上为 Oracle Exadata Database Service 执行跨区域灾难恢复

在设计应用程序时,必须通过建立强大的灾难恢复机制来确保业务连续性,以便在发生故障时恢复操作。

多年来,客户一直信任使用 Oracle Maximum Availability Architecture (MAA) 的 Oracle Exadata Database Service 来支持本地部署和 Oracle Cloud Infrastructure (OCI) 上的关键任务应用。Oracle Database@Azure 上的 Oracle Exadata Database Service 可与基于 OCI 的 Exadata 实现功能和价格均衡,并可跨多个 Microsoft Azure 可用性区域 (AZ) 和区域部署,从而确保高可用性和灾难恢复。

体系结构

此架构在跨区域灾难恢复拓扑中显示具有高可用性的容器化 Azure Kubernetes Service (AKS) 应用,其中 Oracle Exadata Database ServiceOracle Database@Azure 上运行。

高可用性、容器化的 Azure Kubernetes 服务 (AKS) 应用程序部署在两个 Azure 区域中:主区域和备用区域。容器映像存储在 Azure 容器注册表中,并在主区域和备用区域之间复制。用户通过公共负载平衡器对应用程序进行外部访问。

为了保护数据,Oracle Database 正在主区域中的 Exadata 虚拟机 (VM) 集群中运行,其中 Oracle Data Guard 或 Oracle Active Data Guard 将数据复制到备用区域中的 Exadata VM 集群上运行的备用数据库。

数据库透明数据加密 (TDE) 密钥存储在 Oracle Cloud Infrastructure Vault 中,并在 Azure 和 OCI 区域之间复制。在 OCI 中为主区域和备用区域提供自动备份。客户可以使用 Oracle Cloud Infrastructure Object StorageOracle Database Autonomous Recovery Service 作为首选存储解决方案。

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

  • 主 Exadata VM 集群部署在 VCN 主 VCN 客户端子网 (10.5.0.0/24) 中。
  • 传输网络的枢纽 VCN 主 VCN 为 10.15.0.0/29。
  • 备用 Exadata VM 集群部署在 VCN 备用 VCN 客户端子网 (10.6.0.0/24) 中。
  • 传输网络的 Hub VCN Standby VCN 为 10.16.0.0/29。

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

下图展示了体系结构:



exadb-dr-db-azure-oracle.zip

Microsoft Azure 提供以下组件:

  • Microsoft Azure 区域

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

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

  • Microsoft Azure 可用性区域

    可用性区域是区域中的物理隔离数据中心,设计为具有高可用性和容错能力。可用性区域足够近,可以与其他可用性区域建立低延迟连接。

  • Microsoft Azure 虚拟网络

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

  • Microsoft Azure 委派子网

    通过子网委派,您可以将托管服务(特别是平台即服务 (PaaS) 服务)直接注入到虚拟网络中。委托子网可以是虚拟网络内外部托管服务的主目录,以便外部服务充当虚拟网络资源,即使它是外部 PaaS 服务也是如此。

  • Microsoft Azure VNIC

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

  • Microsoft Azure 路由表

    虚拟路由表包含用于将流量从子网路由到 VNet 之外目标(通常通过网关)的规则。路由表与 VNet 中的子网关联。

  • Azure 虚拟网络网关

    Azure Virtual Network Gateway 服务在 Azure 虚拟网络和内部部署网络之间建立安全的跨内部部署连接。它允许您创建跨数据中心和 Azure 的混合网络。

Oracle Cloud Infrastructure 提供以下组件:

  • 区域

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

  • 可用性域

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

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

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

  • 路由表

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

  • 安全列表

    对于每个子网,可以创建安全规则来指定必须允许进出子网的通信的源、目标和类型。

  • 动态路由网关 (DRG)

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

  • 服务网关

    通过服务网关,您可以从 VCN 访问其他服务,例如 Oracle Cloud Infrastructure Object Storage 。从 VCN 到 Oracle 服务的流量通过 Oracle 网络结构传输,不会通过互联网传输。

  • 本地对等连接网关 (LPG)

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

  • 网络安全组 (NSG)

    网络安全组 (NSG) 用作云资源的虚拟防火墙。借助 Oracle Cloud Infrastructure 的零信任安全模型,所有流量都将被拒绝,您可以控制 VCN 内的网络流量。NSG 由一组入站和出站安全规则组成,这些规则仅适用于单个 VCN 中的一组指定的 VNIC。

  • 对象存储

    通过对象存储,可以快速访问任意内容类型的大量结构化和非结构化数据,包括数据库备份、分析数据以及图像和视频等丰富内容。您可以安全地存储数据,然后直接从互联网或云平台检索数据。您可以在不降低性能或服务可靠性的情况下扩展存储。将标准存储用于需要快速、立即和频繁访问的“热”存储。将归档存储用于长期保留、很少访问或很少访问的“冷”存储。

  • 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 Database 中的数据创建时间点快照。借助 OCI 数据库的备份自动化和增强的数据保护功能,您可以将所有备份处理和存储需求分流到 Oracle Database Autonomous Recovery Service ,从而消除备份基础设施成本和手动管理开销。

  • Exadata 数据库服务

    Oracle Exadata 是一个企业数据库平台,它以高性能、高可用性和安全性运行任何规模和关键性的 Oracle Database 工作负载。Exadata 的横向扩展设计采用独特的优化功能,让事务处理、分析、机器学习和混合工作负载能够更快、更高效地运行。在企业数据中心、Oracle Cloud Infrastructure (OCI) 和多云环境中,在 Exadata 平台上整合各种 Oracle Database 工作负载,帮助企业提高运营效率、减少 IT 管理并降低成本。

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

  • Oracle Database@Azure

    Oracle Database@Azure 将 Oracle 技术(例如 Oracle Exadata Database ServiceOracle Autonomous Database ServerlessOracle Real Application Clusters (Oracle RAC) 和 Oracle Data Guard )集成到 Microsoft Azure 平台中。

    Oracle Database@Azure 是在 Oracle Cloud Infrastructure (OCI) 上运行的 Oracle Database 服务,并位于 Microsoft Azure 数据中心。该服务提供与 OCI 相同的功能和价格。您可以在 Azure Marketplace 上购买该服务。Oracle Database@Azure 提供与其他 Azure 原生服务相同的低延迟,可满足关键任务工作负载和云原生开发要求。您可以通过 Azure 控制台和 Azure 自动化工具来管理服务。该服务部署在 Azure 虚拟网络 (VNet) 中,并与 Azure 身份和访问管理系统集成。OCI 和 Oracle Database 指标和审计日志在 Azure 中原生可用。该服务要求用户具有 Azure 租户和 OCI 租户。

推荐

Oracle Database@Azure 上为 Oracle Exadata Database Service 执行跨区域灾难恢复时,请使用以下建议作为起点。您的要求可能与此处描述的体系结构不同。
  • 在主区域和备用区域中部署所需的 Exadata 基础结构。对于每个 Exadata 实例,在 Microsoft Azure 虚拟网络的委派子网 (VNet) 中部署 Exadata VM 集群。然后,可以在集群上实例化 Oracle Real Application Clusters (RAC) 数据库。在同一 VNet 中,在单独的子网中部署 Azure Kubernetes 服务 (AKS)。Configure Oracle Data Guard to replicate data from one Oracle Database to the other, across regions.
  • Oracle Database@Azure 子站点中创建 Exadata VM 集群时,在自己的 Oracle Cloud Infrastructure 虚拟云网络 (VCN) 中创建每个集群。Oracle Data Guard 要求数据库相互通信以提供重做数据。必须对等 VCN 才能启用此通信。

注意事项

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

  • 灾难场景的准备工作需要一种全面的方法来考虑不同的业务需求和可用性架构,并在可行的高可用性 (HA) 灾难恢复 (DR) 计划中包括这些注意事项。此处介绍的方案提供了一些指导原则,可帮助您在 Oracle Cloud Infrastructure (OCI) 和 Microsoft Azure 环境中对灾难恢复配置使用简单但有效的故障转移来选择最适合应用部署的方法。
  • 使用 OCI 管理的网络在 Oracle Database@Azure 上的 Exadata VM 集群中预配的数据库跨区域使用 Oracle Data Guard
  • 由于前 10 TB/每月免费,Oracle Cloud Infrastructure 是通过延迟和吞吐量来提高性能并降低成本的首选网络。

部署

要配置以上体系结构图中所示区域之间的网络通信,请完成以下概要步骤。

主区域

  1. Oracle Cloud Infrastructure (OCI) 主区域中创建虚拟云网络 (VCN) HUB VCN Primary
  2. VCN 主HUB VCN 主中分别部署两个本地对等连接网关 (LPG)、 Primary-LPGHUB-Primary-LPG
  3. HUB VCN 主VCN 主的 LPG 之间建立对等 LPG 连接。
  4. VCN 主 VCN 中,更新默认路由表来路由与 VCN 备用客户端子网关联的 IP 地址的流量,以使用 LPG 对等连接。例如:
    10.6.0.0/24 to Primary-LPG

    注意:

    要更新默认路由表,当前必须创建标题为必需的 VCN 路由表更新权限的支持请求单,并提供区域、租户 OCID、VCN OCID 和服务 DRG OCID。
  5. Hub VCN Primary VCN 中创建动态路由网关 (Dynamic Routing Gateway,DRG) 和 Primary-DRG
  6. HUB VCN 主 VCN 中,创建路由表 primary_hub_transit_drg ,并为 VCN 主客户机子网的目标、目标类型 LPG 和目标 HUB-Primary-LPG 分配目标。例如:
    10.5.0.0/24 target type: LPG, Target: Hub-Primary-LPG
  7. HUB VCN 主 VCN 中,创建第二个路由表 primary_hub_transit_lpg ,并为 VCN 主客户端子网的目标、目标类型 DRG 和目标 Primary-DRG 分配目标。例如:
    10.6.0.0/24 target type: DRG, Target: Primary-DRG
  8. Hub VCN Primary(中心 VCN) VCN 连接到 DRG。编辑 DRG VCN 附加,在高级选项下,编辑选项卡 VCN 路由表以将其与 primary_hub_transit_drg 路由表关联。此配置允许传输路由。
  9. primary_hub_transit_lpg 路由表与 Hub-Primary-LPG 网关关联。
  10. 中心 VCN 主默认路由表中,为 VCN 主客户端子网 IP 地址范围添加路由规则以使用 LPG。为 VCN 备用客户端子网 IP 地址范围添加另一个路由规则以使用 DRG。例如:
    10.5.0.0/24 LPG Hub-Primary-LPG
    10.6.0.0/24 DRG Primary-DRG
  11. 对于 Primary-DRG ,选择 DRG 路由表 Autogenerated DRG Route Table for RPC,VC,and IPSec attachments 。向 VCN 主子网客户端 IP 地址范围添加静态路由,该范围使用下一个跃点附加类型 VCNHub VCN 主 VCN 和下一个跃点附加名称 Primary Hub 附加。例如:
    10.5.0.0/24 VCN Primary Hub attachment
  12. 使用 Primary-DRG 远程对等连接附加菜单创建远程对等连接 RPC
  13. VCN 主客户端子网中,更新网络安全组 (NSG) 以创建允许 TCP 端口 1521 入站的安全规则。(可选)可以添加 SSH 端口 22 以直接通过 SSH 访问数据库服务器。

    注意:

    要实现更精确的配置,请禁用 Autogenerated DRG Route Table for RPC,VC,and IPSec attachments 路由表的导入路由分配。对于VCN 附加的自动生成的 DRG 路由表,请创建并分配新的导入路由分配,仅包括所需的 RPC 附加。

备用区域

  1. 在 OCI 备用区域中创建 VCN HUB VCN 备用
  2. VCN 备用HUB-Standby-LPG 中分别部署两个 LPG( Standby-LPGHUB VCN 备用 VCN)。
  3. VCN 备用HUB VCN 备用的 LPG 之间建立对等 LPG 连接。
  4. VCN 备用 VCN 中,更新默认路由表来路由与 VCN 主客户端子网关联的 IP 地址的流量,以使用 LPG 对等连接。例如:
    10.5.0.0/24 to Standby-LPG

    注意:

    要更新默认路由表,当前必须创建标题为必需的 VCN 路由表更新权限的支持请求单,并提供区域、租户 OCID、VCN OCID 和服务 DRG OCID。
  5. Hub VCN 备用 VCN 中创建一个 DRG Standby-DRG
  6. HUB VCN 备用 VCN 中,创建一个路由表 standby_hub_transit_lpg ,并为 VCN 备用客户机子网的目标、目标类型 LPG 和目标 HUB-Standby-LPG 分配目标。例如:
    10.6.0.0/24 target type: LPG, Target: Hub-Standby-LPG
  7. HUB VCN 备用 VCN 中,创建第二个路由表 standby_hub_transit_drg 并分配 VCN 备用客户机子网的目标、目标类型 DRG 和目标 Standby-DRG 。例如:
    10.5.0.0/24 target type: DRG, Target: Standby-DRG
  8. Hub VCN Standby VCN 连接到 DRG。编辑 DRG VCN 附加,并在高级选项下编辑 VCN 路由表以将其与 standby_hub_transit_drg 路由表关联。此配置允许传输路由。
  9. 中心 VCN 备用默认路由表中,为 VCN 备用客户端子网 IP 地址范围添加路由规则,以使用 LPG,为VCN 主客户端子网 IP 地址范围添加路由规则以使用 DRG。例如:
    10.6.0.0/24 LPG Hub-Standby-LPG
    10.5.0.0/24 DRG Standby-DRG
  10. 将路由表 standby_hub_transit_lpgHub-Standby-LPG 网关关联。
  11. 对于备用 DRG ,选择 DRG 路由表 Autogenerated Drg Route Table for RPC,VC,and IPSec attachments 。向 VCN 备用子网客户机 IP 地址范围添加静态路由,该范围使用下一个跃点连接类型为 VCN 的 Hub VCN 备用 VCN 和下一个跃点附加名称备用 Hub 附加。例如:
    10.6.0.0/24 VCN Standby Hub attachment
  12. 使用 Standby-DRG 远程对等连接附加菜单创建远程对等连接 RPC
  13. 选择远程对等连接,选择建立连接,并提供主 DRG OCID。对等连接状态变为对等连接。两个区域都连接在一起。
  14. VCN 备用客户端子网中,更新 NSG 以创建安全规则来允许 TCP 端口 1521 入站。(可选)可以添加 SSH 端口 22 以直接通过 SSH 访问数据库服务器。

Data Guard 关联

  1. 要为 Oracle Database 启用 Oracle Data Guard 或 Oracle Active Data Guard,请在 Oracle Database 详细信息页上单击 Data Guard 关联,然后单击启用 Data Guard
  2. 在“Enable Data Guard”页上:
    1. 选择备用区域。
    2. 选择映射到 Azure AZ 的备用可用性域。
    3. 选择备用 Exadata 基础结构。
    4. 选择所需的备用 VM 集群。
    5. 选择 Oracle Data Guard 或 Oracle Active Data Guard。MAA 建议使用 Oracle Active Data Guard 自动修复数据损坏和卸载报告功能。
    6. 对于跨区域 Oracle Data Guard 关联,仅支持最大性能保护模式。
    7. 选择现有数据库主目录或创建数据库主目录。建议将主数据库的同一数据库软件映像用于备用数据库主目录,以便两者具有相同的可用补丁程序。
    8. 输入 SYS 用户的密码并启用 Oracle Data Guard

    启用 Oracle Data Guard 后,备用数据库将列在“Data Guard 关联”部分中。

  3. (可选)通过在单独的 VM(最好在单独的位置或应用程序网络中)上安装 Data Guard Observer,启用自动故障转移(快速启动故障转移)以减少发生故障时的恢复时间。

确认

  • 授权者Ricardo Anda, Srikanth Bolisetty, Julien Silverston, Andy Steinorth
  • 贡献者Tammy Bednar, Wei Han, Glen Hawkins, Gavin Parish, Sinan Petrus Toma, Lawrence To, Thomas Van Buggenhout, Robert Lies