你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 上的 Oracle 应用程序和解决方案概述

适用于:✔️ Linux VM

本文介绍如何使用 Azure 基础结构运行 Oracle 解决方案。

重要

Azure 裸机基础结构不支持 Oracle RAC 和 Oracle RAC OneNode。

Azure 基础结构上的 Oracle 数据库

Oracle 支持在基于 Oracle Linux 的 VM 映像上的 Azure 中运行 Database 12.1 及更高版本的标准版和企业版。 可以使用 Azure 市场中提供的 Oracle Linux 映像上的 Oracle 数据库在 Azure 基础结构上运行 Oracle 数据库。

  • Oracle Database 12.2 和 18.3 Enterprise Edition
  • Oracle Database 12.2 和 18.3 Standard Edition
  • Oracle Database 19.3
    还可以采用以下方法:
  • 在 Azure 中可用的非 Oracle Linux 映像上设置 Oracle Database。
  • 基于你在 Azure 中从头创建的自定义映像构建解决方案。
  • 从本地环境上传自定义映像。

还可以选择使用多个附加磁盘配置解决方案。 可以通过安装 Oracle 自动存储管理 (ASM) 提高数据库性能。 为使 Azure 上的 Oracle 数据库的生产工作负载实现最佳性能,请务必正确调整 VM 映像的大小,并根据吞吐量、IOPS 和延迟选择正确的存储选项。 有关如何使用 Oracle 发布的 VM 映像在 Azure 中快速启动并运行 Oracle Database 的说明,请参阅在 Azure VM 中创建 Oracle Database

在 Microsoft Azure 上部署 Oracle VM 映像

本部分介绍了以 Oracle 在 Azure 市场中发布的虚拟机 (VM) 映像为基础的 Oracle 解决方案的相关信息。 若要获取当前可用的 Oracle 映像的列表,请使用 Azure CLI 或 Azure Cloud Shell 运行以下命令

az vm image list --publisher oracle --output table –all

这些映像属于自带许可。 你只需为运行 VM 产生的计算、存储和网络成本付费。 你还可选择基于你在 Azure 中从头创建的自定义映像构建解决方案,或从本地环境上传自定义映像。

重要

你需要使用 Oracle 软件所需的适当许可证,以及与 Oracle 签订的当前支持协议。 Oracle 确保了从本地到 Azure 的许可移动性。 有关许可移动性的详细信息,请参阅 Oracle 和 Microsoft 战略合作关系常见问题解答

Oracle Linux 和 WebLogic Server 上的应用程序

在受支持的 Oracle Linux 映像上运行 Azure 中 WebLogic server 上的企业应用程序。 有关详细信息,请参阅 WebLogic 文档 Azure 上的 Oracle WebLogic Server 解决方案概述

WebLogic Server 与 Azure 服务集成

Oracle 和 Microsoft 正在协作,以 Azure 应用程序套餐的形式将 WebLogic Server 引入 Azure 市场。 有关这些套餐的详细信息,请参阅采用哪些解决方案运行 Oracle WebLogic Server

Oracle WebLogic Server VM 映像

群集仅在 Enterprise Edition 中受支持。 仅在使用 Oracle WebLogic Server 的 Enterprise Edition 时许可使用 WebLogic 群集。 不要将群集用于 Oracle WebLogic Server Standard Edition。 不支持 UDP 多播。 Azure 支持 UDP 单播,但不支持多播和广播。 Oracle WebLogic Server 能够依赖于 Azure UDP 单播功能。 为了获得依赖于 UDP 单播的最佳结果,建议将 WebLogic 群集大小保留静态,或者使托管服务器不超过 10 个。 Oracle WebLogic Server 预期 T3 访问的公用端口和专用端口是相同的。 例如,使用 Enterprise JavaBeans (EJB) 时。 考虑一个多层场景,其中服务层应用程序在 Oracle WebLogic Server 群集中运行,该群集包含两个或两个以上的 VM,采用名为 SLWLS 的虚拟网络。 客户端层位于同一虚拟网络的其他子网中,运行尝试调用服务层中的 EJB 的简单 Java 程序。 由于必须对服务层进行负载均衡,因此需要为 Oracle WebLogic Server 群集中的 VM 创建公共负载均衡终结点。 如果指定的专用端口与公共端口不同,则会发生错误。 例如,如果使用 7006:7008,以下错误会发生,因为对于任何远程 T3 访问,Oracle WebLogic Server 都要求负载均衡器端口和 WebLogic 托管服务器端口是相同的。

[java] javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3://example.cloudapp.net:7006:

Bootstrap to: example.cloudapp.net/138.91.142.178:7006' over: 't3' got an error or timed out]

在上面的示例中,客户端访问端口 7006(负载均衡器端口),托管服务器侦听 7008(专用端口)。 此限制仅适用于 T3 访问,而不适用于 HTTP。

若要避免此问题,请使用下列解决方法之一:

  • 对于专用于 T3 访问的负载均衡终结点,可使用相同的专用和公用端口号。

  • 启动 Oracle WebLogic Server 时,请加入以下 JVM 参数:configCopy Dweblogic.rjvm.enableprotocolswitch=true

  • 动态群集和负载平衡限制。 假设要在 Oracle WebLogic Server 中使用动态群集并通过 Azure 中单个公共负载均衡终结点公开它。 只要对每个托管服务器使用固定的端口号(不是从范围中动态分配的),并且启动的托管服务器数不超过管理员正在跟踪的计算机数,就可以使用此方法。 每个 VM 不应有多个托管服务器。 如果配置导致启动的 Oracle WebLogic Server 数多于存在的 VM 数,则其中多个 Oracle WebLogic Server 实例不能绑定到给定端口号。 即,如果多个 Oracle WebLogic Server 实例共享同一虚拟机,则该 VM 上的其他实例将失败。 如果将管理服务器配置为自动向其托管服务器分配唯一端口号,则负载均衡将不可能,因为 Azure 不支持从单个公用端口映射到多个专用端口,而这是此配置所必需的。

  • VM 上 Oracle WebLogic Server 的多个实例。 如果 VM 足够大,根据部署需求,可以考虑在同一个 VM 上运行多个 Oracle WebLogic Server 实例。 例如,在包含两个内核的中等大小 VM 上,可以选择运行两个 Oracle WebLogic Server 实例。 但是,我们仍建议避免在体系结构中产生单一故障点。 在一个 VM 上运行多个 Oracle WebLogic Server 实例就是这样的单一点。

更好的方法是至少使用两个 VM。 每个 VM 都可以运行多个 Oracle WebLogic Server 实例。 每个 Oracle WebLogic Server 实例仍可以是同一个群集的一部分。 但是,目前不能使用 Azure 对同一个 VM 中此类 Oracle WebLogic Server 部署公开的终结点进行负载均衡。 Azure 负载均衡器需要将负载均衡服务器分布到唯一的 VM 中。

高可用性和灾难恢复选项

在 Azure 中使用 Oracle 解决方案时,你负责实现高可用性和灾难恢复解决方案,以避免任何故障时间。 也可以使用 Data Guard、Active Data Guard 或 Oracle GoldenGate 实现 Oracle Database Enterprise Edition 的高可用性和灾难恢复。 此方法需要两个位于不同 VM 上的数据库,这两个 VM 应位于相同的虚拟网络,以确保它们能够通过专用持久性 IP 地址相互访问。

我们建议将 VM 放置在同一可用性集中,以便 Azure 将它们置于单独的容错域和升级域中。 如想拥有地理冗余,请将这两个数据库设置为在两个不同区域之间复制,并将两个实例与 VPN 网关连接起来。 若要演练 Azure 上的基本设置过程,请参阅在 Azure Linux 虚拟机上实现 Oracle Data Guard。

有了 Oracle Active Data Guard,可以通过一个 VM 中的主数据库、另一个 VM 中的辅助(备用)数据库和它们之间的单向复制设置实现高可用性。 结果是对数据库副本的读取访问权限。 使用 Oracle GoldenGate,可以配置两个数据库之间的双向复制。 若要了解如何使用这些工具为数据库设置高可用性解决方案,请参阅 Active Data Guard 和 GoldenGate。 如果需要对数据库副本的读写访问权限,可以使用 Oracle 活动数据防护。

若要演练 Azure 上的基本设置过程,请参阅在 Azure Linux VM 上实现 Oracle Golden Gate

可以将 Azure NetApp 文件可用性区域卷放置与跨区域 HA 体系结构的 Oracle Data Guard 结合使用,从而有效地实现 Oracle 数据库的高可用性。 或者,若要避免 Data Guard 许可证的成本,并在辅助区域中运行 VM,可以使用 Azure NetApp 文件的基于存储的复制功能。 Azure NetApp 文件卷可以采用相同的方式放置在所选的可用性区域中,然后使用跨区域复制在区域之间复制(或使用跨地区复制复制到其他地区)。

除了在 Azure 中构建高可用性和灾难恢复解决方案外,还应准备一份备份策略来还原数据库。

备份 Oracle 工作负载

Azure 上的 Oracle VM 提供了不同的备份策略,以下备份是其他选项:

在 Azure 上部署 Oracle 应用程序

使用 Terraform 模板、AZ CLI 或 Azure 门户设置 Azure 基础结构并安装 Oracle 应用程序。 还可以使用 Ansible 在 VM 内配置 DB。 有关详细信息,请参阅 Azure 上的 Terraform

Oracle 已认证以下应用程序,使其使用 Azure 通过 Oracle 云互连解决方案连接到 Oracle 数据库时能够在 Azure 中运行:

  • E-Business Suite
  • JD Edwards EnterpriseOne
  • PeopleSoft
  • Oracle Retail 应用程序
  • Oracle Hyperion 财务管理

可以在 Azure 中部署与 OCI 和其他 Azure 服务连接的自定义应用程序。

对 JD Edwards 的支持

根据 Oracle 支持,JD Edwards EnterpriseOne 9.2 及以上版本受满足其特定最低技术要求 (MTR) 的所有公有云产品/服务的支持。 创建的自定义映像需要符合操作系统和软件应用程序兼容性的 MTR 规范。 有关详细信息,请参阅 Doc ID 2178595.1

授权

在 Azure 中部署 Oracle 解决方案基于自带许可模型。 此模型假定已获得使用 Oracle 软件的相关许可,且拥有 Oracle 最新支持协议。 Microsoft Azure 是一种用于运行 Oracle Database 的已授权云环境。 在云中授权 Oracle 数据库时,Oracle 内核系数表不适用。 有关详细信息,请参阅 Oracle 处理器内核系数表。 相反,当使用为 Enterprise Edition 数据库启用的超线程技术的 VM 时,如果启用了超线程(如策略文档中所述),则应将两个 vCPU 视为等效于一个 Oracle 处理器许可证。 可在在云计算环境中授权 Oracle 软件中找到策略详细信息。
Oracle 数据库通常需要更高端存储器和 I/O。 出于此原因,建议对这些工作负荷使用内存优化 VM。 若要进一步优化工作负荷,建议将受约束的核心 vCPU 用于需要高端存储器、存储和 I/O 带宽,但不需要高核心计数的 Oracle Database 工作负荷。 将 Oracle 软件和工作负荷从本地迁移到 Microsoft Azure 时,Oracle 提供许可移动性,如 Oracle 和 Microsoft 战略合作关系常见问题解答中所述。

后续步骤

现在你已大致了解了基于 Microsoft Azure 中 VM 映像的最新 Oracle 数据库和解决方案。 下一步则是在 Azure 上部署你的首个 Oracle 数据库。