使用 OCI Full Stack DR 和自訂指令碼,自動變更 OCI 資料庫服務中手動設定的 Oracle Data Guard 的資料庫角色

簡介

Oracle Cloud Infrastructure Full Stack Disaster Recovery (OCI Full Stack DR) 只需按一下,即可協調來自全球各地 Oracle Cloud Infrastructure (OCI) 區域之間的運算、資料庫和應用程式轉換。客戶可以自動執行復原一或多個業務系統所需的步驟,無需重新設計或重新架構現有的基礎架構、資料庫或應用程式,也無需使用專門的管理或轉換伺服器。

OCI Full Stack DR 為 OCI 上的各種 Oracle Database 服務提供完全整合的支援。這些資料庫可新增為 OCI Full Stack DR 保護群組的成員,以啟用協調式災害復原作業。

對於 OCI 中的 Oracle 資料庫託管服務,強烈建議使用 OCI 主控台、Oracle Cloud Infrastructure 命令行介面 (OCI CLI) 或 OCI SDK 設定 Oracle Data Guard。這麼做可確保 OCI Full Stack DR 可以自動偵測 Data Guard 組態,並產生內建的計畫群組,以作為 DR 計畫的一部分進行角色轉換。

不過,在某些情況下,會因為特定的技術或作業需求而需要手動設定 Oracle Data Guard (在 OCI 的原生介面之外),例如:

在這種情況下,雖然 OCI 資料庫服務控制層無法辨識 Oracle Data Guard 設定,但 OCI Full Stack DR 仍提供彈性。您可以建立自訂指令碼,並將其整合至 DR 計畫內的使用者定義計畫群組,來處理角色轉換。

請注意,此解決方案與透過 OCI 主控台、SDK 或 API 管理資料保全組態的 Oracle Database Cloud 服務不相容。

在本教學課程中,我們將逐步介紹使用自訂資料庫處理程式命令檔來管理 Oracle Data Guard 角色轉換的標準化方法,這些命令檔用於手動設定 Oracle Data Guard 的 OCI 資料庫服務。

注意:此自訂命令檔解決方案適用於下列 OCI 資料庫服務:

架構描述

在本教學課程中,我們將使用 Oracle Base Database Service ,搭配部署在兩個 OCI 區域的兩個資料庫系統,其中已手動設定 Oracle Data Guard。

自訂資料保全組態
圖 A:使用 Oracle Base Database Service 的自訂資料保全組態

整個教學課程的定義和假設

目標

本教學課程涵蓋下列工作:

必備條件

我們將使用下列資源從教學課程開始。

資源 區域 1 - 阿什本 區域 2 - 鳳凰城
區間 app - 應用程式 app - 應用程式
資料庫系統 加固醇 -12345 加固醇 -12345
資料庫名稱 加固醇 加固醇
資料庫唯一名稱 加固醇 site0 加固醇 site1
DB 角色 主要 待命
運算 VM 腳本 iad 文稿 -phx
儲存桶 IAD PHX

注意:請先完成所有必要的先決條件,再繼續進行。這些步驟奠定了順利進行 OCI Full Stack DR 設定的基礎。

  1. 管理存取或必要的 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 政策

    請確定您具備管理員權限,或將必要的 OCI IAM 原則和動態群組設定為使用 OCI Full Stack DR。在此解決方案中,資料庫處理程式命令檔會在內部啟動 OCI 容器執行處理,因此您必須相應地新增原則。

    注意:請以實際的 OCI 區間 OCID 和名稱取代所有出現的 <compartment_ocid><compartment_name>

    1. 建立動態群組:使用範例名稱 (FullStackDR_Database_DG) 建立動態群組,然後新增下列比對規則:

       Any {instance.compartment.id = '<compartment_ocid>'}
       Any {resource.type = 'instance', resource.compartment.id = '<compartment_ocid>'}
       Any {resource.type = 'computecontainerinstance', resource.compartment.id = '<compartment_ocid>'}
       Any {resource.type = 'drprotectiongroup', resource.compartment.id = '<compartment_ocid>'}
      
    2. 建立 OCI IAM 原則: 使用範例名稱 (FullStackDR_Database_Group_Policies) 建立原則,然後新增下列允許敘述句:

       Allow dynamic-group FullStackDR_Database_DG to read secret-family in compartment <compartment_name>
       Allow dynamic-group FullStackDR_Database_DG to manage virtual-network-family in compartment <compartment_name>
       Allow dynamic-group FullStackDR_Database_DG to manage instance-agent-command-family in compartment <compartment_name>
       Allow dynamic-group FullStackDR_Database_DG to manage instance-agent-command-execution-family in compartment <compartment_name>
       Allow dynamic-group FullStackDR_Database_DG to manage objects in compartment <compartment_name>
       Allow dynamic-group FullStackDR_Database_DG to manage database-family in compartment <compartment_name>
       Allow dynamic-group FullStackDR_Database_DG to manage compute-container-family in compartment <compartment_name>
      

    如需詳細資訊,請參閱 OCI 災難復原原則 - 官方文件設定 IAM 原則 (Oracle 部落格)

  2. 在兩個區域中佈建 OCI Compute 執行處理:在每個區域中建立 OCI Compute 執行處理,作為代管和執行 scripts.For 詳細步驟的 Jumphost,請參閱建立 OCI 執行處理。為求簡化,我們將在 tutorial.If 中將此 OCI Compute 執行處理視為 Jumphost 執行處理,而您已有可作為 Jumphost 運作的現有 OCI Compute 執行處理,則可略過此步驟。確定 Jumphost 有 Oracle Cloud 代理程式在執行中,並且啟用執行命令 Plugin。如需詳細資訊,請參閱 Oracle Cloud 代理程式

  3. 存取在 OCI Compute 執行處理上執行命令:請確定已在 jumphost 中設定執行命令先決條件,因為我們在 DR 作業期間使用使用者定義的計畫群組執行命令檔。如需詳細資訊,請參閱在執行處理上執行命令

  4. 在兩個區域的 jumphost 中安裝 OCI CLI:根據 jumphost 的作業系統,在兩個區域上安裝 OCI CLI,並確定可以在命令檔中使用執行處理主體呼叫 OCI CLI 命令。如需更多資訊,請參閱 OCI CLI Installation

  5. 使用遠端 VCN 對等互連在兩個區域中設定 VCN:在主要和待命區域中建立 VCN,並設定遠端 VCN 對等互連。這是設定跨區域 Oracle Data Guard 所需的選項。如需詳細資訊,請參閱 OCI Base DB 網路組態

  6. 手動 Oracle Data Guard 組態:根據 Oracle Data Guard 中介的需求,手動設定 Oracle Data Guard 設定。如需詳細資訊,請參閱 Oracle Data Guard Broker and Oracle Clusterware

  7. 下載 Jumphost 中的資料庫處理程式命令檔:命令檔應該下載並保留在兩個區域的 jumphost 中。

    1. 從下列儲存區域下載 Oracle Data Guard 資料庫處理程式命令檔:資料保全資料庫處理程式命令檔

    2. 將命令檔複製到兩個區域之 jumphost 的 /home/opc/ 目錄 (或任何其他偏好的路徑)。

    3. 確定命令檔檔案具有執行檔權限。

    4. full_stack_dr_non_std_db_handler.py 是負責處理 Oracle Data Guard 角色 transitions.The 關聯 bash 命令檔的 Python 命令檔,可作為樣板提供,並可根據您的特定需求進行修改。請勿修改 Python 角色變更指令碼本身。

  8. 建立 OCI 保存庫和加密密碼:您必須建立 OCI 保存庫,並將資料庫證明資料儲存為兩個區域中的加密密碼。

    1. 使用 OCI 主控台或 CLI 在每個區域中建立 OCI 保存庫。
    2. 在保存庫內建立加密密碼,以儲存資料庫的 SYS 使用者密碼。

    如需詳細資訊,請參閱 OCI Vault

  9. 來自 Jumphost 的連線檢查:確保可從運算執行處理存取 OCI 資料庫服務、OCI Vault 服務和 OCI 容器執行處理服務。這是必要的,因為 OCI Full Stack DR 命令檔會執行自我檢查,以從主要待命區域擷取資料庫詳細資訊。

    1. 連線必須從 jumphost 運作。從 jumphost 執行下列命令。

        # Primary Region
        curl -v telnet://database.<primary_region>.oraclecloud.com:443
        curl -v telnet://secrets.vaults.<primary_region>.oci.oraclecloud.com:443
        curl -v telnet://iaas.<primary_region>.oraclecloud.com:443
        curl -v telnet://compute-containers.<primary_region>.oci.oraclecloud.com:443
      
        # Standby Region
        curl -v telnet://database.<standby_region>.oraclecloud.com:443
        curl -v telnet://secrets.vaults.<standby_region>.oci.oraclecloud.com:443
        curl -v telnet://iaas.<standby_region>.oraclecloud.com:443
        curl -v telnet://compute-containers.<standby_region>.oci.oraclecloud.com:443
      

      注意:請以實際的 OCI 區域 ID 取代 <primary_region><standby_region>
      舉例而言:

      • us-ashburn-1 阿什本
      • 鳳凰城適用的 us-phoenix-1

      如需完整清單,請參閱 OCI 區域識別碼

      預期的輸出:每個命令都應該傳回類似 Connected to ... 的訊息。

      如果任何連線失敗,請檢查 jumphost 之 VCN/ 子網路的安全清單、路由表以及服務閘道組態。

  10. 建立物件儲存的儲存桶:在主要和待命區域中建立 OCI 物件儲存的儲存桶,以儲存進行復原作業時由 OCI Full Stack DR 產生的日誌,如下所述:準備作業日誌的日誌位置

  11. 資料庫處理程式命令檔使用狀況和自訂:您可以從提及的 GitHub 儲存區域下載資料庫處理程式命令檔。以下是資料庫處理程式命令檔使用狀況和必要的參數。

    資料庫處理程式 script.png
    圖 B:資料庫處理程式命令檔使用狀況

    支援的 --db_operation 選項有:

    • 切換
    • SWITCHOVER_PRECHECK
    • 容錯移轉
    • FAILOVER_PRECHECK
    • CONVERT_PHYSICAL_TO_SNAPSHOT_STANDBY
    • CONVERT_PHYSICAL_TO_SNAPSHOT_STANDBY_PRECHECK
    • REVERT_SNAPSHOT_TO_PHYSICAL_STANDBY_PRECHECK
    • REVERT_SNAPSHOT_TO_PHYSICAL_STANDBY

    OCI Full Stack DR 預期在執行資料庫處理程式命令檔時,會傳送所有必要的參數。為了獲得更好的使用性和可重複性,建議您建立以下的包裝函式 bash 命令檔:

    • 提供必要的參數。
    • 啟用稽核與疑難排解的記錄。

    範例範例:資料庫切換命令檔 (db-switchover-iad-phx.sh)。

    #!/bin/bash
    
    # Define log file with date and time
    LOG_FILE="db-switchover-iad-phx-$(date +%Y%m%d_%H%M%S).log"
    
    # Define Python script and argument
    PYTHON_SCRIPT="full_stack_dr_non_std_db_handler.py"
    ARGUMENT="--database_ocid="ocid1.database.oc1.phx.xxxxxxxx" --vault_ocid="ocid1.vaultsecr
    et.oc1.phx.xxxxx" --region="us-phoenix-1" --primary_db_unique_name="adghol_site0" --st
    andby_db_unique_name="adghol_site1" --drpg_ocid="ocid1.drprotectiongroup.oc1.phx.axxxxxxax
    " --db_operation="SWITCHOVER" --auth_type=INSTANCE_PRINCIPAL"
    
    # Execute Python script and log output
    echo "Executing Python script: $PYTHON_SCRIPT with argument: $ARGUMENT" | tee -a $LOG_FILE
    /usr/bin/python3 $PYTHON_SCRIPT $ARGUMENT 2>&1 | tee -a $LOG_FILE
    
    echo "Execution completed. Logs saved in $LOG_FILE"
    

    注意:將此包裝函式命令檔儲存在與資料庫處理程式命令檔相同的位置,並確定其為可執行檔。OCID 在命令檔中會被匿名化。

    chmod +x db-switchover-wrapper.sh
    

    區域 1 (阿什本) 中執行的資料庫為「主要」且區域 2 (鳳凰城) 為「待命」的 DR 計畫指令碼對應

    DR 計畫類型 目標執行處理 命令檔名稱 註解
    Switchover script-phx db-prechk-switchover-iad-phx.sh 預先檢查資料庫從 IAD 切換至 PHX
    Switchover script-phx db-switchover-iad-phx.sh 資料庫從 IAD 切換至 PHX
    Failover script-phx db-prechk-failover-iad-phx.sh 從 IAD 到 PHX 的 Prechk 資料庫容錯移轉
    Failover script-phx db-failover-iad-phx.sh 從 IAD 到 PHX 的資料庫容錯移轉
    Start drill script-phx db-prechk-startdrill-phx.sh 預先檢查開始 DR 追溯 PHX
    Start drill script-phx db-startdrill-phx.sh 開始 PHX 中的 DR 追溯
    Stop drill script-phx db-prechk-stopdrill-phx.sh 預先檢查停止 DR 追溯 PHX
    Stop drill script-phx db-stopdrill-phx.sh 停止 PHX 中的 DR 鑽研

    區域 2 (鳳凰城) 中執行的資料庫為主要資料庫,且區域 2 (阿什本) 為待命資料庫的 DR 計畫命令檔對應

    DR 計畫類型 目標執行處理 命令檔名稱 註解
    Switchover script-iad db-prechk-switchover-phx-iad.sh 預先檢查資料庫從 PHX 切換至 IAD
    Switchover script-iad db-switchover-phx-iad.sh 資料庫從 PHX 切換至 IAD
    Failover script-iad db-prechk-failover-phx-iad.sh 從 PHX 到 IAD 的 Prechk DB 容錯移轉
    Failover script-iad db-failover-phx-iad.sh 從 PHX 到 IAD 的資料庫容錯移轉
    Start drill script-iad db-prechk-startdrill-iad.sh 預先檢查開始追溯追溯 IAD
    Start drill script-iad db-startdrill-iad.sh 開始在 IAD 中展開 DR
    Stop drill script-iad db-prechk-stopdrill-iad.sh 預先檢查停止 DR 追溯 IAD
    Stop drill script-iad db-stopdrill-iad.sh 停止 IAD 中的 DR 鑽研

備註:為了更加清晰與可用性,我們建立了多個為特定 DR 計畫類型與區域量身打造的 bash 包裝函式指令碼。這些程序檔使用共用的 Python 程序檔進行資料庫角色轉換,您可以自訂這些程序檔以符合自己的需求和環境。

工作 1:驗證 Oracle Data Guard 組態並更新標記

在這項任務中,我們將使用 Oracle Base Database Service 驗證 Oracle Data Guard 手動組態。我們會在資料庫上建立一個 * 標記 **,以指示設定非標準的 Oracle Data Guard。這可讓 OCI Full Stack DR 建立 DR 計畫,而不需要依賴任何內建的計畫群組。

  1. 登入 OCI 主控台並導覽至 Oracle Database ,然後按一下 Oracle Base Database Service

  2. 確定 OCI 區域相關資訊環境設為區域 1 (阿什本)

  3. 在我們的範例中,選取資料庫系統adghol0-12345

    iad-db-system.png
    圖 1.1:區域 1 中的資料庫系統

  4. 瀏覽至資料庫頁籤,然後選取資料庫 adghol

    iad 資料庫系統 -db.png
    圖 1.2:區域 1 中的資料庫

  5. 請確定資料保全狀態未啟用,這會確認未使用 OCI 主控台設定 Oracle Data Guard。

    iad-db- 資料保全 -cp-status.png
    圖 1.3:區域 1 中的「資料保全」控制層狀態

  6. 導覽至標記頁籤,並建立任意格式標記。您必須根據設定來取代 Peer DB OCID 的值。在此範例中,您必須新增 Phoenix 區域的資料庫 OCID。

    標記鍵值 數值
    FsdrNonStandardDataGuardPeerDatabaseId Peer DB OCID
    FsdrNonStandardDataGuardFlag True

    iad-db- 資料保全標記
    圖 1.4:區域 1 中的資料庫標記

  7. 前往資料庫系統,然後選取節點

    iad-db-node.png
    圖 1.5:區域 1 中的資料庫節點

    注意:這是非 RAC 設定,因此您會看到單一資料庫節點。如果這是 Oracle Real Application Clusters 設定,您會看到兩個節點。

  8. 連線至資料庫節點並切換至 oracle 使用者。使用 Oracle Data Guard 中介來驗證角色。

    dgmgrl
    show configuration
    

    iad-db- 資料保全 -status.png
    圖 1.6:區域 1 中的「資料保全」狀態

    預期的輸出:

    • adghol_site0 應該顯示為主要資料庫
    • adghol_site1 應顯示為實體待命資料庫
    • Configuration Status 應顯示成功

    如果發生錯誤且資料庫角色不如預期,您必須使用 Oracle Data Guard 文件來修正錯誤。

  9. 登入 OCI 主控台並導覽至 Oracle Database ,然後按一下 Oracle Base Database Service

  10. 確保 OCI 區域內容已設為區域 2 (鳳凰城)

  11. 在我們的範例中,選取 DB 系統adghol1-12345

    phx-db-system.png
    圖 1.7:區域 2 中的資料庫系統

  12. 瀏覽至資料庫頁籤,然後選取資料庫 adghol

    phx-db 系統 -db.png
    圖 1.8:區域 2 中的資料庫

  13. 請確定資料保全狀態未啟用,這會確認未使用 OCI 主控台設定 Oracle Data Guard。

    phx-db-dataguard-cp-status.png
    圖 1.9:區域 2 中的「資料保全」控制層狀態

  14. 導覽至標記頁籤,並建立任意格式標記。您必須根據設定來取代 Peer DB OCID 的值。在此範例中,您必須新增 Ashburn 區域的資料庫 OCID。

    標記鍵值 數值
    FsdrNonStandardDataGuardPeerDatabaseId Peer DB OCID
    FsdrNonStandardDataGuardFlag True

    phx 資料庫資料保全標記
    圖 1.10:區域 2 中的資料庫標記

  15. 重複步驟 7 和步驟 8,但這次連線到「區域 2」(待命區域) 中的資料庫節點。

    • 請確定您是以「區域 2」資料庫節點上的 oracle 使用者身分登入。
    • 使用 dgmgrl 驗證 Oracle Data Guard 角色,就像步驟 8 一樣。

工作 2:建立並關聯 DR 保護群組

如果此應用程式堆疊的保護群組還不存在,請在區域 1 和區域 2 中建立 DR 保護群組。

工作 2.1:在區域 1 中建立保護群組

  1. 前往 OCI 主控台並瀏覽至 DR 保護群組,如圖 2.1 所示。

    1. 確定 OCI 區域相關資訊環境設為區域 1 (阿什本)。
    2. 按一下移轉與災害復原
    3. 按一下 DR 保護群組

    dg-iad-drpg.png
    圖 2.1:瀏覽至 DR 保護群組

  2. 在區域 1 中建立基本 DR 保護群組,如圖 2.2 所示。將會在後續的步驟中指定對等、角色及成員。

    1. 選取要建立 DR 保護群組的區間。
    2. 按一下建立災害復原保護群組
    3. 請為 DR 保護群組使用有意義的名稱。
    4. 選取 OCI Full Stack DR 日誌的 OCI Object Storage 分組
    5. 按一下建立

    dg-drpg-create-iad-finish.png
    圖 2.2:在區域 1 中建立 DR 保護群組所需的參數

任務 2.2:在區域 2 中建立保護群組

  1. 前往 OCI 主控台,瀏覽至 DR 保護群組 (如圖 2.3 所示)。

    1. 確定 OCI 區域相關資訊環境設為區域 2 (鳳凰城)。
    2. 按一下移轉與災害復原
    3. 按一下 DR 保護群組

    dg-iad-drpg.png
    圖 2.3:瀏覽至 DR 保護群組

  2. 在區域 2 中建立基本 DR 保護群組,如圖 2.4 所示。將會在後續的步驟中指定對等、角色及成員。

    1. 選取要建立 DR 保護群組的區間。
    2. 按一下建立災害復原保護群組
    3. 使用有意義的 DRPG 名稱。
    4. 選取 OCI Full Stack DR 日誌的 OCI Object Storage 分組
    5. 按一下建立

    dg-drpg-create-phx-finish.pn
    圖 2.4:在區域 2 中建立 DR 保護群組所需的參數

工作 2.3:關聯區域 1 和區域 2 中的保護群組

將每個區域中的 DRPG 關聯為彼此的同儕,並指派主要和待命的同儕角色。主要和待命資料庫的角色會由 OCI Full Stack DR 自動變更,作為任何 DR 作業 /DR 計畫執行的一部分;您無需隨時手動管理角色。

  1. 前往 DR 保護群組詳細資訊頁面。

    1. 確定 OCI 區域相關資訊環境設為區域 1 (阿什本)。
    2. 按一下動作下拉式功能表,然後按一下關聯以開始程序。

    drpg-assoc-begin-iad.png
    圖 2.5:開始 DRPG 關聯

  2. 請輸入下列資訊。

    1. 角色:選取主要角色。OCI Full Stack DR 會自動將待命角色指派給 Region 2。
    2. 對等區域:選取建立其他 DR 保護群組的區域 2 (鳳凰城)。
    3. 對等災害復原保護群組:選取已建立的對等災害復原保護群組。
    4. 按一下關聯

    drpg-assoc-finish-iad.png
    圖 2.6:與 DRPG 關聯所需的參數

關聯完成後,OCI Full Stack DR 將顯示如下圖所示的內容。

drpg-assoc-completed-iad.png
圖 2.7:顯示個別 DRPG 觀點的對等關係

每當相關資訊環境 / 視觀表是從全域觀點顯示所有 DR 保護群組時,都可以找到相同的資訊,如下圖所示。

drpg-assoc-completed-dxb.png
圖 2.8:從全域 DRPG 觀點顯示對等關係

工作 3:將成員新增至 DR 保護群組

在這項任務中,我們會將下列 OCI 資源新增至 Region 1 的主要 DR 保護群組。

  1. 代管資料庫處理程式命令檔的 OCI Compute 執行處理將會新增為非移動的 VM。
  2. 主要 DB 系統。

工作 3.1:將成員新增至區域 1 中的 DR 保護群組

  1. 選取區域 1 中的 DR 保護群組,如下圖所示。

    1. 確定 OCI 區域相關資訊環境為區域 1 (阿什本)。
    2. 選取區域 1 中的 DR 保護群組。
    3. 瀏覽至成員頁籤。
    4. 按一下管理成員

    drpg-add-nav-iad.png
    圖 3.1:如何開始將成員新增至區域 1 中的 DR 保護群組

  2. 新增資料庫處理程式命令檔的運算執行處理。

    1. 選取新增成員
    2. 選取運算底下的執行處理作為成員資源類型
    3. 選取代管資料庫處理程式命令檔的運算執行處理
    4. 選取非移動執行處理
    5. 按一下新增

    drpg-add-compute-iad.png
    圖 3.2:將運算執行處理新增至區域 1 中的 DRPG

    請檢查新增的運算執行處理。

    drpg-add-compute-iad-added.png
    圖 3.2:已將運算執行處理新增至區域 1 中的 DRPG

  3. 新增主要資料庫。按一下加入成員

    1. 選取新增成員
    2. 選取 Oracle Database -> Database (Base DB,ExaDB-D,ExaCC,ExaXS) 作為成員資源類型
    3. 選取 Oracle 基本資料庫作為資料庫類型
    4. 選取資料庫系統
    5. 選取資料庫本位目錄
    6. 選取資料庫
    7. 選取資料庫密碼密碼密碼
    8. 請按一下新增

    drpg-add-db-iad.png
    圖 3.3:新增主要資料庫所需的參數

    驗證新增的主要資料庫,並發布這兩個成員。

    drpg-add-db-iad-complete.png
    圖 3.4:主要資料庫已新增至區域 1 中的 DRPG

    Drpg-add-db-iad-complete1.png
    圖 3.5:將成員發佈至區域 1 中的 DRPG

    在幾分鐘之後,成員底下應該有成員可用。

    drpg-add-db-iad-published.png
    圖 3.6:新增至區域 1 中 DRPG 的成員

任務 3.2:將成員新增至區域 2 中的 DR 保護群組

  1. 選取第 2 區中的 DR 保護群組,如下圖所示。

    1. 確保 OCI 區域內容為區域 2 (鳳凰城)。
    2. 選取區域 2 中的 DR 保護群組。
    3. 瀏覽至成員頁籤。
    4. 按一下管理成員

    drpg-add-nav-phx.png
    圖 3.7:如何開始將成員新增至區域 2 中的 DR 保護群組

  2. 新增資料庫處理程式命令檔的運算執行處理。

    1. 選取新增成員
    2. 選取運算底下的執行處理作為成員資源類型
    3. 選取代管資料庫處理程式命令檔的運算執行處理
    4. 選取非移動執行處理
    5. 按一下新增

    drpg-add-compute-phx.png
    圖 3.8:將運算執行處理新增至區域 2 中的 DRPG

    請檢查新增的運算執行處理。

    drpg-add-compute-phx-added.png
    圖 3.9:已將運算執行處理新增至區域 2 中的 DRPG

  3. 新增待命資料庫。按一下加入成員

    1. 選取新增成員
    2. 選取 Oracle Database -> Database (Base DB,ExaDB-D,ExaCC,ExaXS) 作為成員資源類型
    3. 選取 Oracle 基本資料庫作為資料庫類型
    4. 選取資料庫系統
    5. 選取資料庫本位目錄
    6. 選取資料庫
    7. 選取資料庫密碼密碼密碼
    8. 請按一下新增

    drpg-add-db-phx.png
    圖 3.10:新增待命資料庫所需的參數

    驗證新增的待命資料庫並發布這兩個成員。

    drpg-add-db-phx-complete.png
    圖 3.11:待命資料庫已新增至區域 2 中的 DRPG

    drpg-add-db-phx-complete1.png
    圖 3.12:將成員發佈至區域 2 中的 DRPG

    在幾分鐘之後,成員底下應該有成員可用。

    drpg-add-db-phx-published.png
    圖 3.13:新增至區域 2 中的 DRPG 成員

作業 4:在區域 2 中建立並自訂 DR 計畫

在這項任務中,我們將建立與區域 2 (鳳凰城) 中待命 DR 保護群組關聯的初始切換容錯移轉開始展開計畫。

這些計畫旨在將工作負載從主要區域 (第 1 區) 順暢轉換至待命區域 (第 2 區)。

DR 計畫一律會建立在保留待命角色的保護群組中。

由於第 2 區 (鳳凰城) 目前是待命,因此我們將在該處建立所有初始災害復原計畫。

作業 4.1:建立 DR 計畫

  1. 在區域 2 (鳳凰城) 中選取 DRPG 來建立 DR 計畫

    1. 確保 OCI 區域內容為區域 2 (鳳凰城)。
    2. 選取區域 2 的待命 DRPG。
    3. 瀏覽至方案頁籤。
    4. 按一下建立計畫

    計畫 - 建立 -nav-phx.png
    圖 4.1:如何在區域 2 中開始建立基本 DR 計畫

  2. 建立切換計畫。

    1. 輸入簡單但有意義的切換計畫名稱。這個名字應該盡量簡短,但很容易理解,以幫助減少危機期間的混淆與人為錯誤。
    2. 選取計畫類型作為切換 (計畫)

    計畫建立 so-phx-png
    圖 4.2:建立 DR 切換計畫所需的參數

  3. 建立容錯移轉計畫。

    依照相同的程序建立基本容錯移轉計畫,如下圖所示。

    1. 輸入簡單但有意義之容錯移轉計畫的名稱
    2. 選取計畫類型作為容錯移轉 (非計畫性)

    plan-create-fo-phx.png
    圖 4.3:建立 DR 容錯移轉計畫所需的參數

  4. 建立開始展開計畫。

    依照相同的程序建立基本容錯移轉計畫,如下圖所示。

    1. 輸入開始鑽研計畫簡易但有意義的名稱
    2. 選取計畫類型作為容錯移轉 (非計畫性)

    plan-create-startdrill-phx.png
    圖 4.4:建立 DR 開始展開計畫所需的參數

    區域 2 中的待命 DR 保護群組現在應該有三個 DR 計畫,如下圖所示。這些將處理將工作負載從 Region 1 轉換成 Region 2。您將在「區域 1」建立類似的計畫,以便在稍後的工作中將工作負載從「區域 2」轉換回「區域 1」。

    計畫 - 建立 -phx-completed.png
    圖 4.5:顯示區域 2 中必須存在的三個 DR 計畫,再繼續進行任何作業。

注意: OCI Full Stack DR 僅允許您在順利執行開始展開計畫之後,以及 DR 保護群組處於非作用中 (展開進行中) 狀態之後,才建立停止展開計畫。

作業 4.2:使用使用者定義的計畫群組自訂 DR 計畫

在 Task 4.1 中建立的 DR 計畫不會為 Oracle 資料庫角色轉換產生任何內建的計畫群組,因為 Oracle Data Guard 設定是以手動方式完成。

在這項任務中,您將:

這可確保 DR 計畫能完全處理與手動設定之 Data Guard 環境有關的容錯移轉、切換和鑽研案例。

  1. 導覽至在任務 4.1 中建立的切換計畫,然後選取計畫群組

    方案 - 自訂 -so-phx-nav.png
    圖 4.6:如何開始自訂區域 2 中的切換計畫

  2. 首先,新增自訂的使用者定義的 DR 計畫群組,以根據 Oracle 資料庫角色變更的特定需求量身打造 DR 工作流程。此計畫群組將會從「區域 1」中的 jumphost script-iad 呼叫必要的指令碼。

  3. 將使用者定義的計畫群組新增至 DB Switchover

    1. 按一下新增群組
    2. 輸入簡單但描述性的計畫群組名稱。在此範例,我們將使用 DB Switchover
    3. 按一下新增步驟即可開啟對話方塊,供我們指定執行資料庫角色變更的命令檔。

      計畫自訂 -so-phx-grp-db-role-change.png
      圖 4.7:建立執行資料庫角色變更之計畫群組的參數

      新增計畫群組步驟中,輸入下列資訊。

    4. 輸入簡單但描述性的步驟名稱。在此範例中,我們將使用 DB Switchover from IAD to PHX
    5. 選取執行處理區域,其中包含將執行此步驟的執行處理。在此範例中,命令檔將在 Region 2 的 jumphost 上執行,因此選取 Phoenix
    6. 選取執行本機命令檔
    7. 選取目標執行處理,這是「區域 2」中的 jumphost script-phx
    8. 指令檔參數中,以參數輸入指令檔的完整路徑。例如:/home/opc/db-switchover-iad-phx.sh
    9. 以使用者身分執行中,輸入 opc
    10. 按一下新增步驟

      計畫自訂 -so-phx-grp-db-role-change-step.png
      圖 4.8:新增資料庫角色變更步驟的參數

    11. 驗證新增的步驟。

      plan-custom-so-phx-grp-db-role-change-step-added.png
      圖 4.9:已新增資料庫角色變更

    12. 按一下新增

      計畫自訂 -so-phx-grp-db-role-change-add
      圖 4.10:新增資料庫角色變更群組

      現在將提供計畫群組。

      計畫自訂 -so-phx-grp1.png
      圖 4.11:資料庫切換計畫群組

  4. 新增使用者定義的前置檢查步驟至切換 DR 計畫。使用者定義的前置檢查將會與內建的前置檢查步驟一起執行。

    1. 前往計畫群組,按一下 Prechecks-Built 前面的 ,然後選取新增使用者定義的前置檢查

      計畫自訂 -so-phx-grp-db-role-precheck-change.png
      圖 4.12:新增資料庫切換的自訂前置檢查

    2. 輸入簡單但描述性的步驟名稱。在此範例中,我們將使用 DB Switchover precheck from IAD to PHX
    3. 選取執行處理區域,其中包含將執行此步驟的執行處理。在此範例中,命令檔將在 Region 2 的 jumphost 上執行,因此選取 Phoenix
    4. 選取執行本機命令檔
    5. 選取目標執行處理,這是 Region 中的 jumphost script-phx
    6. 指令檔參數中,以參數輸入指令檔的完整路徑。例如:/home/opc/db-prechk-switchover-iad-phx.sh
    7. 以使用者身分執行中,輸入 opc
    8. 按一下新增步驟

      計畫自訂 -so-phx-grp-db-precheck-role-change-step.png
      圖 4.13:新增資料庫角色變更之自訂前置檢查步驟的參數

    9. 驗證新增的步驟。

      plan-custom-so-phx-grp-db-role-precheck-change-step-added.png
      圖 4.14:新增資料庫角色變更的自訂前置檢查步驟

      已順利完成切換計畫的自訂。

      方案 - 自訂 -so-phx-complete.png
      圖 4.15:最終切換計畫

  5. 同樣地,自訂容錯移轉開始展開計畫,使用正確的目標執行處理命令檔 (使用「先決條件」中的表格式詳細資訊):資料庫處理程式命令檔使用狀況和自訂

  6. 新增使用者定義的計畫群組和自訂前置檢查步驟之後,容錯移轉開始展開計畫的外觀如下。

    計畫 -custom-fo-phx-complete.png
    圖 4.16:最終容錯移轉計畫

    計畫自訂啟動 -phx-complete.png
    圖 4.17:最終開始展開計劃

作業 5:執行區域 2 中 DR 計畫的前置檢查

使用切換功能時,已順利在待命區域 2 中建立容錯移轉啟動展開 DR 計畫。這些計畫可讓 OCI Full Stack DR 將工作負載從 Region 1 轉換成 Region 2 或執行 DR 展開。後續任務涉及執行 DR 計畫的前置檢查,以確保整備度並驗證轉換程序。

作業 5.1:開始切換計畫的前置檢查

執行切換 DR 計畫的前置檢查。

  1. 請確定區域相關資訊環境設為待命區域 2。
  2. 請確定在「區域 2」中選取正確的 DR 保護群組,這必須是待命角色。
  3. 按一下動作下拉式功能表。
  4. 按一下執行前置檢查
  5. 選取從 IAD 切換至 PHX 的資料庫計畫。
  6. 輸入計畫執行名稱 (如果不是,則會自動產生)。
  7. 按一下執行前置檢查

    前置檢查 -so-phx-begin.png
    圖 5.1:顯示如何執行切換計畫的前置檢查

  8. 計畫執行項目頁籤中驗證成功狀態。

    前置檢查 -so-phx-complete.png
    圖 5.2:顯示切換計畫的已完成前置檢查

作業 5.2:開始容錯移轉計畫的前置檢查

執行容錯移轉 DR 計畫的前置檢查。

  1. 請確定區域相關資訊環境設為待命區域 2。
  2. 請確定在「區域 2」中選取正確的 DR 保護群組,這必須是待命角色。
  3. 按一下動作下拉式功能表。
  4. 按一下執行前置檢查
  5. 選取從 IAD 到 PHX 的資料庫容錯移轉計畫。
  6. 輸入計畫執行名稱 (如果不是,則會自動產生)。
  7. 按一下執行前置檢查

    前置檢查 -fo-phx-begin.png
    圖 5.3:顯示如何執行容錯移轉計畫的前置檢查

  8. 計畫執行項目頁籤中驗證成功狀態。

    前置檢查 -fo-phx-complete.png
    圖 5.4:顯示容錯移轉計畫的「已完成」前置檢查

作業 5.3:開始展開計畫的前置檢查

執行開始展開 DR 計畫的前置檢查。

  1. 請確定區域相關資訊環境設為待命區域 2。
  2. 請確定在「區域 2」中選取正確的 DR 保護群組,這必須是待命角色。
  3. 按一下動作下拉式功能表。
  4. 按一下執行前置檢查
  5. 選取開始展開 PHX 計畫。
  6. 輸入計畫執行名稱 (如果不是,則會自動產生)。
  7. 按一下執行前置檢查

    前置檢查 -stadr-phx-begin.png
    圖 5.5:顯示如何執行開始展開計畫的前置檢查

  8. 計畫執行項目頁籤中驗證成功狀態。

    前置檢查 -stardr-phx-complete.png
    圖 5.6:顯示容錯移轉計畫的「已完成」前置檢查

作業 6:在區域 2 中執行切換計畫

執行切換 DR 計畫以起始 Oracle 資料庫角色從「區域 1 (主要)」轉換至「區域 2 (待命)」。

  1. 請確定區域相關資訊環境設為待命區域 2。
  2. 請確定在「區域 2」中選取正確的 DR 保護群組,這必須是待命角色。
  3. 按一下動作下拉式功能表。
  4. 按一下執行計畫

    執行 -so-phx-begin.png
    圖 6.1:顯示如何執行切換計畫

  5. 選取從 IAD 切換至 PHX 的資料庫計畫。
  6. 此作業會執行 「區域 2」中的切換計畫。
  7. 取消選取啟用前置檢查,因為已經在「工作 5」中執行前置檢查。如果想要再次執行,您可以啟用它。
  8. 輸入計畫執行名稱 (如果不是,則會自動產生)。
  9. 按一下執行計畫 (Execute plan)

    執行 -so-phx-begin.png
    圖 6.2:顯示如何執行切換計畫

  10. 瀏覽至計畫執行項目頁籤,然後選取切換計畫執行項目。

    exec-so-phx-in-progress.png
    圖 6.3:顯示切換計畫進行中

  11. 監控切換計畫,直到完整的工作負載完全從區域 1 轉換成區域 2 為止。切換計畫的執行已順利在大約 8 分鐘內完成。

    執行 -so-phx-complete.png
    圖 6.4:顯示「已完成」的切換計畫執行。

  12. 您可以使用作業 1.8 中提供的詳細資訊來驗證資料庫角色狀態。

    iad-db-dataguard-status-afterso.png
    圖 6.5:切換之後的「資料保全」狀態

    預期的輸出:

    • adghol_site1 應該顯示為主要資料庫
    • adghol_site0 應顯示為實體待命資料庫
    • Configuration Status 應顯示成功
  13. 將會交換 DR 保護群組中的角色,區域 2 會顯示為主要,而區域 1 則會顯示為待命

    超音波過速軸
    圖 6.6:切換之後的 DR 保護角色變更

作業 7:在區域 1 中建立並自訂 DR 計畫

在成功執行從區域 1 切換至區域 2 的切換 DR 計畫後,區域 2 現在已擔任主要角色,而區域 1 則已轉換為待命角色。

遵循任務 4 中詳述的相同方法,在 Region 1 的 DR 保護群組內建立和自訂切換、容錯移轉和 DR 鑽研計畫,現在可作為待命對等區域。

使用者定義的計畫群組自訂預先檢查步驟建立和更新這些計畫之後,這些計畫看起來會像下列影像。

計畫建立 - iad.png
圖 7.1:在區域 1 中建立 DR 計畫

計劃 -so-customize-iad.png
圖 7.2:區域 1 中的切換計畫

計畫資訊自訂 -iad.png
圖 7.3:區域 1 中的容錯移轉計畫

方案 -SD- 自訂 -iad.png
圖 7.4:開始區域 1 中的展開計畫

如有需要,您可以執行切換計劃,將區域 1 中的資料庫升級回主要角色,而區域 2 中的資料庫則變成待命

同樣地,您可以執行開始鑽研計畫來模擬災害復原事件,然後建立並執行停止鑽研計畫,將系統回復為原始狀態。

接下來的步驟

如需詳細資訊,請參閱 相關連結一節中的 OCI Full Stack DR、Oracle Base Database Service 和 Oracle Data Guard 文件。

確認

其他學習資源

docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center