

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 執行 Oracle 資料庫執行個體的一般 RMAN 任務
<a name="Appendix.Oracle.CommonDBATasks.RMAN"></a>

下節會說明在執行 Oracle 的 Amazon RDS 資料庫執行個體上進行 Oracle Recovery Manager (RMAN) DBA 任務的方法。為了提供受管理的服務體驗，Amazon RDS 並不會提供資料庫執行個體的殼層存取權。而且會將存取權限制在某些需要進階權限的系統程序和資料表。

使用 Amazon RDS 套件 `rdsadmin.rdsadmin_rman_util`，將 Amazon RDS for Oracle 資料庫執行 RMAN 備份至磁碟。`rdsadmin.rdsadmin_rman_util` 套件可支援完整和增量資料庫檔案備份、資料表空間備份，以及封存的重做日誌檔備份。

RMAN 備份作業完成後，您即可從 Amazon RDS for Oracle 資料庫執行個體主機複製備份檔案。如此一來，您就能透過該檔案還原至非 RDS 主機，或用來長期儲存備份資料。例如，您可以將備份檔案複製到 Amazon S3 儲存貯體。如需詳細資訊，請參閱 [Amazon S3 整合](oracle-s3-integration.md)的使用方式。

RMAN 備份作業產生的備份檔案會保留在 Amazon RDS 資料庫執行個體主機上，直到您手動移除這些檔案為止。您可使用 `UTL_FILE.FREMOVE` Oracle 程序由目錄移除檔案。如需詳細資訊，請參閱 Oracle 資料庫文件中的 [FREMOVE 程序](https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS70924)。

您無法使用 RMAN 來還原 RDS for Oracle 資料庫執行個體。不過，您可以使用 RMAN 將備份還原到內部部署或 Amazon EC2 執行個體。如需詳細資訊，請參閱部落格文章[將 Amazon RDS for Oracle 執行個體還原到自我管理的執行個體](https://aws.amazon.com/blogs/database/restore-an-amazon-rds-for-oracle-instance-to-a-self-managed-instance/)。

**注意**  
若要備份或還原至另一個 Amazon RDS for Oracle 資料庫執行個體，則可繼續使用 Amazon RDS 備份和還原功能。如需詳細資訊，請參閱[備份、還原和匯出資料](CHAP_CommonTasks.BackupRestore.md)。

**Topics**
+ [RMAN 備份的先決條件](Appendix.Oracle.CommonDBATasks.RMAN-requirements.md)
+ [RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)
+ [驗證 RDS for Oracle 中的資料庫檔案](Appendix.Oracle.CommonDBATasks.ValidateDBFiles.md)
+ [啟用和停用區塊變更追蹤功能](Appendix.Oracle.CommonDBATasks.BlockChangeTracking.md)
+ [交叉檢查封存的重做日誌](Appendix.Oracle.CommonDBATasks.Crosscheck.md)
+ [備份封存的重做日誌檔案](Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.md)
+ [執行完整資料庫備份](Appendix.Oracle.CommonDBATasks.BackupDatabaseFull.md)
+ [執行租戶資料庫的完整備份](Appendix.Oracle.CommonDBATasks.BackupTenantDatabaseFull.md)
+ [執行增量資料庫備份](Appendix.Oracle.CommonDBATasks.BackupDatabaseIncremental.md)
+ [執行租戶資料庫的增量備份](Appendix.Oracle.CommonDBATasks.BackupTenantDatabaseIncremental.md)
+ [備份資料表空間](Appendix.Oracle.CommonDBATasks.BackupTablespace.md)
+ [備份控制檔案](Appendix.Oracle.CommonDBATasks.backup-control-file.md)
+ [執行區塊媒體復原](Appendix.Oracle.CommonDBATasks.block-media-recovery.md)

# RMAN 備份的先決條件
<a name="Appendix.Oracle.CommonDBATasks.RMAN-requirements"></a>

使用 `rdsadmin.rdsadmin_rman_util` 套件備份資料庫之前，請確定您符合下列先決條件：
+ 確保你的 RDS for Oracle 資料庫處於 `ARCHIVELOG` 模式。若要啟用此模式，請將備份保留期間設定為非零值。
+ 在備份封存的重做日誌，或是執行包含封存重做日誌的完整或增量備份，以及備份資料庫時，請確保將重做日誌保留期間設定為非零值。需要存檔的重做日誌，才能在復原期間使資料庫檔案保持一致。如需詳細資訊，請參閱[保留封存的重做日誌](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md)。
+ 請確保您的資料庫執行個體有足夠的可用空間來存放備份。當您備份資料庫時，可以在程序呼叫中將 Oracle 目錄物件指定為參數。RMAN 會將檔案放在指定目錄中。您能夠使用預設目錄 (如 `DATA_PUMP_DIR`)，也能夠建立新目錄。如需詳細資訊，請參閱[在主要資料儲存空間中建立和捨棄目錄](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.NewDirectories)。

  您可以使用 CloudWatch 指標 `FreeStorageSpace` 監控 RDS for Oracle 執行個體中目前的可用空間。我們建議您的可用空間超過資料庫目前的大小，儘管 RMAN 僅備份格式化的區塊並支援壓縮。

# RMAN 程序的常見參數
<a name="Appendix.Oracle.CommonDBATasks.CommonParameters"></a>

您可以使用 Amazon RDS 套件 `rdsadmin.rdsadmin_rman_util` 中的程序來執行 RMAN 任務。有多個參數對該套件中的程序而言都是共通的，以下即為該套件的常見參數。


****  

| 參數名稱 | 資料類型 | 有效值 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | --- | 
|  `p_directory_name`  |  varchar2  |  有效的資料庫目錄名稱。  |  —  |  是  |  要包含備份檔案的目錄名稱。  | 
|  `p_label`  |  varchar2  |  `a-z`, `A-Z`, `0-9`, `'_'`, `'-'`, `'.'`  |  —  |  否  |  包含在備份檔案名稱中的唯一字串。  長度限制為 30 個字元。   | 
|  `p_owner`  |  varchar2  |  `p_directory_name` 中指定的有效目錄擁有者。  |  —  |  是  |  要包含備份檔案的目錄擁有者。  | 
|  `p_tag`  |  varchar2  |  `a-z`, `A-Z`, `0-9`, `'_'`, `'-'`, `'.'`  |  NULL  |  否  |  可用於區分備份的字串，以指明備份的目的或用法，例如每日、每週或增量層級備份。 長度限制為 30 個字元。標籤不區分大小寫。無論輸入標籤時使用的大小寫為何，一律以大寫形式儲存標籤。 標籤不需是唯一的，因此多個備份可以有相同的標籤。 如果沒有指定標籤，則 RMAN 會使用 `TAGYYYYMMDDTHHMMSS` 格式自動指派預設標籤，其中 *YYYY* 是年、*MM* 是月、*DD* 是日、*HH* 是時 (24 小時制)、*MM* 是分、*SS* 是秒。日期和時間指的是 RMAN 開始備份的時間。 例如，如果備份是在 2019-09-27 的 21:45:17 開始的，接收到的標籤可能是 `TAG20190927T214517`。 下列 Amazon RDS for Oracle 資料庫引擎版本支援 `p_tag` 參數： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.CommonParameters.html)  | 
|  `p_compress`  |  布林值  |  `TRUE`, `FALSE`  |  `FALSE`  |  否  |  指定 `TRUE` 可啟用 BASIC 備份壓縮。 指定 `FALSE` 可停用 BASIC 備份壓縮。  | 
|  `p_include_archive_logs`  |  布林值  |  `TRUE`, `FALSE`  |  `FALSE`  |  否  |  指定 `TRUE` 可在備份中包含封存的重做日誌。 指定 `FALSE` 可排除備份中的封存重做日誌。 如果您選擇在備份中包含封存的重做日誌，請使用 `rdsadmin.rdsadmin_util.set_configuration` 程序將保留期間設定為一小時以上。同時，您還需立即呼叫 `rdsadmin.rdsadmin_rman_util.crosscheck_archivelog` 程序，再開始執行備份。否則，備份作業可能會因缺少遭 Amazon RDS 管理程序刪除的封存重做日誌檔而失敗。  | 
|  `p_include_controlfile`  |  布林值  |  `TRUE`, `FALSE`  |  `FALSE`  |  否  |  指定 `TRUE` 可在備份中包含控制檔案。 指定 `FALSE` 可排除備份中的控制檔案。  | 
|  `p_optimize`  |  布林值  |  `TRUE`, `FALSE`  |  `TRUE`  |  否  |  指定 `TRUE` 可啟用備份最佳化。在包含封存重做日誌的情況下，此參數可縮減備份大小。 指定 `FALSE` 可停用備份最佳化。  | 
|  `p_parallel`  |  數字  |  Oracle Database Enterprise Edition (EE)，介於 `1` 與 `254` 之間的有效整數 `1`其他 Oracle 資料庫版本為   |  `1`  |  否  |  通道的數目。  | 
|  `p_rman_to_dbms_output`  |  布林值  |  `TRUE`, `FALSE`  |  `FALSE`  |  否  |  為 `TRUE` 時，RMAN 輸出除了傳送到 `DBMS_OUTPUT` 目錄中的檔案以外，還會傳送到 `BDUMP` 套件。在 SQL\$1Plus 中，使用 `SET SERVEROUTPUT ON` 來查看輸出。 設定為 `FALSE` 時，系統只會將 RMAN 輸出傳送至 `BDUMP` 目錄中的檔案。  | 
|  `p_section_size_mb`  |  數字  |  有效的整數  |  `NULL`  |  否  |  區段大小，以 MB 為單位。 將每個檔案分割為指定的區段大小來平行驗證。 為 `NULL` 時，會忽略參數。  | 
|  `p_validation_type`  |  varchar2  |  `'PHYSICAL'`, `'PHYSICAL+LOGICAL'`  |  `'PHYSICAL'`  |  否  |  損毀偵測的層級。 指定 `'PHYSICAL'` 來檢查實體損毀。實體損毀的其中一例是標頭和頁尾中不相符的區塊。 指定 `'PHYSICAL+LOGICAL'` 來檢查邏輯不一致以及實體損毀。邏輯損毀的其中一例，就是損毀的區塊。  | 

# 驗證 RDS for Oracle 中的資料庫檔案
<a name="Appendix.Oracle.CommonDBATasks.ValidateDBFiles"></a>

您可以使用 Amazon RDS 套件 `rdsadmin.rdsadmin_rman_util` 來驗證 Amazon RDS for Oracle 資料庫檔案，例如資料檔案、資料表空間、控制檔案和伺服器參數檔案 (SPFILE)。

如需 RMAN 驗證的詳細資訊，請參閱 Oracle 文件中的[驗證資料庫檔案和備份](https://docs.oracle.com/database/121/BRADV/rcmvalid.htm#BRADV90063)，以及 [VALIDATE](https://docs.oracle.com/database/121/RCMRF/rcmsynta2025.htm#RCMRF162)。

**Topics**
+ [驗證資料庫](#Appendix.Oracle.CommonDBATasks.ValidateDB)
+ [驗證租戶資料庫](#Appendix.Oracle.CommonDBATasks.ValidateTenantDB)
+ [驗證資料表空間](#Appendix.Oracle.CommonDBATasks.ValidateTablespace)
+ [驗證控制檔案](#Appendix.Oracle.CommonDBATasks.ValidateControlFile)
+ [驗證 SPFILE](#Appendix.Oracle.CommonDBATasks.ValidateSpfile)
+ [驗證 Oracle 資料檔案](#Appendix.Oracle.CommonDBATasks.ValidateDataFile)

## 驗證資料庫
<a name="Appendix.Oracle.CommonDBATasks.ValidateDB"></a>

若要驗證 RDS for Oracle 中由 Oracle 資料庫使用的所有相關檔案，請使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.validate_database`。

這個程序會採用下列常見參數來處理 RMAN 任務：
+ `p_validation_type`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_rman_to_dbms_output`

如需詳細資訊，請參閱[RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

下列範例會使用參數的預設值來驗證資料庫。

```
EXEC rdsadmin.rdsadmin_rman_util.validate_database;
```

下列範例會使用參數的指定值來驗證資料庫。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.validate_database(
        p_validation_type     => 'PHYSICAL+LOGICAL', 
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_rman_to_dbms_output => FALSE);
END;
/
```

`p_rman_to_dbms_output` 參數設定為 `FALSE` 時，系統會將 RMAN 輸出寫入 `BDUMP` 目錄中的檔案。

若要檢視 `BDUMP` 目錄中的檔案，請執行下列 `SELECT` 陳述式。

```
SELECT * FROM table(rdsadmin.rds_file_util.listdir('BDUMP')) order by mtime;
```

若要檢視 `BDUMP` 目錄中的檔案內容，請執行下列 `SELECT` 陳述式。

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','rds-rman-validate-nnn.txt'));
```

請使用要檢視的檔案名稱來取代原先的檔案名稱。

## 驗證租戶資料庫
<a name="Appendix.Oracle.CommonDBATasks.ValidateTenantDB"></a>

若要驗證容器資料庫 (CDB) 中租戶資料庫的資料檔案，請使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.validate_tenant`。

這個程序僅適用於目前的租戶資料庫，並會將下列常見參數用於 RMAN 任務：
+ `p_validation_type`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_rman_to_dbms_output`

如需詳細資訊，請參閱[RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。下列資料庫引擎版本支援這個程序：
+ Oracle Database 21c (21.0.0) CDB
+ Oracle Database 19c (19.0.0) CDB

下列範例會使用參數的預設值來驗證目前的資料庫執行個體。

```
EXEC rdsadmin.rdsadmin_rman_util.validate_tenant;
```

下列範例會使用參數的指定值來驗證目前的資料庫執行個體。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.validate_tenant(
        p_validation_type     => 'PHYSICAL+LOGICAL', 
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_rman_to_dbms_output => FALSE);
END;
/
```

`p_rman_to_dbms_output` 參數設定為 `FALSE` 時，系統會將 RMAN 輸出寫入 `BDUMP` 目錄中的檔案。

若要檢視 `BDUMP` 目錄中的檔案，請執行下列 `SELECT` 陳述式。

```
SELECT * FROM table(rdsadmin.rds_file_util.listdir('BDUMP')) order by mtime;
```

若要檢視 `BDUMP` 目錄中的檔案內容，請執行下列 `SELECT` 陳述式。

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','rds-rman-validate-nnn.txt'));
```

請使用要檢視的檔案名稱來取代原先的檔案名稱。

## 驗證資料表空間
<a name="Appendix.Oracle.CommonDBATasks.ValidateTablespace"></a>

若要驗證與資料表空間相關聯的檔案，請使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.validate_tablespace`。

這個程序會採用下列常見參數來處理 RMAN 任務：
+ `p_validation_type`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_rman_to_dbms_output`

如需更多詳細資訊，請參閱 [RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

此外，這個程序還會額外使用下列參數。


****  

| 參數名稱 | 資料類型 | 有效值 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar2  |  有效的資料表空間名稱  |  —  |  是  |  資料表空間的名稱。  | 

## 驗證控制檔案
<a name="Appendix.Oracle.CommonDBATasks.ValidateControlFile"></a>

若要只驗證 Amazon RDS Oracle 資料庫執行個體使用的控制檔案，請使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.validate_current_controlfile`。

這個程序會採用下列常見參數來處理 RMAN 任務：
+ `p_validation_type`
+ `p_rman_to_dbms_output`

如需更多詳細資訊，請參閱 [RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

## 驗證 SPFILE
<a name="Appendix.Oracle.CommonDBATasks.ValidateSpfile"></a>

若要只驗證 Amazon RDS Oracle 資料庫執行個體使用的伺服器參數檔案 (SPFILE)，請使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.validate_spfile`。

這個程序會採用下列常見參數來處理 RMAN 任務：
+ `p_validation_type`
+ `p_rman_to_dbms_output`

如需詳細資訊，請參閱[RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

## 驗證 Oracle 資料檔案
<a name="Appendix.Oracle.CommonDBATasks.ValidateDataFile"></a>

若要驗證資料檔案，請使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.validate_datafile`。

這個程序會採用下列常見參數來處理 RMAN 任務：
+ `p_validation_type`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_rman_to_dbms_output`

如需更多詳細資訊，請參閱 [RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

此外，這個程序還會額外使用下列參數。


****  

| 參數名稱 | 資料類型 | 有效值 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | --- | 
|  `p_datafile`  |  varchar2  |  有效資料檔案 ID 編號或包含完整路徑的有效資料檔案名稱  |  —  |  是  |  資料檔案 ID 編號 (來自 `v$datafile.file#`) 或包含路徑的完整資料檔案名稱 (來自 `v$datafile.name`)。  | 
|  `p_from_block`  |  數字  |  有效的整數  |  `NULL`  |  否  |  資料檔案內開始驗證的區塊數量。當此參數為 `NULL` 時，表示使用的數量為 `1`。  | 
|  `p_to_block`  |  數字  |  有效的整數  |  `NULL`  |  否  |  資料檔案內結束驗證的區塊數量。當此參數為 `NULL` 時，表示資料檔案內使用的區塊數量達到上限。  | 

# 啟用和停用區塊變更追蹤功能
<a name="Appendix.Oracle.CommonDBATasks.BlockChangeTracking"></a>

區塊變更追蹤會紀錄追蹤檔案中變更的區塊。這項技術可以改善 RMAN 增量備份的效能。如需詳細資訊，請參閱 Oracle 資料庫文件中的[使用區塊變更追蹤來改善增量備份效能 ](https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/backing-up-database.html#GUID-4E1F605A-76A7-48D0-9D9B-7343B4327E2A)。

讀取複本不支援 RMAN 功能。不過，在您的高可用性策略中，您可能會選擇使用程序 `rdsadmin.rdsadmin_rman_util.enable_block_change_tracking` 在唯讀複本中啟用區塊追蹤。如果您將此唯讀複本提升至來源資料庫執行個體，則會為新來源執行個體啟用區塊變更追蹤。因此，您的執行個體可能因快速增量備份而受益。

下列資料庫引擎版本支援企業版限定的區塊變更追蹤程序：
+ Oracle Database 21c (21.0.0)
+ Oracle 資料庫 19c (19.0.0)

**注意**  
在單一租用戶 CDB 中，以下操作雖然有效，但沒有客戶可見機制能夠偵測操作的當前狀態。另請參閱 [RDS for Oracle CDB 的限制](Oracle.Concepts.CDBs.md#Oracle.Concepts.single-tenant-limitations)。

您可以使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.enable_block_change_tracking`，為資料庫執行個體啟用區塊變更追蹤功能。若要停用區塊變更追蹤，請使用 `disable_block_change_tracking`。這些程序不需採用任何參數。

若要判斷資料庫執行個體是否啟用區塊變更追蹤功能，則可執行下列查詢。

```
SELECT STATUS, FILENAME FROM V$BLOCK_CHANGE_TRACKING;
```

下方範例會為資料庫執行個體啟用區塊變更追蹤功能。

```
EXEC rdsadmin.rdsadmin_rman_util.enable_block_change_tracking;
```

下方範例會為資料庫執行個體停用區塊變更追蹤功能。

```
EXEC rdsadmin.rdsadmin_rman_util.disable_block_change_tracking;
```

# 交叉檢查封存的重做日誌
<a name="Appendix.Oracle.CommonDBATasks.Crosscheck"></a>

您可以使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.crosscheck_archivelog` 來交叉檢查封存的重做日誌。

您能夠利用這個程序來交叉檢查控制檔案中註冊的封存重做日誌，並選擇刪除過期的記錄。當 RMAN 製作備份時，它會在控制檔中建立記錄。經過一段時間後，這些記錄會增加控制檔案的大小，建議您定期移除過期的記錄。

**注意**  
標準的 Amazon RDS 備份作業不會使用 RMAN，所以系統不會在控制檔案中建立記錄。

這個程序會採用常見參數 `p_rman_to_dbms_output` 來處理 RMAN 任務。

如需更多詳細資訊，請參閱 [RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

此外，這個程序還會額外使用下列參數。


****  

| 參數名稱 | 資料類型 | 有效值 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | --- | 
|  `p_delete_expired`  |  布林值  |  `TRUE`, `FALSE`  |  `TRUE`  |  否  |  當此參數為 `TRUE` 時，系統會從控制檔案中刪除過期的封存重做日誌。 當此參數為 `FALSE` 時，系統會保留控制檔案中過期的封存重做日誌。  | 

下列 Amazon RDS for Oracle 資料庫引擎版本皆支援這個程序：
+ Oracle Database 21c (21.0.0)
+ Oracle 資料庫 19c (19.0.0)

下列範例會將控制檔中的封存重做日誌記錄標示為過期，但不會刪除記錄。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.crosscheck_archivelog(
        p_delete_expired      => FALSE,  
        p_rman_to_dbms_output => FALSE);
END;
/
```

下方範例會從控制檔案中刪除過期的封存重做日誌。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.crosscheck_archivelog(
        p_delete_expired      => TRUE,  
        p_rman_to_dbms_output => FALSE);
END;
/
```

# 備份封存的重做日誌檔案
<a name="Appendix.Oracle.CommonDBATasks.BackupArchivedLogs"></a>

您可以使用 Amazon RDS 套件 `rdsadmin.rdsadmin_rman_util` 來備份 Amazon RDS Oracle 資料庫執行個體的封存重做日誌。

下列 Amazon RDS for Oracle 資料庫引擎版本皆支援備份封存重做日誌的程序：
+ Oracle Database 21c (21.0.0)
+ Oracle 資料庫 19c (19.0.0)

**Topics**
+ [備份所有封存的重做日誌](#Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.All)
+ [備份特定日期範圍內的封存重做日誌](#Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.Date)
+ [備份特定 SCN 範圍內的封存重做日誌](#Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.SCN)
+ [備份特定序號範圍內的封存重做日誌](#Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.Sequence)

## 備份所有封存的重做日誌
<a name="Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.All"></a>

若要備份 Amazon RDS Oracle 資料庫執行個體的所有封存重做日誌，請使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.backup_archivelog_all`。

這個程序會採用下列常見參數來處理 RMAN 任務：
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

如需更多詳細資訊，請參閱 [RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

下方範例會備份資料庫執行個體的所有封存重做日誌。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_archivelog_all(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_parallel            => 4, 
        p_tag                 => 'MY_LOG_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

## 備份特定日期範圍內的封存重做日誌
<a name="Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.Date"></a>

若要透過指定某個日期範圍來備份 Amazon RDS Oracle 資料庫執行個體的特定封存重做日誌，請使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.backup_archivelog_date`。該日期範圍可用來指定要進行備份的封存重做日誌。

這個程序會採用下列常見參數來處理 RMAN 任務：
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

如需更多詳細資訊，請參閱 [RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

此外，這個程序還會額外使用下列參數。


****  

| 參數名稱 | 資料類型 | 有效值 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | --- | 
|  `p_from_date`  |  日期  |  介於磁碟上封存重做日誌 `start_date` 和 `next_date` 間的日期。該值必須小於或等於您為 `p_to_date` 指定的值。  |  —  |  是  |  封存日誌備份的開始日期。  | 
|  `p_to_date`  |  日期  |  介於磁碟上封存重做日誌 `start_date` 和 `next_date` 間的日期。該值必須大於或等於您為 `p_from_date` 指定的值。  |  —  |  是  |  封存日誌備份的結束日期。  | 

下方範例會備份日期範圍內的資料庫執行個體封存重做日誌。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_archivelog_date(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_from_date           => '03/01/2019 00:00:00',
        p_to_date             => '03/02/2019 00:00:00',
        p_parallel            => 4,  
        p_tag                 => 'MY_LOG_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

## 備份特定 SCN 範圍內的封存重做日誌
<a name="Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.SCN"></a>

若要透過指定某個系統變更編號 (SCN) 來備份 Amazon RDS Oracle 資料庫執行個體的特定封存重做日誌，請使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.backup_archivelog_scn`。該 SCN 範圍可用來指定要進行備份的封存重做日誌。

這個程序會採用下列常見參數來處理 RMAN 任務：
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

如需更多詳細資訊，請參閱 [RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

此外，這個程序還會額外使用下列參數。


****  

| 參數名稱 | 資料類型 | 有效值 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | --- | 
|  `p_from_scn`  |  數字  |  磁碟上封存重做日誌的 SCN。該值必須小於或等於您為 `p_to_scn` 指定的值。  |  —  |  是  |  封存日誌備份的起始 SCN。  | 
|  `p_to_scn`  |  數字  |  磁碟上封存重做日誌的 SCN。該值必須大於或等於您為 `p_from_scn` 指定的值。  |  —  |  是  |  封存日誌備份的結束 SCN。  | 

下方範例會備份 SCN 範圍內的資料庫執行個體封存重做日誌。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_archivelog_scn(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_from_scn            => 1533835,
        p_to_scn              => 1892447,
        p_parallel            => 4,
        p_tag                 => 'MY_LOG_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

## 備份特定序號範圍內的封存重做日誌
<a name="Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.Sequence"></a>

若要透過指定某個序號範圍來備份 Amazon RDS Oracle 資料庫執行個體的特定封存重做日誌，請使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.backup_archivelog_sequence`。該序號範圍可用來指定要進行備份的封存重做日誌。

這個程序會採用下列常見參數來處理 RMAN 任務：
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

如需更多詳細資訊，請參閱 [RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

此外，這個程序還會額外使用下列參數。


****  

| 參數名稱 | 資料類型 | 有效值 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | --- | 
|  `p_from_sequence`  |  數字  |  磁碟上封存重做日誌的序號。該值必須小於或等於您為 `p_to_sequence` 指定的值。  |  —  |  是  |  封存日誌備份的起始序號。  | 
|  `p_to_sequence`  |  數字  |  磁碟上封存重做日誌的序號。該值必須大於或等於您為 `p_from_sequence` 指定的值。  |  —  |  是  |  封存日誌備份的結束序號。  | 

下方範例會備份序號範圍內的資料庫執行個體封存重做日誌。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_archivelog_sequence(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_from_sequence       => 11160,
        p_to_sequence         => 11160,
        p_parallel            => 4,  
        p_tag                 => 'MY_LOG_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# 執行完整資料庫備份
<a name="Appendix.Oracle.CommonDBATasks.BackupDatabaseFull"></a>

您可以使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.backup_database_full`，對備份中包含的所有資料檔案區塊執行備份作業。

這個程序會採用下列常見參數來處理 RMAN 任務：
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_include_archive_logs`
+ `p_optimize`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

如需更多詳細資訊，請參閱 [RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

下列 Amazon RDS for Oracle 資料庫引擎版本皆支援這個程序：
+ Oracle Database 21c (21.0.0)
+ Oracle 資料庫 19c (19.0.0)

下列範例會使用參數的指定值來執行資料庫執行個體的完整備份。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_database_full(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_tag                 => 'FULL_DB_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# 執行租戶資料庫的完整備份
<a name="Appendix.Oracle.CommonDBATasks.BackupTenantDatabaseFull"></a>

您可以執行所有資枓區塊的備份，包括容器資料庫 (CDB) 中的租戶資料庫。使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.backup_tenant_full` 這個程序僅適用於目前的資料庫備份，並會將下列常見參數用於 RMAN 任務：
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_include_archive_logs`
+ `p_optimize`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

如需詳細資訊，請參閱[RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

下列 RDS for Oracle 資料庫引擎版本支援 `rdsadmin_rman_util.backup_tenant_full` 程序：
+ Oracle Database 21c (21.0.0) CDB
+ Oracle Database 19c (19.0.0) CDB

下列範例會使用參數的指定值來執行目前租戶資料庫的完整備份。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_tenant_full(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_tag                 => 'FULL_TENANT_DB_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# 執行增量資料庫備份
<a name="Appendix.Oracle.CommonDBATasks.BackupDatabaseIncremental"></a>

您可以使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.backup_database_incremental` 來執行資料庫執行個體的增量備份作業。

如需增量備份的詳細資訊，請參閱 Oracle 文件中的[增量備份](https://docs.oracle.com/database/121/RCMRF/rcmsynta006.htm#GUID-73642FF2-43C5-48B2-9969-99001C52EB50__BGBHABHH)。

這個程序會採用下列常見參數來處理 RMAN 任務：
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_include_archive_logs`
+ `p_include_controlfile`
+ `p_optimize`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

如需更多詳細資訊，請參閱 [RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

下列 Amazon RDS for Oracle 資料庫引擎版本皆支援這個程序：
+ Oracle Database 21c (21.0.0)
+ Oracle 資料庫 19c (19.0.0)

此外，這個程序還會額外使用下列參數。


****  

| 參數名稱 | 資料類型 | 有效值 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | --- | 
|  `p_level`  |  數字  |  `0`, `1`  |  `0`  |  否  |  指定 `0` 可啟用完整增量備份。 指定 `1` 可啟用非累積增量備份。  | 

下列範例會使用參數的指定值來執行資料庫執行個體的增量備份。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_database_incremental(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_level               => 1,
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_tag                 => 'MY_INCREMENTAL_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# 執行租戶資料庫的增量備份
<a name="Appendix.Oracle.CommonDBATasks.BackupTenantDatabaseIncremental"></a>

您可以在 CDB 中執行目前租戶資料庫的增量備份。使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.backup_tenant_incremental`

如需增量備份的詳細資訊，請參閱 Oracle Database 文件中的[增量備份](https://docs.oracle.com/database/121/RCMRF/rcmsynta006.htm#GUID-73642FF2-43C5-48B2-9969-99001C52EB50__BGBHABHH)。

這個程序僅適用於目前的租戶資料庫，並會將下列常見參數用於 RMAN 任務：
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_include_archive_logs`
+ `p_include_controlfile`
+ `p_optimize`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

如需更多詳細資訊，請參閱 [RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

下列 Amazon RDS for Oracle 資料庫引擎版本皆支援這個程序：
+ Oracle Database 21c (21.0.0) CDB
+ Oracle Database 19c (19.0.0) CDB

此外，這個程序還會額外使用下列參數。


****  

| 參數名稱 | 資料類型 | 有效值 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | --- | 
|  `p_level`  |  數字  |  `0`, `1`  |  `0`  |  否  |  指定 `0` 可啟用完整增量備份。 指定 `1` 可啟用非累積增量備份。  | 

下列範例會使用參數的指定值來執行目前租戶資料庫的增量備份。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_tenant_incremental(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_level               => 1,
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_tag                 => 'MY_INCREMENTAL_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# 備份資料表空間
<a name="Appendix.Oracle.CommonDBATasks.BackupTablespace"></a>

您可以使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.backup_tablespace` 來備份資料表空間。

這個程序會採用下列常見參數來處理 RMAN 任務：
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_include_archive_logs`
+ `p_include_controlfile`
+ `p_optimize`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

如需更多詳細資訊，請參閱 [RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

此外，這個程序還會額外使用下列參數。


****  

| 參數名稱 | 資料類型 | 有效值 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar2  |  有效的資料表空間名稱。  |  —  |  是  |  要備份的資料表空間名稱。  | 

下列 Amazon RDS for Oracle 資料庫引擎版本皆支援這個程序：
+ Oracle Database 21c (21.0.0)
+ Oracle 資料庫 19c (19.0.0)

下列範例會使用參數的指定值來執行資料表空間備份。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_tablespace(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_tablespace_name     => 'MYTABLESPACE',
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_tag                 => 'MYTABLESPACE_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# 備份控制檔案
<a name="Appendix.Oracle.CommonDBATasks.backup-control-file"></a>

您可以使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.backup_current_controlfile` 來備份控制檔案。

這個程序會採用下列常見參數來處理 RMAN 任務：
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

如需更多詳細資訊，請參閱 [RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

下列 Amazon RDS for Oracle 資料庫引擎版本皆支援這個程序：
+ Oracle Database 21c (21.0.0)
+ Oracle 資料庫 19c (19.0.0)

下列範例使用參數的指定值來備份控制檔案。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_current_controlfile(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_tag                 => 'CONTROL_FILE_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# 執行區塊媒體復原
<a name="Appendix.Oracle.CommonDBATasks.block-media-recovery"></a>

您可以使用 Amazon RDS 程序 `rdsadmin.rdsadmin_rman_util.recover_datafile_block` 來復原個別資料區塊，稱為區塊媒體復原。您可以使用此過載程序來復原個別資料區塊或一系列的資料區塊。

這個程序會採用下列常見參數來處理 RMAN 任務：
+ `p_rman_to_dbms_output`

如需詳細資訊，請參閱[RMAN 程序的常見參數](Appendix.Oracle.CommonDBATasks.CommonParameters.md)。

這個程序會使用下列其他參數。


****  

| 參數名稱 | 資料類型 | 有效值 | 預設 | 必要 | Description | 
| --- | --- | --- | --- | --- | --- | 
|  `p_datafile`  |  `NUMBER`  |  有效的資料檔案 ID 號碼。  |  —  |  是  |  包含損毀區塊的資料檔案。以下列其中一種方式指定資料檔案： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.block-media-recovery.html)  | 
|  `p_block`  |  `NUMBER`  |  有效的整數。  |  —  |  是  |  要復原的個別區塊數量。 下列參數互斥： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.block-media-recovery.html)  | 
|  `p_from_block`  |  `NUMBER`  |  有效的整數。  |  —  |  是  |  要復原之區塊範圍中的第一個區塊號碼。 下列參數互斥： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.block-media-recovery.html)  | 
|  `p_to_block`  |  `NUMBER`  |  有效的整數。  |  —  |  是  |  要復原之區塊範圍中的最後一個區塊號碼。 下列參數互斥： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.block-media-recovery.html)  | 

下列 Amazon RDS for Oracle 資料庫引擎版本皆支援這個程序：
+ Oracle Database 21c (21.0.0)
+ Oracle 資料庫 19c (19.0.0)

下列範例會復原資料檔案 5 中的區塊 100。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.recover_datafile_block(
        p_datafile            => 5, 
        p_block               => 100,
        p_rman_to_dbms_output => TRUE);
END;
/
```

下列範例會復原資料檔案 5 中的區塊 100 到 150。

```
BEGIN
    rdsadmin.rdsadmin_rman_util.recover_datafile_block(
        p_datafile            => 5, 
        p_from_block          => 100,
        p_to_block            => 150,
        p_rman_to_dbms_output => TRUE);
END;
/
```