Azure 上的 Oracle 應用程式和解決方案概觀

適用於:✔️ Linux VM

在本文中,您將瞭解如何使用 Azure 基礎結構執行 Oracle 解決方案。

重要

Azure 裸機基礎結構不支援 Oracle RAC 和 Oracle RAC OneNode。

Azure 基礎結構上的 Oracle 資料庫

Oracle 支援在 Oracle Linux VM 映像的 Azure 中,執行 Oracle Database 12.1 及更新版本的 Standard 和 Enterprise Edition。 您可使用 Azure Marketplace 所提供 Oracle Linux 映像上的 Oracle Database,在 Azure 基礎結構上執行 Oracle 資料庫。

  • Oracle Database 12.2 和 18.3 Enterprise Edition
  • Oracle Database 12.2 和 18.3 Standard Edition
  • Oracle 資料庫 19.3
    您也可採取下列其中一個方法:
  • 在 Azure 適用的非 Oracle Linux 映像上設定 Oracle Database。
  • 在於 Azure 中從頭開始建立的自訂映像上建置解決方案。
  • 從內部部署環境上傳自訂映像。

您也可選擇使用多個連結磁碟設定解決方案。 您可安裝 Oracle Automated Storage Management (ASM) 來改善資料庫效能。 為了讓 Azure 上的 Oracle Database 生產工作負載提供最佳效能,請務必適當地調整 VM 映像的大小,然後根據輸送量、IOPS 和延遲選取正確的儲存體選項。 如需瞭解如何使用 Oracle 發佈的 VM 映像會,在 Azure 中快速啟動並執行 Oracle Database,請參閱在 Azure VM 中建立 Oracle Database

在 Microsoft Azure 上部署 Oracle VM 映像

本節針對 Oracle 在 Azure Marketplace 發佈的虛擬機器 (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 Marketplace 中 Azure Marketplace 供應項目的形式推出 WebLogic Server。 如需這些供應項目的詳細資訊,請參閱執行 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 虛擬網路中。 用戶端層位於相同虛擬網路中的不同子網路,並執行簡單的 Java 程式,嘗試呼叫服務層中的 EJB。 您必須對服務層進行負載平衡,因此需要在 Oracle WebLogic Server 叢集中建立 VM 的公用負載平衡端點。 如果指定的私人連接埠與公用連接埠不同,則會發生錯誤。 例如,如果您使用 7006:7008,則下列錯誤的發生原因是 Oracle WebLogic Server 預期所有遠端 T3 存取的負載平衡器連接埠和 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 的執行個體仍可以是相同叢集的一部分。 但在同一個 VM 內,這類 Oracle WebLogic Server 部署公開的端點,目前不能使用 Azure 進行負載平衡。 Azure Load Balancer 要求負載平衡伺服器散發在唯一的 VM 之間。

高可用性和災害復原選項

在 Azure 中使用 Oracle 解決方案時,您必須負責實作高可用性和災害復原解決方案,以避免停機。 您也可以使用 Data Guard、Active Data Guard 或 Oracle GoldenGate,為 Oracle Database Enterprise Edition 實作高可用性和災害復原。 這個方法需要兩個資料庫分別建置在兩個不同 VM 上,而這兩個 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 Active Data Guard。

如需瞭解 Azure 的基本設定程序,請參閱在 Azure Linux VM 上實作 Oracle Golden Gate

您可以透過使用 Azure NetApp Files 可用性區域磁碟區放置 ,搭配跨區域 HA 架構的 Oracle Data Guard,有效地達到 Oracle 資料庫的高可用性。 或者,若要消除 Data Guard 授權的成本,並在次要區域中執行 VM,您可以使用 Azure NetApp Files 的記憶體型復寫功能。 Azure NetApp Files 磁碟區可以以相同方式放在您選擇的可用性區域中,然後使用跨區域複寫在區域內的區域之間復寫(或使用跨區域復寫到另一個區域)。

除了在 Azure 中建置高可用性和災害復原解決方案之外,您也應制定將資料庫還原的備份策略。

備份 Oracle 工作負載

Azure VM 上的 Oracle 可以使用不同的備份策略,備份的其他選項如下:

在 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 Financial Management

您可在 Azure 中部署自訂應用程式,與 OCI 和其他 Azure 服務連線。

JD Edwards 的支援

根據 Oracle Support 所載,符合其特定最低技術要求 (MTR) 的任何公用雲端供應項目, 均支援 JD Edwards EnterpriseOne 9.2 版和更新版本。 您需要建立符合 MTR 規格的自訂映像,才能與作業系統和軟體應用程式相容。 如需詳細資訊,請參閱 Doc ID 2178595.1

授權

在 Azure 中部署 Oracle 解決方案是以自備授權模式為基礎。 此模式假設您有使用 Oracle 軟體的授權,且與 Oracle 之間已擁有支援合約。 Microsoft Azure 是執行 Oracle Database 的授權雲端環境。 若授權雲端 Oracle Database,將不能使用 Oracle Core Factor Table。 如需詳細資訊,請參閱 Oracle Processor Core Factor Table。 相反地,使用已針對 Enterprise Edition 資料庫啟用超執行緒技術的 VM 時,如果已啟用超執行緒,請將兩個 vCPU 計算為等同於一個 Oracle Processor 授權,如原則文件所述。 您可以在在雲端運算環境中授權 Oracle 軟體中找到原則詳細資料。
Oracle Database 通常需要高記憶體和 I/O。 因此建議為這些工作負載啟用記憶體最佳化 VM。 為了進一步最佳化您的工作負載,如果有 Oracle 資料庫工作負載需要高記憶體、儲存體和 I/O 頻寬,但核心數量又不高,建議使用Constrained Core vCPUs。 若將 Oracle 軟體和工作負載從內部部署移轉到 Microsoft Azure ,Oracle 將依Oracle 和 Microsoft 策略合作夥伴常見問題集所述,提供授權行動。

下一步

您現在已大致瞭解以 Microsoft Azure 的 VM 映像為基礎的現行 Oracle 資料庫和解決方案。 下一個步驟是在 Azure 上部署第一個 Oracle 資料庫。