Oracle Database@Azure 上導入 Oracle Exadata Database Service 的跨區域災難復原

設計應用程式時,必須建立健全的災害復原機制,以便在發生停機時回復作業,以確保業務連續性。

多年來,客戶信任 Oracle Exadata Database Service 使用 Oracle Maximum Availability Architecture (MAA) 在內部部署和 Oracle Cloud Infrastructure (OCI) 上運作關鍵任務應用程式。Oracle Database@Azure 上的 Oracle Exadata Database Service 在 OCI 上提供 Exadata 的功能性和價格同位檢查,可以跨多個 Microsoft Azure 可用性區域 (AZ) 和區域進行部署,以確保高可用性和災害復原。

架構

此架構在跨區域的災難復原拓樸中,顯示具有 Oracle Database@AzureOracle Exadata Database Service 的高可用性容器化 Azure Kubernetes Service (AKS) 應用程式。

高可用性、容器化的 Azure Kubernetes Service (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) 中。
  • 傳輸網路的 Hub VCN 主要 VCN 為 10.15.0.0/29。
  • 待命 Exadata VM 叢集部署在 VCN 待命 VCN 從屬端子網路 (10.6.0.0/24) 中。
  • 傳輸網路的 Hub VCN 待命 VCN 為 10.16.0.0/29。

Hub VCN 不需要任何子網路才能啟用傳輸路由,因此這些 VCN 可以使用非常小的網路。在為主要和待命資料庫建立 Oracle Database@Azure 上的 Oracle Exadata Database Service VM 叢集之後,會建立 OCI 子項網站上的 VCN。

下列圖表說明架構:



exadb-dr-db-azure-oracle.zip

Microsoft Azure 提供下列元件:

  • Microsoft Azure 區域

    Azure 區域是一個地理區域,其中一或多個實體 Azure 資料中心,稱為可用性區域。區域與其他區域無關,且遠距離可加以區分 (跨國家,甚至是大陸)。

    Azure 和 OCI 區域都是本地化的地理區域。若為 Oracle Database@Azure,Azure 區域會連線至 OCI 區域,Azure 中的可用性區域 (AZ) 會連線至 OCI 中的可用性網域 (AD)。選取 Azure 和 OCI 區域組以將距離和延遲降到最低。

  • Microsoft Azure 可用性區域

    可用性區域是設計為具有高可用性和容錯能力的區域內實體獨立的資料中心。可用性區域接近時已足以與其他可用性區域建立低延遲連線。

  • Microsoft Azure 虛擬 Netwok

    Microsoft Azure Virtual Network (VNet) 是 Azure 中專用網路的基礎建置區塊。VNet 可啟用許多類型的 Azure 資源,例如 Azure 虛擬機器 (VM),以安全的方式相互通訊、網際網路和內部部署網路。

  • Microsoft Azure 委派子網路

    子網路委派可讓您將受管理的服務 (特別是平台即服務 (PaaS) 服務) 直接插入您的虛擬網路中。委派子網路可以是虛擬網路內外部管理服務的本位目錄,即使是外部 PaaS 服務,外部服務也可以作為虛擬網路資源。

  • Microsoft Azure VNIC

    Azure 資料中心中的服務具有實體網路介面卡 (NIC)。虛擬機器執行處理會使用與實體 NIC 關聯的虛擬 NIC (VNIC) 進行通訊。每個執行處理都有一個主要 VNIC,此 VNIC 會在啟動時自動建立並連附,可在執行處理使用期間使用。

  • Microsoft Azure 路由表

    虛擬路由表包含規則,可將流量從子網路遞送至 VNet 以外的目的地,通常透過閘道。路由表與 VNet 中的子網路關聯。

  • Azure 虛擬網路閘道

    Azure Virtual Network Gateway 服務會在 Azure 虛擬網路與內部部署網路之間建立安全、跨企業內部部署的連線。它可讓您建立跨資料中心和 Azure 的混合網路。

Oracle Cloud Infrastructure 提供下列元件:

  • OCI 地區

    OCI 區域是本地化的地理區域,包含一或多個代管可用性網域的資料中心。區域獨立於其他地區,且遠距離能夠分離它們 (跨國家,甚至是大陸)。

  • 可用性網域

    可用性網域是區域內的獨立獨立資料中心。每個可用性網域中的實體資源會與其他可用性網域中的資源隔離,提供容錯能力。可用性網域不共用基礎架構 (例如電源或冷卻系統) 或內部可用性網域網路。因此,一個可用性網域發生故障不應影響區域中的其他可用性網域。

  • 虛擬雲端網路 (VCN) 和子網路

    虛擬雲端網路 (VCN) 是您在 OCI 區域中設定的可自訂軟體定義網路。與傳統資料中心網路一樣,VCN 可讓您控制網路環境。VCN 可以有多個非重疊的無類別網域間路由 (CIDR) 區塊,您可以在建立 VCN 之後變更這些區塊。您可以將 VCN 分隔到子網路中,而子網路的作用領域可以調整到某個區域或可用性網域。每個子網路都是由連續的位址範圍所組成,這些位址不會與 VCN 中的其他子網路重疊。您可以在建立子網路後變更其大小。子網路可以是公用網路或專用網路。

  • 路由表

    虛擬路由表包含規則,可將流量從子網路路由至 VCN 外部的目的地,通常透過閘道。

  • 安全清單

    您可以為每個子網路建立安全規則,以指定允許進出子網路的來源、目的地和流量類型。

  • 動態路由閘道 (DRG)

    DRG 是一個虛擬路由器,提供相同區域 VCN 之間、VCN 與區域外部網路 (例如另一個 OCI 區域中的 VCN、內部部署網路,或其他雲端提供者中的網路) 的專用網路流量路徑。

  • 服務閘道

    服務閘道可讓您從 VCN 存取其他服務,例如 Oracle Cloud Infrastructure Object Storage 。從 VCN 到 Oracle 服務的流量會透過 Oracle 網路結構傳送,不會周遊網際網路。

  • 本地對等互連

    本機對等允許同一 OCI 區域內的兩個 VCN 直接使用私有 IP 位址進行通訊。此通訊不會周遊網際網路或內部部署網路。本地對等互連是由本機對等互連閘道 (LPG) 啟用,該閘道可作為 VCN 之間的連接點。在每個 VCN 中設定 LPG 並建立對等互連關係,讓一個 VCN 中的執行處理、負載平衡器和其他資源能夠安全地存取相同區域內另一個 VCN 中的資源。

  • 網路安全群組 (NSG)

    NSG 是您雲端資源的虛擬防火牆。透過 OCI 的零信任安全模型,您可以控制 VCN 中的網路流量。NSG 由一組傳入和傳出安全規則組成,這些規則僅適用於單一 VCN 中一組指定的虛擬網路介面卡 (VNIC)。

  • OCI Object Storage

    OCI Object Storage 可讓您存取任何內容類型的大量結構化和非結構化資料,包括資料庫備份、分析資料,以及豐富的內容 (例如影像和影片)。您可以直接從應用程式或雲端平台內安全地儲存資料。您可以擴展儲存,而不會發生任何效能或服務可靠性的降低情況。

    針對您需要快速、立即和經常存取的「熱」儲存,使用標準儲存。針對長時間保留且極少或極少存取的「冷」儲存,使用封存儲存。

  • Oracle Data Guard

    Oracle Data GuardActive Data Guard 提供一組全方位的服務,可建立、維護、管理及監督一或多個待命資料庫,讓實際環境執行 Oracle 資料庫維持可用狀態而不會中斷。Oracle Data Guard 會使用記憶體內複製,將這些待命資料庫當作實際環境執行資料庫的複本。如果生產資料庫因計畫性或非計畫性停機而無法使用,Oracle Data Guard 可以將任何待命資料庫切換至生產環境角色,將停機時間降到最低。Oracle Active Data Guard 可讓您將幾乎讀取的工作負載卸載至待命資料庫,還能提供進階資料保護功能。

  • Oracle Database 自治式復原服務

    Oracle Database Autonomous Recovery Service 是一項完全託管的服務,旨在保護 Oracle Database 免於資料遺失和網路威脅。它可以減少資料庫負荷、使用經過驗證的備份提供可靠的復原以及即時保護,以在停機或勒索軟體攻擊不到一秒的時間內進行復原,從而加快備份速度。此服務提供集中式資料保護儀表板,建議您備份具有高復原能力的 Oracle Database

  • Exadata 資料庫服務

    Oracle Exadata 是一個企業資料庫平台,以高效能、可用性和安全性,執行各種規模和重要性的 Oracle Database 工作負載。Exadata 的橫向擴展設計採用獨特的最佳化功能,讓交易處理、分析、機器學習和混合式工作負載的執行速度更快、更有效率。在企業資料中心、OCI 和多雲端環境中,在 Exadata 平台上整合各種 Oracle Database 工作負載,可協助組織提高營運效率、減少 IT 管理並降低成本。

    讓您能夠在雲端中運用 Exadata 的強大功能。Oracle Exadata Database Service 在公有雲中針對特定用途建立的最佳化 Oracle Exadata 基礎架構,提供經實證的 Oracle Database 功能。針對所有 Oracle Database 工作負載,內建雲端自動化、彈性資源擴展、安全性和快速效能,可協助您簡化管理並降低成本。

  • Oracle Database@Azure,基礎架構即服務

    Oracle Database@Azure 是在 OCI 上執行的 Oracle Database 服務 (Oracle Exadata Database Service on Dedicated InfrastructureOracle Autonomous AI Database Serverless),部署在 Microsoft Azure 資料中心。此服務提供與 OCI 相同的功能和價格。在 Azure Marketplace 購買服務。

    Oracle Database@AzureOracle Exadata Database ServiceOracle Real Application Clusters (Oracle RAC) Oracle Data Guard 技術整合至 Azure 平台。使用者可以在 Azure 主控台和 Azure 自動化工具管理服務。此服務部署在 Azure Virtual Network (VNet) 中,並與 Azure 識別和存取管理系統整合。Azure 原生提供 OCI 和 Oracle Database 一般指標和稽核日誌。此服務需要使用者擁有 Azure 訂閱和 OCI 租用戶。

    Autonomous AI Database 建置在 Oracle Exadata 基礎架構上,可自我管理、自我保護及自我修復,有助於消除手動資料庫管理和人為錯誤。Autonomous AI Database 使用您選擇的大型語言模型 (LLM) 和部署位置,使用內建 AI 功能,開發可擴展的 AI 應用程式及任何資料。

    Oracle Exadata Database ServiceOracle Autonomous AI Database Serverless 都可透過原生 Azure 入口網站輕鬆佈建,從而存取更廣泛的 Azure 生態系統。

建議

Oracle Database@Azure 上的 Oracle Exadata Database Service 執行跨區域災害復原時,請使用下列建議作為起點。 您的需求可能與此處所述的架構不同。
  • 在主要和待命區域部署所需的 Exadata 基礎架構。對於每個 Exadata 執行處理,請在 Microsoft Azure 虛擬網路 (VNet) 的委派子網路中部署 Exadata VM 叢集。然後就可以在叢集上建立 Oracle Real Application Clusters (RAC) 資料庫。在相同的 VNet 中,在個別的子網路中部署 Azure Kubernetes Service (AKS)。設定 Oracle Data Guard 以將資料從一個 Oracle Database 複製到另一個跨區域。
  • 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
  • Oracle Cloud Infrastructure 是首款 10 TB/ 每月免費,可實現更佳效能、按延遲和輸送量測量,並降低成本的首選網路。

部署

若要設定上述架構圖中顯示區域之間的網路通訊,請完成下列高階步驟。

主要區域

  1. Oracle Cloud Infrastructure (OCI) 主要區域中建立虛擬雲端網路 (VCN)、 HUB VCN 主要
  2. 分別在 VCN 主要HUB VCN 主要部署兩個本機對等互連閘道 (LPG)、 Primary-LPGHUB-Primary-LPG
  3. HUB VCN 主要VCN 主要的 LPG 之間建立對等 LPG 連線。
  4. Hub VCN 主要 VCN 中建立動態路由閘道 (DRG),主要 -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. Hub VCN 主要 VCN,將 Hub VCN 主要連附至 DRG。編輯 DRG VCN 連附項,在進階選項下編輯頁籤 VCN 路由表,將其與 primary_hub_transit_drg 路由表關聯。此組態允許傳輸路由。
  8. Hub VCN 主要 VCN,將 primary_hub_transit_lpg 路由表與 Hub-Primary-LPG 閘道建立關聯。
  9. Hub 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. 主要 DRG 中,選取 DRG 路由表、用於 RPC、VC 及 IPSec 附件的自動產生 DRG 路由表。將靜態路由新增至 VCN 主要子網路從屬端 IP 位址範圍,該範圍使用下一個躍點連附項類型為 VCN 的 VCN 和下一個躍點連附項名稱為主要中心連附項Hub VCN 主要 VCN。舉例而言:
    10.5.0.0/24 VCN Primary Hub attachment
  11. 使用 Primary-DRG 遠端對等互連連線附件功能表,建立遠端對等互連連線 RPC
  12. VCN 主要從屬端子網路中,更新網路安全群組 (NSG) 以建立允許輸入 TCP 連接埠 1521 的安全規則。您可以選擇新增 SSH 連接埠 22,以直接透過 SSH 存取資料庫伺服器。

    附註:

    如需更精確的組態,請停用 RPC、VC 及 IPSec 附件的自動產生 DRG 路由表的匯入路由分配。若為針對 VCN 連附項自動產生的 DRG 路由表,請建立並指定新的匯入路由分配,包括僅包含必要的 RPC 連附項。

待命區域

  1. 在 OCI 待命區域中建立 VCN HUB VCN 待命
  2. 分別在 VCN 待命HUB VCN 待命 VCN 中部署兩個 LPG 待命 LPGHUB-Standby-LPG
  3. VCN 待命HUB VCN 待命的 LPG 之間建立對等 LPG 連線。
  4. Hub VCN Standby VCN 中建立 DRG 待命 DRG
  5. HUB VCN Standby 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 以及目標 Standby-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. 待命 DRG 中,選取 DRG 路由表 RPC、VC 及 IPSec 附件的自動產生 Drg 路由表。將靜態路由新增至 VCN 待命子網路從屬端 IP 位址範圍,該範圍使用下一個躍點連附類型為 VCN 的 Hub VCN 待命 VCN,以及下一個躍點連附項名稱待命中心連附項。舉例而言:
    10.6.0.0/24 VCN Standby Hub attachment
  11. 使用 Standby-DRG 遠端對等互連連線連附項功能表來建立遠端對等互連連線 RPC
  12. 選取遠端對等互連連線,選取建立連線,然後提供主要 DRG OCID。對等互連狀態會變成對等互連狀態。兩個區域都已連線。
  13. VCN 待命從屬端子網路中,更新 NSG 以建立安全規則以允許輸入 TCP 連接埠 1521。您可以選擇新增 SSH 連接埠 22,以直接透過 SSH 存取資料庫伺服器。

資料保全關聯

  1. 若要為 Oracle Database 啟用 Oracle Data Guard 或 Oracle Active Data Guard,請在 Oracle Database 詳細資訊頁面上按一下「資料保全關聯」,然後按一下啟用資料保全
  2. 在「啟用資料保全」頁面上:
    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 之後,待命資料庫就會列在「資料保全關聯」段落中。

  3. (選擇性) 在個別的 VM 上安裝 Data Guard Observer (最好是在個別的位置或應用程式網路中),啟用自動容錯移轉 (快速啟動容錯移轉) 以縮短失敗時的復原時間。

部署

請依照下列步驟,從 GitHub 下載程式碼、自訂程式碼,然後進行部署:

  1. 請前往 GitHub
  2. 複製或下載儲存區域。
  3. 遵循 README 文件中的指示。

認可

  • 授權者Ricardo Anda, Srikanth Bolisetty, Julien Silverston, Andy Steinorth, Lingaraj Nayak
  • 貢獻者Tammy Bednar, Wei Han, Glen Hawkins, Gavin Parish, Sinan Petrus Toma, Lawrence To, Thomas Van Buggenhout, Robert Lies