使用雲端保護將內部部署資料庫新增至復原服務

雲端保護機組代理程式會使用復原服務註冊內部部署資料庫,以建立受保護的資料庫。

在 SQLcl 中,執行 rcv add database 命令以自動偵測資料庫從屬端並產生組態 (JSON) 檔案。組態檔包括將資料庫新增至「復原服務」所需的參數。然後,再次執行 rcv add database 命令以及組態檔,以「復原服務」註冊資料庫並建立受保護的資料庫。Oracle 建議您遵循此自動化方法,將資料庫新增至「復原服務」。

另一個方法是手動連線至每個資料庫 (具有 SYSBACKUP 權限),然後使用 rcv add database 命令個別新增每個資料庫。

附註:

雲端保護會將 Oracle 定義的保護原則指定為所有資料庫的預設原則。您可以在新增資料庫之前,先變更組態檔中的預設原則。

使用這些步驟將內部部署資料庫新增至「復原服務」。

  1. 以 Oracle 軟體擁有者使用者身分 (oracle) 登入資料庫。確認已設定 ORACLE_HOME 環境變數。

    在本範例中,ORACLE_HOME 環境變數指向安裝 Oracle 資料庫從屬端的目錄。

    echo $ORACLE_HOME
    /u01/app/oracle/product/19.0.0.0/dbhome_1
  2. oracle 使用者身分啟動 SQLcl。
    在 Oracle RAC 環境中,只在第一個運算節點啟動 SQLcl。
    oracle@host$ /opt/oracle/sqlcl/bin/sql /nolog
    SQL>
  3. 執行 rcv add database 命令以及這些 options,以自動偵測資料庫並產生組態檔。
    • -auto_discover
    • -generate_config_only
    • -compartment_id <COMPARTMENT_OCID>
    • -recovery_service_subnets <SUBNET_OCID>
    SQL> rcv add database -auto_discover -generate_config_only -compartment_id <COMPARTMENT_OCID> -recovery_service_subnets <SUBNET_OCID>
    在此範例輸出中,rcv add database 命令會產生 add_database.json 組態檔,其中包含建立受保護資料庫所需的區間 ID 和復原服務子網路 ID 值。原則會指定為預設保護原則。
    2025-08-15 09:22:16: Created config JSON /u01/app/oracle/rcv/add_database.json
    2025-08-15 09:22:16: You can onboard a database by running 'rcv add database -config /u01/app/oracle/rcv/add_database.json'
    add_database.json 組態檔的內容範例。
    
    [
        {
            "dbUniqueName": "DB1",
            "displayName": "DB1",
            "compartmentId": "ocid1.compartment.oc1..aaa...",
            "protectionPolicy": "ocid1.recoveryservicepolicy.region1..aaa...",
            "sbtLibrary": "/u01/app/oracle/product/19.24.0.0/dbhome_2/lib/libra.so",
            "oracleHome": "/u01/app/oracle/product/19.24.0.0/dbhome_2",
            "oracleSid": "DB1",
            "recoveryServiceSubnets": [
                "ocid1.subnet.oc1.phx.aaa..."
            ]
        },
        {
            "dbUniqueName": "DB2",
            "displayName": "DB2",
            "compartmentId": "ocid1.compartment.oc1..aaaaaa...",
            "protectionPolicy": "ocid1.recoveryservicepolicy.region1..aaa...",
            "sbtLibrary": "/u01/app/oracle/product/19.27.0.0/dbhome_1/lib/libra.so",
            "oracleHome": "/u01/app/oracle/product/19.27.0.0/dbhome_1",
            "oracleSid": "DB2",
            "recoveryServiceSubnets": [
                "ocid1.subnet.oc1.phx.aaa..."
            ]
        },
        {
            "dbUniqueName": "DB3",
            "displayName": "DB3",
            "compartmentId": "ocid1.compartment.oc1..aaa...",
            "protectionPolicy": "ocid1.recoveryservicepolicy.region1..aaa...",
            "sbtLibrary": "/u01/app/oracle/product/19.26.0.0/dbhome_3/lib/libra.so",
            "oracleHome": "/u01/app/oracle/product/19.26.0.0/dbhome_3",
            "oracleSid": "DB3",
            "recoveryServiceSubnets": [
                "ocid1.subnet.oc1.phx.aaa..."
            ]
        }
    ]
    SQL>
  4. (選擇性) 視需要編輯組態檔以修改指派的值。
    edit /u01/app/oracle/rcv/add_database.json
  5. 再次執行 rcv add database 指令,並指定配置檔案。
    SQL> rcv add database -config <confgiration file location> 
    在此範例中,您可以指定 add_database.json 組態檔的路徑。
    SQL> rcv add database -config /u01/app/oracle/rcv/add_database.json 
    雲端保護運輸隊伍代理程式會在內部執行下列步驟:
    • 驗證將資料庫新增至「復原服務」的先決條件。
    • 如果 SYSBACKUP 使用者不存在,則會建立 SYSBACKUP 使用者和密碼。

      附註:

      雲端保護機組代理程式需有 SYSBACKUP 使用者和密碼,才能建立資料庫的指定連線。使用此命令以 SYSBACKUP 使用者身分連線至資料庫:

      /opt/oracle/sqlcl/bin/sql -name <DB_UNIQUE_NAME>_rcv_conn

      DB_UNIQUE_NAME 是資料庫的全域唯一名稱。

    • 產生 VPC 使用者帳戶的隨機密碼。需有 VPC 使用者證明資料,才能認證 RMAN 復原目錄的資料庫存取。
    • 呼叫「復原服務 API」來建立受保護的資料庫資源。
    • 在受保護資料庫進入作用中週期狀態之前,每 10 分鐘就會呼叫 API。
    • 擷取受保護的資料庫網路連線詳細資訊並更新組態檔。
    • 使用 RMAN 在 Recovery Appliance of Recovery Service 中註冊資料庫
    • 使用「雲端保護」設定受保護資料庫。
    • 雲端保護可維持資料保護。
  6. (建議使用) 啟用即時防護即時資料
    1. 使用 SQLcl,以具有 SYSBACKUP 權限的使用者身分登入資料庫。
      oracle@host$ /opt/oracle/sqlcl/bin/sql -name <DB_UNIQUE_NAME>_rcv_conn

      在此範例中,您會連線至資料庫 c1db1

      oracle@host$ /opt/oracle/sqlcl/bin/sql -name c1db1_rcv_conn
    2. 執行 rcv realtime_redo 命令。
      SQL> rcv add realtime_redo
      複查資料庫 c1db1 的範例輸出。
      2025-08-15 10:33:48: Log file: /u01/app/oracle/rcv/dbs/c1db1/log/add_realtime_redo_c1db1.20250815.103348.log
      SQL>
    3. 重新啟動資料庫以讓變更生效。