在 Google Cloud 上为 Exadata Database Service 实施跨区域灾难恢复

在设计应用程序时,必须建立一个强大的灾难恢复机制,以便在发生中断时恢复操作,以确保业务连续性。数据中心的传统复制灾难恢复设置可能成本更高。因此,许多组织正在转向云,以最大限度地降低前期基础设施成本,并部署适应其需求的可扩展解决方案。

多年来,客户一直信任使用 Oracle Maximum Availability Architecture (MAA) 的 Oracle Exadata Database Service 来确保本地部署和 Oracle Exadata Database Service 上的关键任务应用的弹性。Oracle Database@Google Cloud 上的 Oracle Exadata Database ServiceOracle Cloud Infrastructure (OCI) 上提供与 Exadata 的功能和价格均等,并且可以跨多个 Google Cloud 区域部署,以确保高可用性和灾难恢复。

体系结构

在两个 Google Cloud 区域中部署了高可用性 Google Cloud 应用程序:主区域和备用区域。

此架构在跨区域灾难恢复拓扑中显示具有 Oracle Database@Google CloudOracle Exadata Database Service 的高可用性 Google Cloud 应用程序。



exadb-dr-db-google-cloud-oracle.zip

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

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

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

数据库透明数据加密 (Transparent Data Encryption,TDE) 密钥存储在 Oracle Cloud Infrastructure Vault 中,并在 OCI 区域之间复制。

自动备份在主区域和备用区域上配置到 Oracle Database Autonomous Recovery Service ,该服务可以位于 Google Cloud 或 OCI 中。

Oracle Database Autonomous Recovery Service 是自动备份的首选解决方案。您也可以使用 OCI Object Storage

该体系结构包含以下组件:

  • Google Cloud 区域

    Google Cloud 区域是一个地理区域,其中包含用于托管资源的数据中心和基础设施。区域由区域组成,这些区域在该区域中彼此隔离。

  • 区域

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

  • Google Virtual Private Cloud

    Google Virtual Private Cloud (VPC) 为计算引擎虚拟机 (VM) 实例、Google Kubernetes Engine (GKE) 容器、数据库服务和无服务器工作负载提供网络功能。VPC 为基于云的服务提供全局、可扩展和灵活的网络。

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

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

  • Oracle Exadata Database Service

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

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

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

  • 对象存储

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

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

  • Oracle Cloud Infrastructure Vault

    借助 Oracle Cloud Infrastructure Vault ,您可以创建并集中管理加密密钥,以保护数据以及用于保护对云中资源的访问权限的密钥凭证。默认密钥管理是 Oracle 管理的密钥。您还可以使用客户管理的密钥,这些密钥使用 OCI VaultOCI Vault 提供一组丰富的 REST API 来管理 Vault 和密钥。

  • Oracle Database Autonomous Recovery Service

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

  • 受管理服务

    托管服务提供特定功能,不需要您执行与优化性能、可用性、扩展、安全性或升级相关的维护任务。通过托管服务,您可以集中精力为客户提供功能,而不必担心运营的复杂性。托管服务为云原生开发提供了可扩展的安全组件。使用托管服务来开发和运行您的应用并存储其数据。您可以获得一流的解决方案,而无需每个领域的专业知识即可构建和运行您的应用。

  • 本地对等连接

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

  • 远程对等连接

    远程对等连接允许不同 VCN 中的资源使用专用 IP 地址进行通信。对于需要与不同区域中的其他 VCN 通信的实例,使用远程对等连接无需互联网网关或公共 IP 地址。

  • Data Guard

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

  • Oracle Database@Google Cloud

    Oracle Database@Google Cloud 是一项 Oracle Cloud 数据库服务,可在 Google Cloud 环境中运行 Oracle Database 工作负载。Oracle Database@Google Cloud 的所有硬件都托管在 Google Cloud 的数据中心,并使用 Google Cloud 网络。该服务得益于 Google Cloud 中单一操作环境的简单性、安全性和低延迟。您可以通过 Google Cloud 控制台或使用 Google Cloud 自动化工具来管理服务。Google Cloud IAM 和 Admin 为 Oracle Exadata Database Service 提供联合身份和访问管理。

推荐

Oracle Database@Google Cloud 上对 Oracle Exadata Database Service 执行跨区域灾难恢复时,请使用以下建议作为起点。您的要求可能与此处描述的体系结构不同。
  • 每三到六个月执行一次常规应用程序和数据库切换操作,或者执行完整的应用程序和数据库故障转移测试。
  • 在主区域和备用区域中部署所需的 Exadata 基础结构。对于每个 Exadata 实例,在不同的子网中的同一虚拟专用云 (Virtual Private Cloud,VPC) 中部署 Exadata VM 集群。然后,可以在集群上实例化 Oracle Real Application Clusters (Oracle RAC) 数据库。在同一 VPC 中,将应用部署在单独的子网中。Configure Active Data Guard to replicate data from one Oracle Database to the other, across regions.
  • 使用 OCI 控制台、OCI CLI、SDK、REST API 等 Oracle Cloud 自动化工具,根据 Oracle 高可用性架构 (Maximum Availability Architecture,MAA) 优秀实践自动预配活动数据卫士备用数据库。

注意事项

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

  • 使用综合灾难场景进行准备,该场景考虑了不同的业务需求和可用性架构。您的计划必须具有可操作性,并包括高可用性 (High-availability,HA)、灾难恢复 (Disaster Recovery,DR) 要求。此架构提供了一些指导原则,可帮助您为 OCI 和 Google Cloud 环境中的灾难恢复配置使用简单有效的故障转移来选择最适合应用部署的方法。
  • (可选)通过在单独的 VM(最好在单独的位置或应用程序网络中)上安装 Oracle Data Guard 观察程序,启用自动故障转移(快速启动故障转移)以减少发生故障时的恢复时间。
  • 您可以配置自动备份到 OCI 或 Google Cloud 上的 Oracle Database Autonomous Recovery Service
  • 您可以使用 OCI 自动化功能在创建备用数据库期间配置 Oracle Data Guard活动数据卫士

部署

要配置跨区域 VCN 对等连接并在体系结构图中所示的区域之间建立网络通信,请完成以下高级步骤。

主区域

  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. Hub VCN Primary VCN 中创建动态路由网关 (Dynamic Routing Gateway,DRG) 和 Primary-DRG
  5. HUB VCN 主 VCN 中,创建路由表 primary_hub_transit_drg ,并为 VCN 主客户机子网的目标、目标类型 LPG 和目标 HUB-Primary-LPG 分配目标。例如:
    10.5.0.0/24 target type: LPG, Target: Hub-Primary-LPG
  6. HUB VCN 主 VCN 中,创建第二个路由表 primary_hub_transit_lpg ,并为 VCN 备用客户端子网的目标、目标类型 DRG 和目标 Primary-DRG 分配目标。例如:
    10.6.0.0/24 target type: DRG, Target: Primary-DRG
  7. 中心 VCN 主 VCN,将中心 VCN 主连接到 DRG。编辑 DRG VCN 附加,在高级选项下,编辑选项卡 VCN 路由表以将其与 primary_hub_transit_drg 路由表关联。此配置允许传输路由。
  8. 中心 VCN 主 VCN 中,将 primary_hub_transit_lpg 路由表与 Hub-Primary-LPG 网关关联。
  9. 中心 VCN 主默认路由表中,为 VCN 主客户端子网 IP 地址范围添加路由规则以使用 LPG。为 VCN 备用客户端子网 IP 地址范围添加另一个路由规则以使用 DRG。例如:
    10.5.0.0/24 LPG Hub-Primary-LPG
    10.6.0.0/24 DRG Primary-DRG
  10. 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
  11. 使用 Primary-DRG 远程对等连接附加菜单创建远程对等连接 RPC
  12. 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. Hub VCN 备用 VCN 中创建一个 DRG Standby-DRG
  5. HUB VCN 备用 VCN 中,创建一个路由表 standby_hub_transit_drg ,并为 VCN 备用客户机子网的目标、目标类型 LPG 和目标 HUB-Standby-LPG 分配目标。例如:
    10.6.0.0/24 target type: LPG, Target: Hub-Standby-LPG
  6. HUB VCN 备用 VCN 中,创建第二个路由表 standby_hub_transit_lpg 并分配 VCN 主客户机子网、目标类型 DRG 和目标备用 DRG 的目标。例如:
    10.5.0.0/24 target type: DRG, Target: Standby-DRG
  7. HUB VCN 备用 VCN,将 HUB VCN 备用 VCN 连接到 DRG。编辑 DRG VCN 附加,并在高级选项下编辑 VCN 路由表以将其与 standby_hub_transit_drg 路由表关联。此配置允许传输路由。
  8. HUB VCN 备用 VCN 的 HUB VCN 备用默认路由表中,为 VCN 备用客户端子网 IP 地址范围添加路由规则,以使用 LPG,为 VCN 主客户端子网 IP 地址范围添加路由规则以使用 DRG。例如:
    10.6.0.0/24 LPG Hub-Standby-LPG
    10.5.0.0/24 DRG Standby-DRG
  9. 将路由表 standby_hub_transit_lpgHub-Standby-LPG 网关关联。
  10. Standby-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
  11. 使用备用 DRG 远程对等连接附加菜单创建远程对等连接 RPC
  12. 选择远程对等连接,选择建立连接,并提供主 DRG OCID。对等连接状态变为对等连接。两个区域都连接在一起。
  13. VCN 备用客户端子网中,更新 NSG 以创建安全规则来允许 TCP 端口 1521 入站。(可选)可以添加 SSH 端口 22 以直接通过 SSH 访问数据库服务器。

Data Guard

按照以下步骤在 Oracle Database 中启用 Oracle Data GuardActive Data Guard

  1. Oracle Database 详细信息页面上,单击 Data Guard 组,然后单击添加备用数据库
  2. 在“添加备用数据库”页上:
    1. 选择备用对等区域。
    2. 选择映射到 Google Cloud 区域的备用可用性域。
    3. 选择备用 Exadata 基础结构。
    4. 选择所需的备用 VM 集群。
    5. 选择 Oracle Data GuardActive Data Guard

      注意:

      Oracle MAA 建议使用活动数据卫士来自动修复数据损坏并卸载报告。
    6. 对于跨区域 Oracle Data Guard 关联,仅支持最大性能保护模式。
    7. 选择现有数据库主目录或创建一个数据库主目录。

      注意:

      Oracle 建议对备用数据库主目录使用主数据库的相同数据库软件映像,以便两个数据库主目录都具有相同的可用补丁程序。
    8. 输入 SYS 用户的口令。
    9. 单击添加备用数据库

    启用 Oracle Data Guard 后,备用数据库将列在 Oracle Data Guard 组部分中。

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

确认

  • 授权者Sinan Petrus Toma, Glen Hawkins, Julien Silverston
  • 贡献者Andy Steinorth, Lawrence To, Sreya Dutta