使用 RMAN 將資料庫備份至物件儲存

本文將說明如何使用復原管理程式 (RMAN) 管理資料庫系統資料庫備份至您自己的物件儲存。

若要備份至服務,您需要為備份建立物件儲存的儲存桶、產生服務的密碼、安裝 Oracle Database Cloud Backup 模組,然後設定 RMAN 將備份傳送至服務。備份模組是與 RMAN 緊密整合之磁帶 (SBT) 介面的系統備份,因此您可以使用熟悉的 RMAN 命令來執行備份和復原作業。

您會注意到主控台和服務的端點 URL 中所提及的 Swift 。這是因為備份模組通常用來備份至 Oracle Database Backup Cloud Service,這是 OpenStack Swift 物件存放區。

提示:在資料庫系統上,您可以使用 DBCLI 備份至物件儲存。這是安裝備份模組及使用 RMAN 進行備份的替代方式。如需詳細資訊,請參閱 Objectstoreswift Commands 。

先決條件

您需要下列項目:

在資料庫系統上安裝備份模組

  1. 將 SSH 連線至資料庫系統。

    ssh -i <SSH_key_used_when_launching_the_DB_system> opc@<DB_system_IP_address_or_hostname>
  2. 以 opc 使用者身分登入。

    login as: opc
  3. sudo -- oracle 使用者。

    sudo su - oracle
  4. 將備份模組 opc_install.jar 檔案變更為包含目錄。

    cd /opt/oracle/oak/pkgrepos/oss/odbcs
  5. 請使用下列命令語法來安裝備份模組。

    java -jar opc_install.jar
        -opcId <user_id>
        -opcPass '<auth_token>'
        -container <bucket_name>
        -walletDir ~/hsbtwallet/
        -libDir ~/lib/
        -configfile ~/config
        -host https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>

    參數包括:

    參數 說明
    -opcId Oracle Cloud Infrastructure 使用者帳戶的使用者名稱,例如:-opcId <username>@<example>.com。
    這是您用來登入主控台的使用者名稱。
    使用者名稱必須是 Administrators 群組的成員,如先決條件小節中所述。
    您也可以使用單引號來指定使用者名稱。如果名稱包含特殊字元,則可能需要這麼做,例如:-opcId 'j~smith@<example>.com'
    請務必使用直線單引號,而不是斜線的單引號。
    -opcPass 使用主控台或 IAM API 產生的認證權杖 (單引號),例如:-opcPass <password>
    請務必使用直接單引號,不要使用斜線單引號。
    如需詳細資訊,請參閱管理使用者證明資料。
    這不是 Oracle Cloud Infrastructure 使用者的密碼。
    -container 物件儲存中作為備份目的地的現有儲存桶名稱,例如:-container DBBackups
    -walletDir 安裝工具將建立 Oracle Wallet 的目錄,其中包含 Oracle Cloud Infrastructure 使用者名稱和認證權杖。
    -walletDir ~/hsbtwallet 會在目前的使用者 (oracle) 本位目錄中建立公事包。
    -libDir 儲存 SBT 程式庫的目錄。執行指令前,該目錄必須已存在。此參數會下載最新的 SBT 程式庫。
    -libDir ~/lib/ 會將 libopc.so 檔案下載至目前使用者的主目錄,例如 /home/oracle/lib/libopc.so。
    -configfile 將由安裝工具建立的初始化參數檔名稱。您的 RMAN 工作將會參照此檔案。
    -configfile ~/config 會在目前使用者的本位目錄中建立該檔案,例如 /home/oracle/config。
    -host 要傳送備份的端點 URL:
    https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>
    其中 object_storage_namespace 是您租用戶的物件儲存命名空間。如需詳細資訊,請參閱瞭解物件儲存命名空間。
    請勿在「物件儲存」命名空間之後新增斜線。
    若要查詢區域名稱,請參閱區域與可用性網域。

設定 RMAN

本主題描述如何設定 RMAN 使用儲存桶作為預設備份目的地。以下假設您仍已登入資料庫系統。

  1. 在資料庫系統上,使用 oraenv 公用程式設定 ORACLE_HOME 和 ORACLE_SID 環境變數。

    . oraenv
  2. 使用 RMAN 連線至資料庫。

    rman target /
  3. 設定 RMAN 使用 SBT 裝置並指向安裝備份模組時所建立的 config 檔案。此處顯示版本 12 資料庫的命令範例。

    CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS
        'SBT_LIBRARY=/home/oracle/lib/libopc.so,
        SBT_PARMS=(OPC_PFILE=/home/oracle/config)';
  4. 依照預設,將 RMAN 設定為使用 SBT_TAPE。下列範例啟用 SBT_TAPE 的控制檔與 spfile 自動備份,並設定加密。您安裝的其他設定值包括壓縮、使用的備份與復原通道數目、備份保留原則、存檔日誌刪除原則等等。如需有關選擇適當設定值的詳細資訊,請參閱您 Oracle 版本的 Oracle Backup and Recovery 文件。

    CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;
    CONFIGURE BACKUP OPTIMIZATION ON;
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F';
    CONFIGURE ENCRYPTION FOR DATABASE ON;

注意:備份必須加密。執行備份時,請指定加密。備份若未加密,將會發生錯誤。

RMAN 組態完成後,您可以使用定期用於磁帶備份的相同 RMAN 命令。

備份 Database

本主題提供常用備份命令的範例。

  1. 設定資料庫加密:

    SET ENCRYPTION IDENTIFIED BY "password" ONLY;

    請注意,此設定不是永久的;您必須為每個新的 RMAN 階段作業設定它。

  2. 備份資料庫和存檔日誌。下面是一些範例指令。如需有關選擇符合您需求之備份程序的詳細資訊,請參閱您 Oracle 版本的 Oracle Backup and Recovery 文件。請務必定期備份以盡可能減少潛在的資料遺失,並且一律包含 spfile 和控制檔的複本。請注意,下面的範例使用多區段增量備份,這是 12c 導入的功能。使用 11g 時,請省略 section size 子句。

    BACKUP INCREMENTAL LEVEL 0 SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
    BACKUP INCREMENTAL LEVEL 1 SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
    BACKUP INCREMENTAL LEVEL 1 CUMULATIVE SECTION SIZE 512M DATABASE PLUS ARCHIVELOG;
  3. 經常備份存檔日誌以將潛在的資料遺失減至最低,並保留多個備份複本以防萬一。

    BACKUP ARCHIVELOG ALL NOT BACKED UP 2 TIMES;

備份工作完成後,您可以選取物件儲存,在儲存頁面的主控台中顯示您儲存桶中的備份檔案。