AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
如何備份我的 Amazon RDS for Oracle 資料庫執行個體?
我想使用 Recovery Manager (RMAN) 備份我的 Amazon Relational Database Service (Amazon RDS) for Oracle 資料庫執行個體。
解決方法
在 Amazon RDS for Oracle 資料庫執行個體執行 RMAN 備份之前,請先了解以下限制:
- 在資料庫執行個體上執行 RMAN 備份會占用該執行個體已配置的儲存空間。您也可以透過Amazon Elastic File System (Amazon EFS) 整合,將備份檔案存放於擴充儲存空間,而不必增加資料庫執行個體的總儲存容量。
- 備份平行處理、備份壓縮、資料庫驗證及區塊變更追蹤等功能,僅供 Oracle Enterprise Edition 使用者使用。如需更多資訊,請參閱 Oracle 網站上的 Oracle 資料庫版本。
- RDS for Oracle 讀取複寫不支援 RMAN 功能,但讀取複寫仍可使用區塊變更追蹤。
- 執行 RMAN 備份前,您必須先為資料庫執行個體啟用自動備份。RMAN 備份屬於線上作業,因此必須啟用封存日誌。為執行個體啟用自動備份時,系統也會將資料庫執行個體設為封存日誌模式。
使用 RMAN 備份資料庫執行個體
您可以採用以下任一方式,以 RMAN 備份資料庫執行個體:
- 使用預設的 DATA_PUMP_DIR 目錄。
- 建立新目錄,並將備份檔案存放在 RDS 執行個體已配置的儲存空間中。
- 使用 Amazon EFS 整合,即可避免占用資料庫執行個體已配置的儲存空間。
若要監控目錄占用的儲存空間,請執行以下查詢:
SELECT round(SUM(filesize)/1024/1024/1024, 3) SIZE_IN_GB FROM TABLE(rdsadmin.rds_file_util.listdir('<DIRECTORY_NAME>'));
對資料庫執行個體執行完整資料庫備份
執行完整資料庫備份時,會涵蓋資料庫執行個體中的所有資料檔案。備份內容也包含控制檔案與預存程序檔案。
若要建立標記名稱為 Full_DB_BACKUP、儲存在 DATA_PUMP_DIR,且採用預設任務參數的完整資料庫備份,請執行以下查詢:
BEGIN rdsadmin.rdsadmin_rman_util.backup_database_full( p_owner => 'SYS', p_directory_name => 'DATA_PUMP_DIR', p_tag => 'FULL_DB_BACKUP', p_rman_to_dbms_output => FALSE); END; /
對資料庫執行個體執行增量資料庫備份
增量備份另需使用名為 p_level 的參數。若要執行完整增量備份,請將 p_level 設為 0。若要執行增量差異備份,請將 p_level 設為 1。如需更多資訊,請參閱 Oracle 網站上的 RMAN 增量備份簡介。
與完整備份相同,RDS for Oracle 資料庫執行個體的增量備份也提供可在開始備份前設定的通用參數。
若要使用預設任務參數,建立標記名稱為 MY_INCREMENTAL_BACKUP 並存放在 DATA_PUMP_DIR 目錄中的增量備份,請執行以下程序:
BEGIN rdsadmin.rdsadmin_rman_util.backup_database_incremental( p_owner => 'SYS', p_directory_name => 'DATA_PUMP_DIR', p_level => 1, p_tag => 'MY_INCREMENTAL_BACKUP', p_rman_to_dbms_output => FALSE); END; /
對資料庫執行個體執行封存日誌備份
使用 Amazon RDS for Oracle rdsadmin_rman_util 套件,依 SCN 範圍、序號範圍或日期範圍備份封存日誌。
執行以下程序,將執行個體的封存日誌備份至 ARCHIVE_LOG_BACKUP 目錄,並使用 LOG_BACKUP 作為標記名稱。如需變更封存日誌備份設定,請參閱執行 Oracle 資料庫執行個體的常見 RMAN 任務。
--creating a directory to store archive log backups EXEC rdsadmin.rdsadmin_util.create_directory(p_directory_name => 'ARCHIVE_LOG_BACKUP'); --performing archive log backup BEGIN rdsadmin.rdsadmin_rman_util.backup_archivelog_all( p_owner => 'SYS', p_directory_name => 'ARCHIVE_LOG_BACKUP', p_tag => 'LOG_BACKUP', p_rman_to_dbms_output => FALSE); END; /
對資料庫執行個體執行資料表空間備份
使用備份資料表空間中說明的通用參數,備份資料庫執行個體中的個別資料表空間。以下命令範例會將 USERS1 資料表空間備份至自訂目錄 TB_BACKUP,並以 MYTABLESPACE_BACKUP 作為標記名稱。
BEGIN rdsadmin.rdsadmin_rman_util.backup_tablespace( p_owner => 'SYS', p_directory_name => 'TB_BACKUP', p_tablespace_name => 'USERS1', p_tag => 'MYTABLESPACE_BACKUP', p_rman_to_dbms_output => FALSE); END; /
**注意:**您也可以使用 rdsadmin_rman_util 程序來備份控制檔案。如需更多資訊,請參閱備份控制檔案。
監控 RMAN 備份作業
您可以使用 SQL 查詢或檢查 RMAN 任務產生的日誌檔案,以監控 RMAN 備份。
您可以透過以下方式存取 RMAN 備份作業的日誌檔案:
-
對於要執行的 RMAN 任務,將 p_rman_to_dbms_output 設為 TRUE。請務必先將 serveroutput 設為 on,再執行 rdsadmin_rman_util 套件。
-
若要列出 RMAN 任務日誌檔案,請在 Amazon Aurora 和 RDS 主控台中查看logs and events section (日誌與事件區段)。
-
RMAN 備份任務完成後,您也可以執行以下 SQL 查詢,列出 RMAN 任務日誌。接著,使用 rdsadmin.rds_file_util.read_text_file 程序讀取日誌。如需更多資訊,請參閱列出檔案。
column filename format a70 set linesize 200 SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('BDUMP')) where filename like '%rman%'; -
若要確認 RMAN 備份所在目錄的大小,請先執行以下查詢。接著監控儲存空間用量。
SELECT round(SUM(filesize)/1024/1024, 3) SIZE_IN_MB FROM TABLE(rdsadmin.rds_file_util.listdir('<DIRECTORY_NAME>')); -
執行以下查詢,即可列出備份作業狀態,以及 RMAN 備份作業完成所需的時間。
set linesize 500 pagesize 2000 col Hours format 9999.99 col STATUS format a10 select SESSION_KEY, INPUT_TYPE, STATUS, to_char(START_TIME,'mm-dd-yyyy hh24:mi:ss') as RMAN_Bkup_start_time, to_char(END_TIME,'mm-dd-yyyy hh24:mi:ss') as RMAN_Bkup_end_time, elapsed_seconds/3600 Hours from V$RMAN_BACKUP_JOB_DETAILS order by session_key;
相關資訊
相關內容
已提問 2 年前
已提問 3 年前
已提問 3 年前
已提問 3 年前
