

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

# RDS for Db2 資料庫的預存程序
<a name="db2-sp-managing-databases"></a>

本主題中所述的內建預存程序會管理 Amazon RDS for Db2 的資料庫。若要執行這些程序，主要使用者必須先連線到 `rdsadmin` 資料庫。

這些預存程序用於各種任務。這不是完整清單。
+ [資料庫的一般任務](db2-managing-databases.md)
+ [使用 EBCDIC 定序建立資料庫](db2-ebcdic.md)
+ [收集資料庫的相關資訊](db2-supported-parameters.md#db2-modifying-parameters-db2-commands)
+ [修改資料庫組態參數](db2-supported-parameters.md#db2-modifying-parameters-db2-commands)
+ [從 Linux 遷移至 Linux](db2-one-time-migration-linux.md)
+ [從 Linux 遷移到 Linux，停機時間接近零](db2-near-zero-downtime-migration.md)

如需語法、參數、用量備註和範例的相關資訊，請參閱下列內建預存程序。

**Topics**
+ [rdsadmin.create\$1database](#db2-sp-create-database)
+ [rdsadmin.deactivate\$1database](#db2-sp-deactivate-database)
+ [rdsadmin.activate\$1database](#db2-sp-activate-database)
+ [rdsadmin.reactivate\$1database](#db2-sp-reactivate-database)
+ [rdsadmin.drop\$1database](#db2-sp-drop-database)
+ [rdsadmin.update\$1db\$1param](#db2-sp-update-db-param)
+ [rdsadmin.set\$1configuration](#db2-sp-set-configuration)
+ [rdsadmin.show\$1configuration](#db2-sp-show-configuration)
+ [rdsadmin.backup\$1database](#db2-sp-backup-database)
+ [rdsadmin.restore\$1database](#db2-sp-restore-database)
+ [rdsadmin.rollforward\$1database](#db2-sp-rollforward-database)
+ [rdsadmin.rollforward\$1status](#db2-sp-rollforward-status)
+ [rdsadmin.complete\$1rollforward](#db2-sp-complete-rollforward)
+ [rdsadmin.db2pd\$1command](#db2-sp-db2pd-command)
+ [rdsadmin.force\$1application](#db2-sp-force-application)
+ [rdsadmin.set\$1archive\$1log\$1retention](#db2-sp-set-archive-log-retention)
+ [rdsadmin.show\$1archive\$1log\$1retention](#db2-sp-show-archive-log-retention)
+ [rdsadmin.list\$1archive\$1log\$1information](#db2-sp-list-archive-log-information)
+ [rdsadmin.enable\$1archive\$1log\$1copy](#db2-sp-enable_archive_log_copy)
+ [rdsadmin.disable\$1archive\$1log\$1copy](#db2-sp-disable_archive_log_copy)
+ [rdsadmin.fgac\$1command](#db2-sp-fgac-command)
+ [rdsadmin.db2support\$1command](#db2-sp-db2support-command)

## rdsadmin.create\$1database
<a name="db2-sp-create-database"></a>

建立資料庫。

### 語法
<a name="db2-sp-create-database-syntax"></a>

```
db2 "call rdsadmin.create_database(
    'database_name',
    'database_page_size',
    'database_code_set',
    'database_territory',
    'database_collation',
    'database_autoconfigure_str',
    'database_non-restrictive')"
```

### Parameters
<a name="db2-sp-create-database-parameters"></a>

**注意**  
此預存程序不會驗證必要參數的組合。當您呼叫 [rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status) 時，使用者定義的函數可能會傳回錯誤，因為 `database_codeset`、`database_territory` 和 `database_collation` 的組合無效。如需詳細資訊，請參閱 IBM Db2 文件中的[選擇資料庫的程式碼頁面、區域和定序](https://www.ibm.com/docs/en/db2/11.5?topic=support-choosing-code-page-territory-collation-your-database)。

以下是必要參數：

*database\$1name*  
要建立之資料庫的名稱。資料類型為 `varchar`。

下列是選用參數：

*database\$1page\$1size*  
資料庫的預設頁面大小。有效值：`4096`、`8192`、`16384`、`32768`。資料類型為 `integer`。預設值為 `8192`。  
Amazon RDS 支援 4 KiB、8 KiB 和 16 KiB 頁面的寫入原子性。相反地，32 KiB 頁面會有*扭曲寫入*的風險，或寫入磁碟的部分資料。如果您使用 32 KiB 頁面，則建議您啟用 point-in-time 復原和自動備份。否則，您會面臨無法從未完成頁面復原的風險。如需詳細資訊，請參閱[備份簡介](USER_WorkingWithAutomatedBackups.md)及[將 Amazon RDS 的資料庫執行個體還原至指定時間](USER_PIT.md)。

*database\$1code\$1set*  
資料庫的程式碼集。資料類型為 `varchar`。預設值為 `UTF-8`。

*database\$1territory*  
資料庫的雙字母國家/地區代碼。資料類型為 `varchar`。預設值為 `US`。

*database\$1collation*  
定序序列會決定存放在資料庫中字元字串的排序和比較方式。資料類型為 `varchar`。  
有效值：  
+ `COMPATIBILITY` – IBM Db2 第 2 版定序序列。
+ `EBCDIC_819_037` – ISO Latin 程式碼頁面，定序；CCSID 037 (EBCDIC US English)。
+ `EBCDIC_819_500` – ISO Latin 程式碼頁面，定序；CCSID 500 (EBCDIC International)。
+ `EBCDIC_850_037` – ASCII Latin 程式碼頁面，定序；CCSID 037 (EBCDIC US English)。
+ `EBCDIC_850_500` – ASCII Latin 程式碼頁面，定序；CCSID 500 (EBCDIC International)。
+ `EBCDIC_932_5026` – ASCII Japanese 程式碼頁面，定序；CCSID 5026 (EBCDIC US English)。
+ `EBCDIC_932_5035` – ASCII Japanese 程式碼頁面，定序；CCSID 5035 (EBCDIC International)。
+ `EBCDIC_1252_037` – Windows Latin 程式碼頁面，定序；CCSID 037 (EBCDIC US English)。
+ `EBCDIC_1252_500` – Windows Latin 程式碼頁面，定序；CCSID 500 (EBCDIC International).
+ `IDENTITY` – 預設定序。字串會以位元組對位元組進行比較。
+ `IDENTITY_16BIT` – UTF-16 的相容性編碼結構描述：8 位元 (CESU-8) 定序序列。如需詳細資訊，請參閱 Unicode Consortium 網站上的 [Unicode 技術報告 \$126](https://www.unicode.org/reports/tr26/tr26-4.html)。
+ `NLSCHAR` – 僅適用於 Thai 程式碼頁面 (CP874)。
+ `SYSTEM` – 如果您使用 `SYSTEM`，則資料庫會自動使用 `database_codeset`和 `database_territory` 的定序序列。
預設值為 `IDENTITY`。  
此外，RDS for Db2 支援下列定序群組：`language-aware-collation` 和 `locale-sensitive-collation`。如需詳細資訊，請參閱 IBM Db2 文件中的[選擇 Unicode 資料庫的定序](https://www.ibm.com/docs/en/db2/11.5?topic=collation-choosing-unicode-database)。

*database\$1autoconfigure\$1str*  
`AUTOCONFIGURE` 命令語法，例如 `'AUTOCONFIGURE APPLY DB'`。資料類型為 `varchar`。預設為空字串或 null。  
如需詳細資訊，請參閱 IBM Db2 文件中的 [AUTOCONFIGURE 命令](https://www.ibm.com/docs/en/db2/11.5?topic=cc-autoconfigure)。

*database\$1non-restrictive*  
在資料庫中授予預設授權單位和權限。資料類型為 `varchar`。預設值為 `N`。  
有效值：  
+ `N` – 建立的資料庫具有限制性，不會授予授權單位或權限。
+ `Y` – 建立的資料庫是非限制性的，並將一組許可授予特殊群組 `PUBLIC`。如需詳細資訊，請參閱 IBM Db2 文件中[建立資料庫時授予的預設權限](https://www.ibm.com/docs/en/db2/11.5.x?topic=ownership-default-privileges-granted-creating-database)。

### 使用須知
<a name="db2-sp-create-database-usage-notes"></a>

如果您打算修改 `db2_compatibility_vector` 參數，在建立資料庫之前，請修改參數。如需詳細資訊，請參閱[設定 db2\$1compatibility\$1vector 參數](db2-known-issues-limitations.md#db2-known-issues-limitations-db2-compatibility-vector)。

特別考量：
+ 傳送至 Db2 執行個體的 `CREATE DATABASE` 命令使用 `RESTRICTIVE` 選項。
+ RDS for Db2 僅使用 `AUTOMATIC STORAGE` 資料表空間。
+ RDS for Db2 使用 `NUMSEGS` 和 `DFT_EXTENT_SZ` 的預設值。
+ RDS for Db2 使用儲存加密，且不支援資料庫加密。

如需這些考量的詳細資訊，請參閱 IBM Db2 文件中的 [CREATE DATABASE 命令](https://www.ibm.com/docs/en/db2/11.5?topic=commands-create-database#:~:text=in%20the%20database.-,RESTRICTIVE,-If%20the%20RESTRICTIVE)。

呼叫 `rdsadmin.create_database` 之前，您必須連線到 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您的 RDS for Db2 資料庫執行個體資訊：

```
db2 connect to rdsadmin user master_username using master_password
```

如需檢查建立資料庫狀態的相關資訊，請參閱 [rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)。

如需呼叫 `rdsadmin.create_database` 時所傳回的錯誤訊息，請參閱 [預存程序錯誤](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)。

### 範例
<a name="db2-sp-create-database-examples"></a>

下列範例會建立名為 `TESTJP` 的資料庫，其中包含日本的 *database\$1code\$1set*、*database\$1territory* 和 *database\$1collation* 參數的正確組合：

```
db2 "call rdsadmin.create_database('TESTJP', 4096, 'IBM-437', 'JP', 'SYSTEM')"
```

## rdsadmin.deactivate\$1database
<a name="db2-sp-deactivate-database"></a>

停用資料庫。

### 語法
<a name="db2-sp-deactivate-database-syntax"></a>

```
db2 "call rdsadmin.deactivate_database(
    ?,
    'database_name')"
```

### Parameters
<a name="db2-sp-deactivate-database-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*database\$1name*  
要停用的資料庫之名稱。資料類型為 `varchar`。

### 使用須知
<a name="db2-sp-deactivate-database-usage-notes"></a>

您可以停用資料庫以節省記憶體資源，或進行其他資料庫組態變更。若要讓已停用的資料庫恢復連線，請呼叫 [rdsadmin.activate\$1database](#db2-sp-activate-database) 預存程序。

您無法在複寫期間透過呼叫 `rdsadmin.deactivate_database` 預存程序來停用來源資料庫執行個體上的資料庫。

如需檢查停用資料庫狀態的相關資訊，請參閱 [rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)。

如需呼叫 `rdsadmin.deactivate_database` 時所傳回的錯誤訊息，請參閱 [預存程序錯誤](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)。

### 範例
<a name="db2-sp-deactivate-database-examples"></a>

下列範例會停用名為 `TESTDB` 的資料庫。

```
db2 "call rdsadmin.deactivate_database(?, 'TESTDB')"
```

## rdsadmin.activate\$1database
<a name="db2-sp-activate-database"></a>

啟用資料庫。

如需有關 [rdsadmin.reactivate\$1database](#db2-sp-reactivate-database) 和 `rdsadmin.activate_database` 之間的差異的資訊，請參閱 [使用須知](#db2-sp-activate-database-usage-notes)。

### 語法
<a name="db2-sp-activate-database-syntax"></a>

```
db2 "call rdsadmin.activate_database(
    ?,
    'database_name')"
```

### Parameters
<a name="db2-sp-activate-database-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*database\$1name*  
要啟用的資料庫之名稱。資料類型為 `varchar`。

### 使用須知
<a name="db2-sp-activate-database-usage-notes"></a>

所有資料庫預設都會在建立時啟用。如果您[停用]()獨立資料庫執行個體上的資料庫來節省記憶體資源或進行其他資料庫組態變更，請呼叫 `rdsadmin.activate_database` 預存程序，以再次啟用資料庫。

此預存程序只會啟用位於獨立資料庫執行個體上的資料庫，且該資料庫是透過呼叫 [rdsadmin.deactivate\$1database](#db2-sp-deactivate-database) 預存程序來停用。若要在複本來源資料庫執行個體上啟用資料庫，您必須呼叫 [rdsadmin.reactivate\$1database](#db2-sp-reactivate-database) 預存程序。

如需檢查啟用資料庫狀態的相關資訊，請參閱 [rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)。

如需呼叫 `rdsadmin.activate_database` 時所傳回的錯誤訊息，請參閱 [預存程序錯誤](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)。

### 範例
<a name="db2-sp-activate-database-examples"></a>

下列範例會啟用名為 `TESTDB` 的資料庫。

```
db2 "call rdsadmin.activate_database(?, 'TESTDB')"
```

## rdsadmin.reactivate\$1database
<a name="db2-sp-reactivate-database"></a>

重新啟用資料庫。

如需 [rdsadmin.activate\$1database](#db2-sp-activate-database) 與 `rdsadmin.reactivate_database` 之間差異的相關資訊，請參閱 [使用須知](#db2-sp-reactivate-database-usage-notes)。

### 語法
<a name="db2-sp-reactivate-database-syntax"></a>

```
db2 "call rdsadmin.reactivate_database(
    ?,
    'database_name')"
```

### Parameters
<a name="db2-sp-reactivate-database-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*database\$1name*  
要重新啟用的資料庫之名稱。資料類型為 `varchar`。

### 使用須知
<a name="db2-sp-reactivate-database-usage-notes"></a>

當您呼叫 `rdsadmin.reactivate_database` 預存程序時，預存程序會先呼叫 [rdsadmin.deactivate\$1database](#db2-sp-deactivate-database) 預存程序來停用資料庫，然後再呼叫 [rdsadmin.activate\$1database](#db2-sp-activate-database) 預存程序來啟用資料庫。

變更資料庫組態之後，您可能需要在 RDS for Db2 資料庫執行個體上重新啟用資料庫。若要判斷是否需要重新啟用資料庫，請連線至資料庫並執行 `db2 get db cfg show detail`。

針對獨立資料庫執行個體上的資料庫，您可以使用 `rdsadmin.reactivate_database` 儲存程序來重新啟用資料庫。或者，如果您已呼叫 [rdsadmin.deactivate\$1database](#db2-sp-deactivate-database) 預存程序，則可以改為呼叫 [rdsadmin.activate\$1database](#db2-sp-activate-database) 預存程序。

針對複本來源資料庫執行個體上的資料庫，您必須使用 `rdsadmin.reactivate_database` 儲存程序來重新啟用資料庫。

如需檢查重新啟用資料庫狀態的相關資訊，請參閱 [rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)。

如需呼叫 `rdsadmin.reactivate_database` 時所傳回的錯誤訊息，請參閱 [預存程序錯誤](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)。

### 範例
<a name="db2-sp-reactivate-database-examples"></a>

下列範例會重新啟用名為 `TESTDB` 的資料庫。

```
db2 "call rdsadmin.reactivate_database(?, 'TESTDB')"
```

## rdsadmin.drop\$1database
<a name="db2-sp-drop-database"></a>

捨棄資料庫。

### 語法
<a name="db2-sp-drop-database-syntax"></a>

```
db2 "call rdsadmin.drop_database('database_name')"
```

### Parameters
<a name="db2-sp-drop-database-parameters"></a>

以下是必要參數：

*database\$1name*  
要捨棄的資料庫之名稱。資料類型為 `varchar`。

### 使用須知
<a name="db2-sp-drop-database-usage-notes"></a>

只有在符合下列條件時，您才能呼叫 `rdsadmin.drop_database` 來捨棄資料庫：
+ 當您使用 Amazon RDS 主控台或 AWS CLI來建立 RDS for Db2 資料庫執行個體時，並未指定資料庫的名稱。如需詳細資訊，請參閱[建立資料庫執行個體](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating)。
+ 您已透過呼叫 [rdsadmin.create\$1database](#db2-sp-create-database) 預存程序來建立資料庫。
+ 您已透過呼叫 [rdsadmin.restore\$1database](#db2-sp-restore-database) 預存程序，從離線或備份映像還原資料庫。

呼叫 `rdsadmin.drop_database` 之前，您必須連線到 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您的 RDS for Db2 資料庫執行個體資訊：

```
db2 connect to rdsadmin user master_username using master_password
```

如需檢查捨棄資料庫狀態的相關資訊，請參閱 [rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)。

如需呼叫 `rdsadmin.drop_database` 時所傳回的錯誤訊息，請參閱 [預存程序錯誤](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)。

### 範例
<a name="db2-sp-drop-database-examples"></a>

下列範例會捨棄名為 `TESTDB` 的資料庫：

```
db2 "call rdsadmin.drop_database('TESTDB')"
```

## rdsadmin.update\$1db\$1param
<a name="db2-sp-update-db-param"></a>

更新資料庫參數。

### 語法
<a name="db2-sp-update-db-param-syntax"></a>

```
db2 "call rdsadmin.update_db_param(
    'database_name', 
    'parameter_to_modify', 
    'changed_value',
    'restart_database')"
```

### Parameters
<a name="db2-sp-update-db-param-parameters"></a>

下列是必要參數：

*database\$1name*  
要執行任務之資料庫的名稱。資料類型為 `varchar`。

*parameter\$1to\$1modify*  
要修改之參數的名稱。資料類型為 `varchar`。如需詳細資訊，請參閱[Amazon RDS for Db2 參數](db2-supported-parameters.md)。

*changed\$1value*  
要變更參數值的目標值。資料類型為 `varchar`。

以下為選用參數：

*restart\$1database*  
指定 RDS 在需要重新啟動時是否會重新啟動資料庫。資料類型為 `varchar`。若要修改 `logprimary`和 `logfilsiz`，請將此參數設為 `'YES'`。

### 使用須知
<a name="db2-sp-update-db-param-usage-notes"></a>

如需檢查更新資料庫參數的相關資訊，請參閱 [rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)。

如需呼叫 `rdsadmin.update_db_param` 時所傳回的錯誤訊息，請參閱 [預存程序錯誤](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)。

### 範例
<a name="db2-sp-update-db-param-examples"></a>

**範例 1：更新參數 **

下列範例會將名為 `TESTDB` 之資料庫的 `archretrydelay` 參數更新為 `100`：

```
db2 "call rdsadmin.update_db_param(
    'TESTDB', 
    'archretrydelay', 
    '100')"
```

**範例 2：延遲物件的驗證**

下列範例會延遲驗證名為 `TESTDB` 的資料庫中所建立的物件，以避免相依性檢查：

```
db2 "call rdsadmin.update_db_param(
    'TESTDB', 
    'auto_reval', 
    'deferred_force')"
```

## rdsadmin.set\$1configuration
<a name="db2-sp-set-configuration"></a>

設定資料庫的特定設定。

### 語法
<a name="db2-sp-set-configuration-syntax"></a>

```
db2 "call rdsadmin.set_configuration(
    'name',  
    'value')"
```

### Parameters
<a name="db2-sp-set-configuration-parameters"></a>

下列是必要參數：

*name*  
組態設定的名稱。資料類型為 `varchar`。

*value*  
組態設定的值。資料類型為 `varchar`。

### 使用須知
<a name="db2-sp-set-configuration-usage-notes"></a>

下表顯示您可以使用 `rdsadmin.set_configuration` 控制的組態設定。


| 名稱 | 描述 | 
| --- | --- | 
|  `RESTORE_DATABASE_NUM_BUFFERS`  |  在還原作業期間所要建立緩衝區的數目。此值必須小於資料庫執行個體類別的總記憶體大小。如果未設定此設定，則 Db2 會決定在還原作業期間要使用的值。如需詳細資訊，請參閱 IBM Db2 文件中的 [RESTORE DATABASE 命令](https://www.ibm.com/docs/en/db2/11.5?topic=commands-restore-database)。  | 
|  `RESTORE_DATABASE_PARALLELISM`  |  在還原作業期間所要建立緩衝區操縱器的數目。此值必須小於資料庫執行個體 vCPU 數目的兩倍。如果未設定此設定，則 Db2 會決定在還原作業期間要使用的值。如需詳細資訊，請參閱 IBM Db2 文件中的 [RESTORE DATABASE 命令](https://www.ibm.com/docs/en/db2/11.5?topic=commands-restore-database)。  | 
|  `RESTORE_DATABASE_NUM_MULTI_PATHS`  |  從 Amazon S3 操作還原期間要使用的路徑 （或 I/O 串流） 數目。若要使用此組態設定，您必須有多個備份檔案。此值可以改善使用大量資料還原資料庫時的效能，因為它會平行還原多個資料庫備份檔案。我們建議您設定此值以符合資料庫備份檔案的數目。如需詳細資訊，請參閱 IBM Db2 文件中的 [BACKUP DATABASE 命令](https://www.ibm.com/docs/en/db2/11.5?topic=commands-backup-database)。  | 
|  `USE_STREAMING_RESTORE`  |  指定是否要在還原期間直接串流備份資料，而不是先將整個備份下載到您的 RDS for Db2 資料庫執行個體，然後解壓縮。`USE_STREAMING_RESTORE` 將 設定為 可`TRUE`大幅降低儲存需求，並可改善還原效能。此設定需要 IBM Db2 引擎版本 11.5.9.0.sb00063198.r1 或更高版本，並透過資料庫的彈性網路界面 (ENI) 連接 Amazon S3。如需詳細資訊，請參閱 IBM Db2 文件中的[遠端儲存](https://www.ibm.com/docs/en/db2/11.5.x?topic=databases-remote-storage)。  | 

### 範例
<a name="db2-sp-set-configuration-examples"></a>

**範例 1：指定要建立的緩衝區數目**

下列範例會將 `RESTORE_DATABASE_NUM_BUFFERS` 組態設定為 `150`。

```
db2 "call rdsadmin.set_configuration(
    'RESTORE_DATABASE_NUM_BUFFERS', 
    '150')"
```

**範例 2：指定要建立的緩衝區操縱器數量**

下列範例會將 `RESTORE_DATABASE_PARALLELISM` 組態設定為 `8`。

```
db2 "call rdsadmin.set_configuration(
    'RESTORE_DATABASE_PARALLELISM', 
    '8')"
```

**範例 3：指定還原期間要使用的路徑或 I/O 串流數目**

下列範例會將 `RESTORE_DATABASE_NUM_MULTI_PATHS` 組態設定為 `5`。

```
db2 "call rdsadmin.set_configuration(
    'RESTORE_DATABASE_NUM_MULTI_PATHS', 
    '5')"
```

**範例 4：將還原設定為串流備份資料**

下列範例會將 `USE_STREAMING_RESTORE` 組態設定為 `TRUE`。

```
db2 "call rdsadmin.set_configuration(
    'USE_STREAMING_RESTORE', 
    'TRUE')"
```

## rdsadmin.show\$1configuration
<a name="db2-sp-show-configuration"></a>

傳回您可以使用預存程序 `rdsadmin.set_configuration` 設定的目前設定。

### 語法
<a name="db2-sp-show-configuration-syntax"></a>

```
db2 "call rdsadmin.show_configuration(
    'name')"
```

### Parameters
<a name="db2-sp-show-configuration-parameters"></a>

以下為選用參數：

*name*  
要傳回相關資訊的組態設定之名稱。資料類型為 `varchar`。  
下列組態名稱為有效：  
+ `RESTORE_DATABASE_NUM_BUFFERS` – 在還原操作期間要建立的緩衝區數目。
+ `RESTORE_DATABASE_PARALLELISM` – 在還原操作期間要建立的緩衝區操縱器數目。
+ `RESTORE_DATABASE_NUM_MULTI_PATHS` – 從 Amazon S3 操作還原期間要使用的路徑 （或 I/O 串流） 數目。
+ `USE_STREAMING_RESTORE` – 指定是否要在還原期間直接串流備份資料，而不是先將整個備份資料下載到您的 RDS for Db2 資料庫執行個體，然後解壓縮。

### 使用須知
<a name="db2-sp-show-configuration-usage-notes"></a>

如果您未指定組態設定的名稱，則 `rdsadmin.show_configuration` 會傳回您可以使用預存程序 `rdsadmin.set_configuration` 設定之所有組態設定的資訊。

### 範例
<a name="db2-sp-show-configuration-examples"></a>

下列範例會傳回目前 `RESTORE_DATABASE_PARALLELISM` 組態的相關資訊。

```
db2 "call rdsadmin.show_configuration(
    'RESTORE_DATABASE_PARALLELISM')"
```

## rdsadmin.backup\$1database
<a name="db2-sp-backup-database"></a>

將資料庫從 RDS for Db2 資料庫執行個體備份到 Amazon S3 儲存貯體。

### 語法
<a name="db2-sp-backup-database-syntax"></a>

```
db2 "call rdsadmin.backup_database(
    ?,
    'database_name', 
    's3_bucket_name', 
    's3_prefix', 
    'backup_type',
    'compression_option',
    'util_impact_priority', 
    'num_files',
    'parallelism',
    'num_buffers')"
```

### Parameters
<a name="db2-sp-backup-database-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*database\$1name*  
RDS for Db2 資料庫執行個體上要備份的目標資料庫名稱。資料類型為 `varchar`。  
資料庫必須存在於資料庫執行個體中。您無法備份`rdsadmin`資料庫。

*s3\$1bucket\$1name*  
您希望備份所在的 Amazon S3 儲存貯體名稱。資料類型為 `varchar`。  
在呼叫 之前，S3 儲存貯體必須存在`rdsadmin.backup_database`，與您要備份的 RDS for Db2 資料庫執行個體中的目標資料庫位於相同 AWS 區域 位置，並且可以透過連接至資料庫執行個體的 IAM 角色存取。

*s3\$1prefix*  
Amazon S3 路徑的字首，其中 RDS for Db2 會上傳備份檔案。資料類型為 `varchar`。  
字首限制為 1024 個字元。它不得包含正斜線或尾斜線 (/)。由於IBM 串流至 Amazon S3 的限制，我們建議字首包含子目錄。  
為了更好地管理檔案，RDS for Db2 會在 *s3\$1prefix* 之後建立額外的目錄。RDS for Db2 將所有備份檔案上傳至 *s3\$1prefix/dbi\$1resource\$1id/db\$1name*。如果您將 *num\$1files* 設定為高於 `1`，*db\$1name* 目錄將包含多個備份檔案。  
以下是備份檔案的 Amazon S3 位置範例。在此範例中， `backups/daily`是為 *s3\$1prefix* 參數設定的值。  

```
backups/daily/db-5N7FXOY4GDP7RG2NSH2ZTAI2W4/SAMPLEDB
```

*backup\$1type*  
決定資料庫是否在備份期間保持可用的備份類型。資料類型為 `varchar`。  
有效值：  
+ `OFFLINE` – 資料庫在備份期間無法使用。此類型較快，但會導致停機時間。
+ `ONLINE` – 在備份期間，資料庫仍然可用。根據預設，`ONLINE` 會設定為 `INCLUDE LOGS`。

下列是選用參數：

*compression\$1option*  
使用的壓縮演算法類型，會影響備份時間、CPU 用量和儲存成本。資料類型為 `varchar`。預設值為 `NONE`。  
有效值：  
+ `NONE` – 最大的檔案大小、最低的 CPU 使用量，以及最便宜的儲存成本。
+ `STANDARD` – 標準 Db2 壓縮。使用 `libdb2compr.so`。
+ `ZLIB` – 增強型 Db2 壓縮。使用 `libdb2zcompr.so`，但 CPU 密集且最昂貴的儲存成本。

*util\$1impact\$1priority*  
控制備份對系統資源影響的設定。資料類型為 `integer`。有效值： `1`–`100` （從低到高）。預設值為 `50`。  
較低的值可減少備份對系統資源的影響，但可能會增加備份資料庫所需的時間。較高的值可能會更快地完成資料庫的備份，但可能會影響其他操作。實際影響取決於整體系統使用率和`util_impact_lim`設定。您可以在參數群組中檢視和修改`util_impact_lim`設定。如需詳細資訊，請參閱[Amazon RDS for Db2 參數](db2-supported-parameters.md)。

*num\$1files*  
平行上傳至 Amazon S3 的串流數目。資料類型為 `integer`。有效值：`1`–`256`。  
建議您只在以 Amazon RDS 自動計算的預設值觀察備份效能之後，才設定此參數。較高的值可以改善大型備份的效能，尤其是高頻寬連線，但在特定時間點，較高的值會降低效能。此外，請務必考量可用的系統資源和網路容量。

*平行處理*  
備份公用程式可以平行讀取的資料表空間數目。資料類型為 `integer`。有效值：`1`–`256`。  
建議您在預設情況下觀察 Db2 引擎自動計算為最佳值的備份效能後，才設定此參數。如果您設定此參數，Amazon RDS 會根據可用的處理器進行驗證，如果處理能力不足，則不會執行備份請求。

*num\$1buffers*  
要使用的緩衝區數量。資料類型為 `integer`。有效值：`1`–`268435456`。  
建議您只在觀察預設 Amazon RDS 根據記憶體自動計算的備份效能之後，才設定此參數。如果您設定此參數，Amazon RDS 會根據可用的記憶體進行驗證，如果可用的記憶體不足，則不會執行備份請求。如果您要備份到多個位置 (`num_files` 設定為超過 `1`)，則更多緩衝區可能會改善效能。如果您未`compression_option`將 設定為 `NONE`，則可以透過增加 `num_buffers`和 來改善效能`parallelism`。

### 使用須知
<a name="db2-sp-backup-database-usage-notes"></a>

此預存程序會建立非同步備份任務，使用 Amazon S3 整合將資料庫備份直接串流至 Amazon S3 儲存貯體。您可以從本機伺服器或從 RDS for Db2 資料庫執行個體進行備份，將其串流至 Amazon S3，然後視需要還原。如需將資料庫還原至 RDS for Db2 資料庫執行個體的詳細資訊，請參閱 [rdsadmin.restore\$1database](#db2-sp-restore-database)。

呼叫預存程序之前，請檢閱下列考量事項：
+ 您一次只能備份一個資料庫。
+ 您無法在資料庫執行個體上執行備份和還原。
+ 不支援使用 AWS KMS (SSE-KMS) 的 Amazon S3 伺服器端加密。即使 S3 儲存貯體設定為 SSE-KMS，上傳至 S3 儲存貯體的檔案也不會使用 SSE-KMS 加密。
+ 若要將備份檔案串流至 Amazon S3，您必須已設定整合。如需詳細資訊，請參閱[整合 Amazon RDS for Db2 資料庫執行個體和 Amazon S3](db2-s3-integration.md)。
+ 若要讓 RDS for Db2 資料庫執行個體能夠與 Amazon S3 互動，您必須擁有 VPC 和 Amazon S3 閘道端點，私有子網路才能使用。如需詳細資訊，請參閱[步驟 1：這會為 Amazon S3 建立 VPC 閘道端點](db2-troubleshooting.md#db2-creating-endpoint)及[步驟 2：確認 Amazon S3 的 VPC 閘道端點存在](db2-troubleshooting.md#db2-confirming-endpoint)。

呼叫 `rdsadmin.backup_database` 之前，您必須連線到 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您的 RDS for Db2 資料庫執行個體資訊：

```
db2 connect to rdsadmin user master_username using master_password
```

備份資料庫之後，請務必終止連線。

```
terminate
```

如需有關檢查備份資料庫狀態的資訊，請參閱 [rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)。

如需呼叫 `rdsadmin.backup_database` 時所傳回的錯誤訊息，請參閱 [預存程序錯誤](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)。

### 範例
<a name="db2-sp-backup-database-examples"></a>

所有範例都會將名為 的資料庫備份`MYDB`至名為 的 Amazon S3 儲存貯體，`amzn-s3-demo-bucket`並將 *s3\$1prefix* 設定為 `backups/daily`。

**範例 \$11：指定資料庫離線，且無法使用中位數使用率和單一上傳串流**

在下列範例中，資料庫離線，速度更快，但表示資料庫在備份期間無法使用。此範例不會執行檔案壓縮、對系統資源造成中位數影響，並使用單一上傳串流至 Amazon S3。

```
db2 call "rdsadmin.backup_database(
    ?, 
    'MYDB',
    'amzn-s3-demo-bucket', 
    'backups/daily',
    'OFFLINE',
    'NONE', 
    50, 
    1)"
```

**範例 2：指定線上資料庫，並提供增強壓縮、中位數使用率和少量平行上傳串流**

在下列範例中， 中的資料庫會上線，並在備份期間提供。此範例會執行增強型壓縮，這會導致較小的檔案大小，但 CPU 密集型。它對系統資源的影響略高於中位數，並使用五個上傳串流到 Amazon S3。

```
db2 call "rdsadmin.backup_database(
    ?, 
    'MYDB',
    'amzn-s3-demo-bucket', 
    'backups/daily',
    'ONLINE',
    'ZLIB', 
    60, 
    5)"
```

**範例 \$13：指定離線資料庫，且無法使用預設值和系統計算**

在下列範例中，資料庫離線，速度更快，但表示資料庫在備份期間無法使用。此範例使用檔案的預設壓縮和對系統資源的影響。它還允許 RDS for Db2 計算 Amazon S3 平行上傳串流的數量、要平行讀取的資料表空間，以及要使用的緩衝區。

```
db2 "call rdsadmin.backup_database(
    ?, 
    'MYDB', 
    'amzn-s3-demo-bucket',
    'backups/daily', 
    'OFFLINE')"
```

**範例 4：在沒有壓縮、高使用率和自訂計算的情況下，指定離線和無法使用的資料庫**

在下列範例中，資料庫離線，速度更快，但表示資料庫在備份期間無法使用。此範例不會執行檔案壓縮，對系統資源有高度影響，並使用 20 個上傳串流至 Amazon S3。它會將資料表空間數目上限設定為平行讀取，如果處理能力不足，可能會導致備份請求失敗。它也會設定要使用的緩衝區數目上限，如果記憶體不足，可能會導致備份請求失敗。

```
db2 "call rdsadmin.backup_database(
    ?, 
    'MYDB', 
    'amzn-s3-demo-bucket', 
    'backups/daily', 
    'OFFLINE', 
    'NONE', 
    90, 
    20, 
    256, 
    268435456)"
```

## rdsadmin.restore\$1database
<a name="db2-sp-restore-database"></a>

將資料庫從 Amazon S3 儲存貯體還原至 RDS for Db2 資料庫執行個體。

### 語法
<a name="db2-sp-restore-database-syntax"></a>

```
db2 "call rdsadmin.restore_database(
    ?,
    'database_name', 
    's3_bucket_name', 
    's3_prefix', 
    restore_timestamp, 
    'backup_type')"
```

### Parameters
<a name="db2-sp-restore-database-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*database\$1name*  
要在 RDS for Db2 中還原的目標資料庫之名稱。資料類型為 `varchar`。  
例如，如果來源資料庫名稱為 `TESTDB`，而您將 *database\$1name* 設定為 `NEWDB`，則 Amazon RDS 會將 `NEWDB` 還原為來源資料庫。

*s3\$1bucket\$1name*  
備份所在 Amazon S3 儲存貯體的名稱。資料類型為 `varchar`。

*s3\$1prefix*  
在下載期間用於檔案比對的字首。資料類型為 `varchar`。  
如果此參數為空，則會處理 Amazon S3 儲存貯體中的所有檔案。下列是範例字首：  

```
backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101
```

*restore\$1timestamp*  
資料庫備份映像的時間戳記。資料類型為 `varchar`。  
時間戳記包含在備份檔案名稱中。例如，`20230615010101` 是檔案名稱 `SAMPLE.0.rdsdb.DBPART000.20230615010101.001` 的時間戳記。

*backup\$1type*  
備份的類型。資料類型為 `varchar`。有效值：`OFFLINE`、`ONLINE`。  
將 `ONLINE` 用於接近零的停機時間遷移。如需更多詳細資訊，請參閱 [Amazon RDS for Db2 接近零的停機時間從 Linux 遷移到 Linux](db2-near-zero-downtime-migration.md)。

### 使用須知
<a name="db2-sp-restore-database-usage-notes"></a>

您可以使用此預存程序將 Db2 資料庫遷移至 RDS for Db2 資料庫執行個體。如需詳細資訊，請參閱[使用 AWS 服務將資料從 Db2 遷移至 Amazon RDS for Db2](db2-migration-approaches.md)。您也可以使用此預存程序，以使用相同還原映像的不同資料庫名稱來建立相同資料庫的多個複本。

呼叫預存程序之前，請檢閱下列考量事項：
+ 還原資料庫之前，您必須為大於磁碟上原始 Db2 資料庫的 RDS for Db2 資料庫執行個體佈建儲存空間。 Db2 如果您啟用 `USE_STREAMING_RESTORE`，則當您還原備份時，Amazon RDS 會將備份檔案直接從 S3 儲存貯體串流至 RDS for Db2 資料庫執行個體。如果您未啟用 `USE_STREAMING_RESTORE`，則必須為 RDS for Db2 資料庫執行個體佈建儲存空間，該儲存空間等於或大於備份大小加磁碟上原始 Db2 資料庫的總和。如需詳細資訊，請參閱。
+ 當您還原備份時，Amazon RDS 會在 RDS for Db2 資料庫執行個體上擷取備份檔案。每個備份檔案都必須為 5 TB 或更小。如果備份檔案超過 5 TB，您必須將備份檔案分割為較小的檔案。
+ 若要使用 `rdsadmin.restore_database` 預存程序還原所有檔案，請勿包含檔案名稱中時間戳記後面的檔案編號尾碼。例如，*s3\$1prefix*`backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101` 會還原下列檔案：

  ```
  SAMPLE.0.rdsdb.DBPART000.20230615010101.001
  SAMPLE.0.rdsdb.DBPART000.20230615010101.002
  SAMPLE.0.rdsdb.DBPART000.20230615010101.003
  SAMPLE.0.rdsdb.DBPART000.20230615010101.004
  SAMPLE.0.rdsdb.DBPART000.20230615010101.005
  ```
+ RDS for Db2 不支援非自動儲存。如需詳細資訊，請參閱[Tablespaces not restored](db2-troubleshooting.md#restore-database-sp-tablespaces-not-restored)。
+ RDS for Db2 不支援非連接常式。如需詳細資訊，請參閱[Non-fenced routines not allowed](db2-troubleshooting.md#restore-database-sp-non-fenced-routines)。
+ 若要改善資料庫還原操作的效能，您可以設定緩衝區數目、緩衝區操縱器，以及 RDS 要使用的多個備份路徑數目。若要最佳化儲存體用量並可能改善效能，您也可以直接從 Amazon S3 串流備份。若要檢查目前的組態，請使用 [rdsadmin.show\$1configuration](#db2-sp-show-configuration)。若要變更組態，請使用 [rdsadmin.set\$1configuration](#db2-sp-set-configuration)。

若要讓資料庫上線，並在還原資料庫後套用其他交易日誌，請參閱 [rdsadmin.rollforward\$1database](#db2-sp-rollforward-database)。

如需檢查資料庫還原狀態的相關資訊，請參閱 [rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)。

如需呼叫 `rdsadmin.restore_database` 時所傳回的錯誤訊息，請參閱 [預存程序錯誤](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)。

### 範例
<a name="db2-sp-restore-database-examples"></a>

下列範例使用具有 *s3\$1prefix* `backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101` 的單一檔案或多個檔案來還原離線備份：

```
db2 "call rdsadmin.restore_database(
    ?,
    'SAMPLE',
    'amzn-s3-demo-bucket',
    'backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101',
    20230615010101,
    'OFFLINE')"
```

## rdsadmin.rollforward\$1database
<a name="db2-sp-rollforward-database"></a>

讓資料庫上線，並在透過呼叫 [rdsadmin.restore\$1database](#db2-sp-restore-database) 還原資料庫之後套用其他交易日誌。

### 語法
<a name="db2-sp-rollforward-database-syntax"></a>

```
db2 "call rdsadmin.rollforward_database(
    ?,
    'database_name',
    's3_bucket_name', 
    s3_prefix, 
    'rollforward_to_option', 
    'complete_rollforward')"
```

### Parameters
<a name="db2-sp-rollforward-database-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*database\$1name*  
要在其中執行作業的資料庫之名稱。資料類型為 `varchar`。

*s3\$1bucket\$1name*  
備份所在 Amazon S3 儲存貯體的名稱。資料類型為 `varchar`。

*s3\$1prefix*  
在下載期間用於檔案比對的字首。資料類型為 `varchar`。  
如果此參數為空，則會下載 S3 儲存貯體中的所有檔案。下列範例為範例字首：  

```
backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101
```

下列是選用輸入參數：

*rollforward\$1to\$1option*  
您要向前捲動的目標點。資料類型為 `varchar`。有效值：`END_OF_LOGS`，`END_OF_BACKUP`時間戳記格式為 `YYYY-MM-DD-HH.MM.SS`。預設值為 `END_OF_LOGS`。

*complete\$1rollforward*  
指定是否完成向前捲動程序。資料類型為 `varchar`。預設值為 `TRUE`。  
如果為 `TRUE`，則完成後，資料庫會上線並可存取。如果為 `FALSE`，則資料庫會保持 `ROLL-FORWARD PENDING` 狀態。

### 使用須知
<a name="db2-sp-rollforward-database-usage-notes"></a>

您可以使用 `rds.rollforward_database` 進行線上備份，其中包含在許多不同情況下內部部署產生的日誌。

**案例 1：還原資料庫、向前捲動包含的日誌，以及將資料庫上線**

`rdsadmin.restore_database()` 完成之後，請使用[範例 1](#db2-sp-rollforward-database-examples) 中的語法，將含有交易日誌的資料庫上線。

**案例 2：將資料庫上線，但不向前捲動包含的日誌。**

`rdsadmin.restore_database()` 完成之後，請使用[範例 2](#db2-sp-rollforward-database-examples) 中的語法，將不含交易日誌的資料庫上線。

**案例 3：向前捲動備份中包含的日誌，並在內部部署產生其他交易日誌時套用這些交易日誌**

`rdsadmin.restore_database()` 完成後，使用[範例 3 或範例 4](#db2-sp-rollforward-database-examples) 中的語法來向前捲動日誌，而不將資料庫上線。

如果您將 `complete_rollforward` 設定為 `FALSE`，則資料庫處於 `ROLL-FORWARD PENDING` 狀態且離線。若要將資料庫上線，您必須呼叫 [rdsadmin.complete\$1rollforward](#db2-sp-complete-rollforward)。

如需檢查向前捲動資料庫狀態的相關資訊，請參閱 [rdsadmin.rollforward\$1status](#db2-sp-rollforward-status)。

### 範例
<a name="db2-sp-rollforward-database-examples"></a>

**範例 1：將含有交易日誌的資料庫上線**

下列範例會向前捲動至含有交易日誌的資料庫之線上備份，然後將資料庫上線：

```
db2 "call rdsadmin.rollforward_database(
    ?,
    null,
    null,
    'END_OF_LOGS',
    'TRUE')"
```

**範例 2：將不含交易日誌的資料庫上線**

下列範例會向前捲動至不含交易日誌的資料庫之線上備份，然後將資料庫上線：

```
db2 "call rdsadmin.rollforward_database(
    ?,
    'TESTDB',
    'amzn-s3-demo-bucket',
    'logsfolder/,
    'END_OF_BACKUP',
    'TRUE')"
```

**範例 1：不將含有交易日誌的資料庫上線**

下列範例會向前捲動至含有交易日誌的資料庫之線上備份，然後不將資料庫上線：

```
db2 "call rdsadmin.rollforward_database(
    ?,
    'TESTDB',
    null,
    'onlinebackup/TESTDB',
    'END_OF_LOGS',
    'FALSE')"
```

**範例 4：不將含有其他交易日誌的資料庫上線**

下列範例會向前捲動至含有其他交易日誌的資料庫之線上備份，然後不將資料庫上線：

```
db2 "call rdsadmin.rollforward_database(
    ?,
    'TESTDB',
    'amzn-s3-demo-bucket',
    'logsfolder/S0000155.LOG',
    'END_OF_LOGS',
    'FALSE')"
```

## rdsadmin.rollforward\$1status
<a name="db2-sp-rollforward-status"></a>

傳回 `ROLLFORWARD DATABASE database_name QUERY STATUS` 的輸出。

### 語法
<a name="db2-sp-rollforward-status-syntax"></a>

```
db2 "call rdsadmin.rollforward_status(
    ?,
    'database_name')"
```

### Parameters
<a name="db2-sp-rollforward-status-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*database\$1name*  
要在其中執行作業的資料庫之名稱。資料類型為 `varchar`。

### 使用須知
<a name="db2-sp-rollforward-status-usage-notes"></a>

呼叫 [rdsadmin.rollforward\$1database](#db2-sp-rollforward-database) 之後，您可以呼叫 `rdsadmin.rollforward_status` 來檢查資料庫中向前捲動的狀態。

如需檢查此預存程序狀態的相關資訊，請參閱 [rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)。

## rdsadmin.complete\$1rollforward
<a name="db2-sp-complete-rollforward"></a>

從 `ROLL-FORWARD PENDING` 狀態將資料庫上線。

### 語法
<a name="db2-sp-complete-rollforward-syntax"></a>

```
db2 "call rdsadmin.complete_rollforward(
    ?,
    'database_name')"
```

### Parameters
<a name="db2-sp-complete-rollforward-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*database\$1name*  
欲上線的資料庫之名稱。資料類型為 `varchar`。

### 使用須知
<a name="db2-sp-complete-rollforward-usage-notes"></a>

如果您呼叫 [rdsadmin.rollforward\$1database](#db2-sp-rollforward-database) 並將 `complete_rollforward` 設定為 `FALSE`，則您的資料庫處於 `ROLL-FORWARD PENDING` 狀態且離線。若要完成向前捲動程序並將資料庫上線，請呼叫 `rdsadmin.complete_rollforward`。

如需檢查完成向前捲動程序狀態的相關資訊，請參閱 [rdsadmin.rollforward\$1status](#db2-sp-rollforward-status)。

### 範例
<a name="db2-sp-complete-rollforward-examples"></a>

下列範例可將 TESTDB 資料庫上線：

```
db2 "call rdsadmin.complete_rollforward(
    ?,
    'TESTDB')"
```

## rdsadmin.db2pd\$1command
<a name="db2-sp-db2pd-command"></a>

收集 RDS for Db2 資料庫的相關資訊。

### 語法
<a name="db2-sp-db2pd-command-syntax"></a>

```
db2 "call rdsadmin.db2pd_command('db2pd_cmd')"
```

### Parameters
<a name="db2-sp-db2pd-command-parameters"></a>

以下是必要輸入參數：

*db2pd\$1cmd*  
欲執行的 `db2pd` 命令之名稱。資料類型為 `varchar`。  
參數必須以連字號開頭。如需參數清單，請參閱 IBM Db2 文件中的 [db2pd - 監控及故障診斷 Db2 資料庫命令](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2pd-monitor-troubleshoot-db2-engine-activities)。  
不支援下列選項：  
+ `-addnode`
+ `-alldatabases`
+ `-alldbp`
+ `-alldbs`
+ `-allmembers`
+ `-alm_in_memory`
+ `-cfinfo`
+ `-cfpool`
+ `-command`
+ `-dbpartitionnum`
+ `-debug`
+ `-dump`
+ `-everything`
+ `-file | -o`
+ `-ha`
+ `-interactive`
+ `-member`
+ `-pages`
**注意**  
系統支援 `-pages summary`。
+ `-pdcollection`
+ `-repeat`
+ `-stack`
+ `-totalmem`
不支援 `file` 子選項，例如 `db2pd -db testdb -tcbstats file=tcbstat.out`。  
不支援使用 `stacks` 選項，例如 `db2pd -edus interval=5 top=10 stacks`。

### 使用須知
<a name="db2-sp-db2pd-command-usage-notes"></a>

此預存程序會收集有助於監控及故障診斷 RDS for Db2 資料庫的資訊。

預存程序會使用 IBM `db2pd` 公用程式來執行各種命令。`db2pd` 公用程式需要 `SYSADM` 授權，RDS for Db2 主要使用者並沒有該授權。不過，透過 Amazon RDS 預存程序，主要使用者可以使用公用程式來執行各種命令。如需關於公用程式的詳細資訊，請參閱 IBM Db2 文件中的 [db2pd - 監控 Db2 資料庫命令並進行故障診斷](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2pd-monitor-troubleshoot-db2-engine-activities)。

輸出上限為 2 GB。

如需檢查收集資料庫相關資訊狀態的相關資訊，請參閱 [rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)。

### 範例
<a name="db2-sp-db2pd-command-examples"></a>

**範例 1：傳回資料庫執行個體的運行時間**

下列範例會傳回 RDS for Db2 資料庫執行個體的運行時間：

```
db2 "call rdsadmin.db2pd_command('-')"
```

**範例 2：傳回資料庫的運行時間**

下列範例會傳回名為 `TESTDB` 之資料庫的運行時間：

```
db2 "call rdsadmin.db2pd_command('-db TESTDB -')"
```

**範例 3：傳回資料庫執行個體的記憶體用量**

下列範例會傳回 RDS for Db2 資料庫執行個體的記憶體用量：

```
db2 "call rdsadmin.db2pd_command('-dbptnmem')"
```

**範例 4：傳回資料庫執行個體和資料庫的記憶體集**

下列範例會傳回 RDS for Db2 資料庫執行個體的記憶體集以及名為 `TESTDB` 的資料庫：

```
db2 "call rdsadmin.db2pd_command('-inst -db TESTDB -memsets')"
```

## rdsadmin.force\$1application
<a name="db2-sp-force-application"></a>

強制應用程式退出 RDS for Db2 資料庫。

### 語法
<a name="db2-sp-force-application-syntax"></a>

```
db2 "call rdsadmin.force_application(
    ?,
    'applications')"
```

### Parameters
<a name="db2-sp-force-application-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*應用程式*  
欲強制退出 RDS for Db2 資料庫的應用程式。資料類型為 `varchar`。有效值：`ALL` 或 *application\$1handle*。  
使用逗號分隔多個應用程式的名稱。範例：'*application\$1handle\$11*, *application\$1handle\$12*'。

### 使用須知
<a name="db2-sp-force-application-usage-notes"></a>

此預存程序會強制所有應用程式退出資料庫，讓您可以執行維護。

預存程序使用 IBM `FORCE APPLICATION` 命令。`FORCE APPLICATION` 命令需要 `SYSADM`、`SYSMAINT` 或 `SYSCTRL` 授權，RDS for Db2 主要使用者並沒有該授權。不過，透過 Amazon RDS 預存程序，主要使用者即可以使用命令。如需詳細資訊，請參閱 IBM Db2 文件中的 [FORCE APPLICATION 命令](https://www.ibm.com/docs/en/db2/11.1?topic=commands-force-application)。

如需檢查強制應用程式退出資料庫狀態的相關資訊，請參閱 [rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)。

### 範例
<a name="db2-sp-force-application-examples"></a>

**範例 1：指定所有應用程式**

下列範例會強制所有應用程式退出 RDS for Db2 資料庫：

```
db2 "call rdsadmin.force_application(
    ?,
    'ALL')"
```

**範例 2：指定多個應用程式**

下列範例會強制應用程式處理 `9991`、`8891` 和 `1192` 退出 RDS for Db2 資料庫：

```
db2 "call rdsadmin.force_application(
    ?,
    '9991, 8891, 1192')"
```

## rdsadmin.set\$1archive\$1log\$1retention
<a name="db2-sp-set-archive-log-retention"></a>

設定保留指定 RDS for Db2 資料庫封存日誌檔案的時間量 (以小時為單位)。

### 語法
<a name="db2-sp-set-archive-log-retention-syntax"></a>

```
db2 "call rdsadmin.set_archive_log_retention(
    ?,            
    'database_name',  
    'archive_log_retention_hours')"
```

### Parameters
<a name="db2-sp-set-archive-log-retention-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*database\$1name*  
要設定封存日誌保留的資料庫之名稱。資料類型為 `varchar`。

*archive\$1log\$1retention\$1hours*  
保留封存日誌檔案的時數。資料類型為 `smallint`。預設值為 `0`，上限為 `840`(35 天）。  
如果值為 `0`，則 Amazon RDS 不會保留封存日誌檔案。

### 使用須知
<a name="db2-sp-set-archive-log-retention-usage-notes"></a>

根據預設，RDS for Db2 會保留日誌 5 分鐘。如果您使用 等複寫工具 AWS DMS 進行變更資料擷取 (CDC) 或 IBM Q Replication，建議您在這些工具中設定超過 5 分鐘的日誌保留。

您可以呼叫 [rdsadmin.show\$1archive\$1log\$1retention](#db2-sp-show-archive-log-retention) 來檢視目前的封存日誌保留設定。

您無法在 `rdsadmin` 資料庫上設定封存日誌保留設定。

### 範例
<a name="db2-sp-set-archive-log-retention-examples"></a>

**範例 1：設定保留時間**

下列範例會將名為 `TESTDB` 之資料庫的封存日誌保留時間設定為 24 小時。

```
db2 "call rdsadmin.set_archive_log_retention(
    ?,
    'TESTDB', 
    '24')"
```

**範例 2：停用保留時間**

下列範例會停用名為 `TESTDB` 之資料庫的封存日誌保留。

```
db2 "call rdsadmin.set_archive_log_retention(
    ?,
    'TESTDB', 
    '0')"
```

## rdsadmin.show\$1archive\$1log\$1retention
<a name="db2-sp-show-archive-log-retention"></a>

傳回指定資料庫目前的封存日誌保留設定。

### 語法
<a name="db2-sp-show-archive-log-retention-syntax"></a>

```
db2 "call rdsadmin.show_archive_log_retention(
    ?,
    'database_name')"
```

### Parameters
<a name="db2-sp-show-archive-log-retention-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*database\$1name*  
要顯示封存日誌保留設定的資料庫之名稱。資料類型為 `varchar`。

### 範例
<a name="db2-sp-show-archive-log-retention-examples"></a>

下列範例會顯示名為 `TESTDB` 之資料庫的封存日誌保留設定。

```
db2 "call rdsadmin.show_archive_log_retention(?,'TESTDB')"
```

## rdsadmin.list\$1archive\$1log\$1information
<a name="db2-sp-list-archive-log-information"></a>

傳回封存日誌檔案的詳細資訊，例如大小、建立日期和時間，以及指定資料庫的個別日誌檔案之名稱。其也會傳回資料庫中日誌檔案所使用的總儲存量。

### 語法
<a name="db2-sp-list-archive-log-information-syntax"></a>

```
db2 "call rdsadmin.list_archive_log_information(
    ?,
    'database_name')"
```

### Parameters
<a name="db2-sp-list-archive-log-information-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*database\$1name*  
要列出封存日誌資訊的資料庫之名稱。資料類型為 `varchar`。

### 範例
<a name="db2-sp-list-archive-log-information-examples"></a>

下列範例會傳回名為 `TESTDB` 之資料庫的封存日誌資訊。

```
db2 "call rdsadmin.list_archive_log_information(
    ?,
    'TESTDB')"
```

## rdsadmin.enable\$1archive\$1log\$1copy
<a name="db2-sp-enable_archive_log_copy"></a>

啟用 RDS Db2 資料庫封存日誌複製到 Amazon S3。

### 語法
<a name="db2-sp-enable_archive_log_copy-syntax"></a>

```
db2 "call rdsadmin.enable_archive_log_copy(
    ?,
    'database_name')"
```

### Parameters
<a name="db2-sp-enable_archive_log_copy-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*database\$1name*  
要啟用封存日誌複製到 Amazon S3 的資料庫名稱。資料類型為 `varchar`。

### 範例
<a name="db2-sp-enable_archive_log_copy-examples"></a>

下列範例會啟用名為 之資料庫的封存日誌副本`TESTDB`。

```
db2 "call rdsadmin.enable_archive_log_copy(
    ?,
    'TESTDB')"
```

## rdsadmin.disable\$1archive\$1log\$1copy
<a name="db2-sp-disable_archive_log_copy"></a>

停用 RDS Db2 資料庫封存日誌複製到 Amazon S3。

### 語法
<a name="db2-sp-disable_archive_log_copy-syntax"></a>

```
db2 "call rdsadmin.disable_archive_log_copy(
    ?,
    'database_name')"
```

### Parameters
<a name="db2-sp-disable_archive_log_copy-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*database\$1name*  
要停用封存日誌複製到 Amazon S3 的資料庫名稱。資料類型為 `varchar`。

### 範例
<a name="db2-sp-disable_archive_log_copy-examples"></a>

下列範例會停用名為 之資料庫的封存日誌副本`TESTDB`。

```
db2 "call rdsadmin.disable_archive_log_copy(
    ?,
    'TESTDB')"
```

## rdsadmin.fgac\$1command
<a name="db2-sp-fgac-command"></a>

執行精細存取控制 (FGAC) 命令。

### 語法
<a name="db2-sp-fgac-command-syntax"></a>

```
db2 "call rdsadmin.fgac_command(
    ?,
    'database_name',
    'fgac_cmd')"
```

### Parameters
<a name="db2-sp-fgac-command-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*database\$1name*  
您要在其上執行 FGAC 命令的資料庫名稱。資料類型為 `varchar`。

*fgac\$1cmd*  
您要執行的精細存取控制命令。資料類型為 `varchar`。  
下列命令有效：  
+ `ALTER MASK` – 修改資料列和資料欄存取控制 (RCAC) 中的現有資料欄遮罩。
+ `ALTER PERMISSION` – 修改 RCAC 中現有資料列許可的屬性。
+ `ALTER SECURITY POLICY` – 修改 RCAC 的現有安全政策。
+ `ALTER SECURITY LABEL` – 修改標籤型存取控制 (LBAC) 中現有安全標籤的屬性。
+ `ALTER TABLE` – 修改資料表結構，包括新增 RCAC 或 LBAC 控制項。
+ `CREATE MASK` – 為 RCAC 建立新的資料欄遮罩。
+ `CREATE PERMISSION` – 為 RCAC 建立新的資料列許可。
+ `CREATE SECURITY LABEL` – 為 LBAC 建立新的安全標籤。
+ `CREATE SECURITY POLICY` – 為 RCAC 建立新的安全政策。
+ `DROP MASK` – 捨棄現有的資料欄遮罩。
+ `DROP PERMISSION` – 捨棄現有的資料列許可。
+ `DROP SECURITY LABEL` – 從 LBAC 捨棄安全標籤。
+ `DROP SECURITY POLICY` – 捨棄現有的 RCAC 安全政策。
+ `GRANT EXEMPTION ON RULE` – 允許使用者略過特定 LBAC 規則。
+ `GRANT SECURITY LABEL` – 將 LBAC 安全標籤指派給使用者。
+ `REVOKE EXEMPTION ON RULE` – 從 LBAC 規則中移除使用者的豁免。
+ `REVOKE SECURITY LABEL` – 從使用者移除 LBAC 安全標籤。

### 使用須知
<a name="db2-sp-fgac-command-usage-notes"></a>

此預存程序會在資料列或資料欄層級控制對 RDS for Db2 資料庫執行個體上資料庫中資料表資料的存取。RDS for Db2 支援資料庫上的兩種 FGAC 類型：
+ 標籤型存取控制 (LBAC)
+ 資料列和資料欄存取控制 (RCAC)

呼叫預存程序之前，請檢閱下列考量事項：
+ 若要逸出單引號 (')，請使用額外的單引號。下列範例示範如何逸出 `'apple'`、 `'banana'`和 `'fruit'`。

  ```
  db2 "call rdsadmin.fgac_command(
      ?,
      'testdb',
      'CREATE SECURITY LABEL COMPONENT FRUITSET SET{''apple'',''banana''}')"
  ```

  ```
  db2 "call rdsadmin.fgac_command(
      ?, 
      'testdb', 
      'CREATE SECURITY LABEL COMPONENT FRUITTREE TREE(''fruit'' ROOT, ''apple'' UNDER ''fruit'', ''banana'' UNDER ''fruit'')')"
  ```
+ 若要逸出括號 (【 】)，請使用反斜線 (\$1)。下列範例示範如何逸出 `[''apple'',''banana'']`。

  ```
  db2 "call rdsadmin.fgac_command(
      ?, '
      testdb', 
      'CREATE SECURITY LABEL COMPONENT FRUITARRAY ARRAY\[''apple'',''banana''\]')"
  ```

### 範例
<a name="db2-sp-fgac-command-examples"></a>

下列範例會在名為 的資料庫上執行 FGAC 命令`testdb`。

**範例 1：建立新的安全標籤，稱為 `FRUITSET`** 

```
db2 "call rdsadmin.fgac_command(
    ?,
    'testdb',
    'CREATE SECURITY LABEL COMPONENT FRUITSET SET{''apple'',''banana''}')"
```

**範例 2：為當 `EMP_ID` 設定為少於三個 時啟用的資料`EMP_ID`欄建立新的遮罩**

```
db2 "call rdsadmin.fgac_command(
    ?,
    'testdb',
    'CREATE MASK id_MASK ON EMPLOYEE FOR COLUMN EMP_ID RETURN CASE WHEN (EMP_ID < 3) THEN EMP_ID ELSE NULL END ENABLE')"
```

**範例 3：為`SESSION_USER`設定為 時啟用的資料`DEPARTMENT`欄建立新的遮罩 `security_user`** 

```
db2 "call rdsadmin.fgac_command(
    ?,
    'testdb',
    'CREATE MASK DEPARTMENT_MASK ON EMPLOYEE FOR COLUMN DEPARTMENT RETURN CASE  WHEN SESSION_USER = ''security_user'' THEN DEPARTMENT ELSE NULL END ENABLE')"
```

**範例 4：建立新的安全標籤，稱為 `treelabel`** 

```
db2 "call rdsadmin.fgac_command(
    ?,
    'testdb',
    'CREATE SECURITY LABEL COMPONENT treelabel  TREE(''COMPANY'' ROOT, ''HR'' UNDER ''COMPANY'', ''FINANCE'' UNDER ''COMPANY'', ''IT'' UNDER ''COMPANY'')')"
```

## rdsadmin.db2support\$1command
<a name="db2-sp-db2support-command"></a>

收集 RDS for Db2 資料庫的診斷資訊，並將其上傳至 Amazon S3 儲存貯體。

### 語法
<a name="db2-sp-db2support-command-syntax"></a>

```
db2 "call rdsadmin.db2support_command(
    ?,
    'database_name',
    's3_bucket_name',
    's3_prefix')"
```

### Parameters
<a name="db2-sp-db2support-command-parameters"></a>

以下是必要輸出參數：

?  
輸出錯誤訊息的參數標記。此參數僅接受 `?`。

以下是必要輸入參數：

*database\$1name*  
要收集診斷資訊的資料庫名稱。資料類型為 `varchar`。

*s3\$1bucket\$1name*  
您要上傳診斷資訊的 Amazon S3 儲存貯體名稱。資料類型為 `varchar`。

*s3\$1prefix*  
Amazon S3 路徑的字首，其中 RDS for Db2 會上傳診斷檔案。資料類型為 `varchar`。

### 使用須知
<a name="db2-sp-db2support-command-usage-notes"></a>

此預存程序會收集診斷資訊，以協助對 Db2 資料庫的 RDS 進行故障診斷，並將資訊上傳至 Amazon S3 儲存貯體。

預存程序會使用 IBM`db2support`公用程式來收集診斷資料。如需 公用程式的詳細資訊，請參閱 IBM Db2 文件中的 [db2support - 問題分析和環境收集工具命令](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2support-problem-analysis-environment-collection-tool)。

呼叫預存程序之前，請檢閱下列考量事項：
+ 若要將診斷檔案上傳至 Amazon S3，您必須已設定整合。如需詳細資訊，請參閱[整合 Amazon RDS for Db2 資料庫執行個體和 Amazon S3](db2-s3-integration.md)。
+ 若要讓 RDS for Db2 資料庫執行個體能夠與 Amazon S3 互動，您必須擁有 VPC 和 Amazon S3 閘道端點，私有子網路才能使用。如需詳細資訊，請參閱[步驟 1：這會為 Amazon S3 建立 VPC 閘道端點](db2-troubleshooting.md#db2-creating-endpoint)及[步驟 2：確認 Amazon S3 的 VPC 閘道端點存在](db2-troubleshooting.md#db2-confirming-endpoint)。

呼叫 `rdsadmin.db2support_command` 之前，您必須連線到 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您的 RDS for Db2 資料庫執行個體資訊：

```
db2 connect to rdsadmin user master_username using master_password
```

如需檢查收集診斷資訊狀態的資訊，請參閱 [rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)。

### 範例
<a name="db2-sp-db2support-command-examples"></a>

**範例 1：收集資料庫的診斷資訊**

下列範例會收集名為 之資料庫的診斷資訊，`TESTDB`並將其上傳至名為 `amzn-s3-demo-bucket`且字首為 的 Amazon S3 儲存貯體`diagnostics/testdb`：

```
db2 "call rdsadmin.db2support_command(
    ?,
    'TESTDB',
    'amzn-s3-demo-bucket',
    'diagnostics/testdb')"
```

**範例 2：使用以日期為基礎的字首收集診斷資訊**

下列範例會收集名為 之資料庫的診斷資訊，`MYDB`並將其上傳至名為 `amzn-s3-demo-bucket`且具有日期型字首的 Amazon S3 儲存貯體：

```
db2 "call rdsadmin.db2support_command(
    ?,
    'MYDB',
    'amzn-s3-demo-bucket',
    'support/2024/01/15')"
```