使用 RMAN 將資料庫備份至物件儲存體
本文說明如何使用復原管理程式 (RMAN) 來管理將資料庫系統資料庫備份至您自己的物件儲存。
若要備份服務,您需要為備份建立物件儲存的儲存桶、產生服務的密碼、安裝 Oracle Database Cloud Backup Module,然後設定 RMAN 將備份傳送至服務。備份模組是與 RMAN 緊密整合的磁帶 (SBT) 介面的系統備份,因此您可以使用熟悉的 RMAN 命令來執行備份與復原作業。
您會注意到主控台中提及的 Swift 以及服務的端點 URL。這是因為備份模組通常用來備份至 Oracle Database Backup Cloud Service,這是 OpenStack Swift 物件存放區。
秘訣:
在單一節點資料庫系統上,您可以使用 DBCLI 備份到物件儲存。這是安裝備份模組及使用 RMAN 進行備份的替代方式。如需詳細資訊,請參閱 Objectstoreswift Commands 。請注意,多重節點 RAC 資料庫系統無法使用dbcli
命令。
必備條件
需要下列項目:
- 要備份的資料庫系統和資料庫。
- 資料庫系統的雲端網路 (VCN) 必須設定成可存取物件儲存:
- 在與資料庫系統相同的區域中存取物件儲存:Oracle 建議使用服務閘道。
- 針對與資料庫系統不同區域的物件儲存存取:使用網際網路閘道。請注意,資料庫系統與物件儲存之間的網路流量不會離開雲端,也不會連線至公用網際網路。
如需詳細資訊,請參閱 VCN 和子網路。
- 作為備份目的地的現有物件儲存的儲存桶。您可以使用主控台或物件儲存 API 建立儲存桶。
如需詳細資訊,請參閱管理儲存桶。
- OCI 產生的認證權杖。您可以使用主控台或 IAM API 產生密碼。
如需詳細資訊,請參閱管理使用者證明資料中的使用認證記號。
-
使用者名稱 (在安裝並使用備份模組時指定) 必須具備物件儲存的租用戶層級存取權。要這樣做的最快的方法是,將使用者名稱新增至「管理員」群組。不過,這允許存取所有的雲端服務。管理員應改為建立原則,如下所述限制只能存取物件儲存中用於備份和回復資料庫的必要資源:
Allow group <group_name> to manage objects in compartment <compartment_name> where target.bucket.name = '<bucket_name>' Allow group <group_name> to read buckets in compartment <compartment_name>
在資料庫系統上安裝備份模組
- SSH 至資料庫系統。
ssh -i <SSH_key_used_when_launching_the_DB_system> opc@<DB_system_IP_address_or_hostname>
- 以
opc
使用者身分登入。login as: opc
sudo
至oracle
使用者。sudo su - oracle
- 變更至包含備份模組
opc_install.jar
檔案的目錄。cd /opt/oracle/oak/pkgrepos/oss/odbcs
- 請使用下列命令語法來安裝備份模組。
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>
參數包括:
Parameter - 參數 描述 -opcId
Oracle Cloud Infrastructure 使用者帳戶的使用者名稱,例如:
-opcId <username>@<example>.com
。這是您用來登入主控台的使用者名稱。
使用者名稱必須是「管理員」群組的成員,如先決條件段落中所述。
您也可以用單引號指定使用者名稱。如果名稱包含特殊字元 (例如:
-opcId 'j~smith@<example>.com'
),則可能需要這樣做。請務必使用直接單引號,而不是斜向單引號。
-opcPass
使用主控台或 IAM API 產生的認證權杖,以單引號表示,例如:
-opcPass <password>
請務必使用直接單引號,而不是斜向單引號。
如需詳細資訊,請參閱管理使用者證明資料。
這不是 Oracle Cloud Infrastructure 使用者的密碼。
-container
物件儲存中要作為備份目的地的現有儲存桶名稱,例如:
-container DBBackups
-walletDir
安裝工具將建立包含 Oracle Cloud Infrastructure 使用者名稱和認證權杖之 Oracle Wallet 的目錄。
-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 設定為使用儲存桶作為預設備份目的地。下列假設您仍已登入資料庫系統。
- 在資料庫系統上,使用
oraenv
公用程式設定ORACLE_HOME
和ORACLE_SID
環境變數。. oraenv
- 使用 RMAN 連線至資料庫。
rman target /
- 將 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)';
- 將 RMAN 預設設定為使用 SBT_TAPE。下列範例可讓 controlfile 和 spfile 自動備份至 SBT_TAPE,並設定加密。其他設定可能會套用至您的安裝,例如壓縮、要使用的備份與復原通道數目、備份保留原則、存檔日誌刪除原則等等。如需有關選擇適當設定值的詳細資訊,請參閱您 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 命令。
備份資料庫
本主題提供常用備份指令的範例。
- 設定資料庫加密:
SET ENCRYPTION IDENTIFIED BY "password" ONLY;
請注意,這個設定值不是永久的,您必須為每個新的 RMAN 階段作業加以設定。
- 備份資料庫和存檔日誌。以下是一些範例命令。如需有關選擇符合您需求之備份程序的詳細資訊,請參閱您 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;
- 經常備份封存日誌以盡可能減少資料遺失,並謹慎保留多個備份複本。
BACKUP ARCHIVELOG ALL NOT BACKED UP 2 TIMES;
當備份工作完成時,您可以在儲存體頁面的主控台中顯示儲存桶中的備份檔案,方法是選取物件儲存體。