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

適用於:✔️ Linux VM

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

重要

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

Azure 基礎結構上的 Oracle 資料庫

Oracle 支援在以 Oracle Linux 為基礎的 VM 映射上,在 Azure 中執行其資料庫 12.1 和更高的 Standard 和 Enterprise 版本。 您可以使用 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 Database 19.3
    您也可以採用下列其中一種方法:
  • 在 Azure 中可用的非 Oracle Linux 映射上設定 Oracle Database。
  • 在 Azure 中從頭開始建立的自定義映像上建置解決方案。
  • 從內部部署環境上傳自定義映像。

您也可以選擇使用多個連結磁碟來設定解決方案。 您可以藉由安裝 Oracle 自動化 儲存體 管理 (ASM) 來改善資料庫效能。 針對 Azure 上 Oracle Database 生產工作負載的最佳效能,請務必正確調整 VM 映射的大小,並根據輸送量、IOPS 和延遲選取正確的記憶體選項。 如需如何使用 Oracle 已發布的 VM 映像在 Azure 中快速啟動並執行 Oracle 資料庫的指示,請參閱 在 Azure VM 中建立 Oracle 資料庫

在 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 伺服器上的應用程式

在支援的 Oracle Linux 映射上,在 Azure 中的 WebLogic 伺服器上執行企業應用程式。 如需詳細資訊,請參閱 Azure 解決方案概觀上的 WebLogic 檔 Oracle WebLogic Server。

具有 Azure 服務整合的 WebLogic Server

Oracle 和 Microsoft 正在共同作業,以 Azure 應用程式 供應專案的形式將 WebLogic Server 帶入 Azure Marketplace。 如需這些供應專案的詳細資訊,請參閱 什麼是執行 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) 時。 請考慮多層式案例,其中服務層應用程式是在名為 SLWLS 的虛擬網路中,由兩部或多個 VM 組成的 Oracle WebLogic Server 叢集上執行。 用戶端層位於相同虛擬網路的不同子網中,執行簡單的 Java 程式,嘗試在服務層中呼叫 EJB。 由於您必須對服務層進行負載平衡,因此您必須為 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 Load Balancer 需要負載平衡的伺服器分散到唯一 VM 之間。

高可用性和災害復原選項

在 Azure 中使用 Oracle 解決方案時,您必須負責實作高可用性和災害復原解決方案,以避免任何停機時間。 您也可以使用 Data Guard、Active Data Guard 或 Oracle GoldenGate 來實作 Oracle Database Enterprise Edition 的高可用性和災害復原。 此方法需要兩個不同的 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 內設定資料庫。 如需詳細資訊,請參閱 Azure 上的 Terraform。

Oracle 已認證下列應用程式,以在連線到 Oracle 資料庫時,使用 Azure 搭配 Oracle Cloud 互連解決方案在 Azure 中執行:

  • E-Business Suite
  • JD Edwards EnterpriseOne
  • PeopleSoft
  • Oracle 零售應用程式
  • Oracle Hyperion 財務管理

您可以在與 OCI 和其他 Azure 服務連線的 Azure 中部署自定義應用程式。

JD Edwards 的支援

根據 Oracle 支援,JD Edwards EnterpriseOne 9.2 版和更新版本支援符合其特定最低技術需求(MTR) 的任何公用雲端供應專案。 您必須建立符合其 MTR 規格的自定義映像,以取得作業系統和軟體應用程式相容性。 如需詳細資訊,請參閱 文件標識碼 2178595.1

授權

在 Azure 中部署 Oracle 解決方案是以自備授權模型為基礎。 此模型假設您有使用 Oracle 軟體的授權,且您目前已與 Oracle 簽訂支持合約。 Microsoft Azure 是執行 Oracle Database 的授權雲端環境。 在雲端中授權 Oracle 資料庫時,Oracle Core Factor 數據表不適用。 如需詳細資訊,請參閱 Oracle Processor Core Factor Table。 相反地,當針對 Enterprise Edition 資料庫使用已啟用 超執行緒技術 的 VM 時,如果已啟用超線程,請將兩個 vCPU 計算為相當於一個 Oracle 處理器授權的 vCPU,如原則檔中所述。 您可以在雲端運算環境中的授權 Oracle 軟體中找到原則詳細數據。
Oracle 資料庫通常需要較高的記憶體和 I/O。 基於這個理由,我們建議 使用這些工作負載的記憶體優化 VM 。 若要進一步優化工作負載,我們建議 針對需要高記憶體、記憶體和 I/O 頻寬的 Oracle 資料庫工作負載限制核心 vCPU ,但不是高核心計數。 當您將 Oracle 軟體和工作負載從內部部署移轉至 Microsoft Azure 時,Oracle 會提供 Oracle 和 Microsoft 策略合作關係常見問題中所述的授權行動性。

下一步

您現在已概觀以 Microsoft Azure 中的 VM 映射為基礎的目前 Oracle 資料庫和解決方案。 下一個步驟是在 Azure 上部署您的第一個 Oracle 資料庫。