

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

# RDS for Db2 資料表空間的預存程序
<a name="db2-sp-managing-tablespaces"></a>

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

這些預存程序用於各種任務。這不是完整清單。
+ [資料表空間的常見任務](db2-managing-tablespaces.md)
+ [產生效能報告](db2-managing-databases.md#db2-generating-performance-reports)
+ [使用 db2look 複製資料庫中繼資料](db2-native-db2-tools-db2look.md)
+ [為 IBM Db2 Data Management Console 建立儲存庫資料庫](db2-connecting-with-ibm-data-management-console.md#db2-creating-repo-db-monitoring-dmc)

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

**Topics**
+ [rdsadmin.create\$1tablespace](#db2-sp-create-tablespace)
+ [rdsadmin.alter\$1tablespace](#db2-sp-alter-tablespace)
+ [rdsadmin.rename\$1tablespace](#db2-sp-rename-tablespace)
+ [rdsadmin.drop\$1tablespace](#db2-sp-drop-tablespace)

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

建立資料表空間。

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

```
db2 "call rdsadmin.create_tablespace(
    'database_name', 
    'tablespace_name',
    'buffer_pool_name', 
    tablespace_page_size,
    tablespace_initial_size, 
    tablespace_increase_size, 
    'tablespace_type',
    'tablespace_prefetch_size')"
```

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

下列是必要參數：

*database\$1name*  
用於建立資料表空間的資料庫之名稱。資料類型為 `varchar`。

*tablespace\$1name*  
要建立的資料表空間之名稱。資料類型為 `varchar`。  
資料表空間名稱有下列限制：  
+ 該名稱不能與此資料庫中現有資料表空間的名稱相同。
+ 該名稱只能包含字元 `_$#@a-zA-Z0-9`。
+ 該名稱不能以 `_` 或 `$` 開頭。
+ 該名稱不能以 `SYS` 開頭。

下列是選用參數：

*buffer\$1pool\$1name*  
要指派資料表空間的緩衝集區之名稱。資料類型為 `varchar`。預設為空字串。  
您必須已有相同頁面大小的緩衝集區，才能與資料表空間建立關聯。

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

*tablespace\$1initial\$1size*  
資料表空間的初始大小 (以 KB (KB) 為單位)。資料類型為 `integer`。有效值：`48` 或更高。預設值為空。  
如果您未設定值，則 Db2 會為您設定適當的值。  
此參數不適用於暫存資料表空間，因為系統會管理暫存資料表空間。

*tablespace\$1increase\$1size*  
資料表空間變滿時要增加的百分比。資料類型為 `integer`。有效值：`1`–`100`。預設值為空。  
如果您未設定值，則 Db2 會為您設定適當的值。  
此參數不適用於暫存資料表空間，因為系統會管理暫存資料表空間。

*tablespace\$1type*  
資料表空間的類型。資料類型為 `char`。有效值：`U` (適用於使用者資料)、`T` (適用於使用者暫存資料) 或 `S` (適用於系統暫存資料)。預設值為 `U`。

*tablespace\$1prefetch\$1size*  
資料表空間的預先擷取頁面大小。資料類型為 `char`。有效值：`AUTOMATIC` (不區分大小寫)，或是小於或等於 32767 的非零正整數。

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

RDS for Db2 一律會為資料建立大型資料庫。

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

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

**範例 1：建立資料表空間並指派緩衝集區**

下列範例會建立名為 `SP8` 的資料表空間，並為名為 `TESTDB` 的資料庫指派名為 `BP8` 的緩衝集區。資料表空間的初始資料表空間頁面大小為 4,096 個位元組，初始資料表空間為 1,000 KB，資料表大小增加設定為 50%。

```
db2 "call rdsadmin.create_tablespace(
    'TESTDB',
    'SP8',
    'BP8',
    4096,
    1000,
    50)"
```

**範例 2：建立暫存資料表空間並指派緩衝集區**

下列範例會建立名為 `SP8` 的暫存資料表空間。它會為名為 `TESTDB` 的資料庫指派名為 `BP8` 的緩衝集區 (大小為 8 KiB)。

```
db2 "call rdsadmin.create_tablespace(
    'TESTDB',
    'SP8',
    'BP8', 
    8192, 
    NULL, 
    NULL, 
    'T')"
```

**範例 3：建立資料表空間並指派預先擷取頁面大小**

下列範例會為名為 `TESTDB` 的資料庫建立名為 `SP8` 的資料表空間。資料表空間的初始資料表空間會增加 `50` 的大小，以及增加預先擷取頁面 `800` 的大小。

```
db2 "call rdsadmin.create_tablespace(
    'TESTDB',
    'SP8',
    NULL,
    NULL,
    NULL,
    50,
    NULL,
    '800')"
```

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

修改資料表空間。

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

```
db2 "call rdsadmin.alter_tablespace(
    'database_name', 
    'tablespace_name', 
    'buffer_pool_name', 
    tablespace_increase_size, 
    'max_size', 
    'reduce_max', 
    'reduce_stop', 
    'reduce_value', 
    'lower_high_water', 
    'lower_high_water_stop', 
    'switch_online',
    'tablespace_prefetch_size')"
```

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

下列是必要參數：

*database\$1name*  
使用資料表空間的資料庫之名稱。資料類型為 `varchar`。

*tablespace\$1name*  
要修改的資料表空間之名稱。資料類型為 `varchar`。

下列是選用參數：

*buffer\$1pool\$1name*   
要指派資料表空間的緩衝集區之名稱。資料類型為 `varchar`。預設為空字串。  
您必須已有相同頁面大小的緩衝集區，才能與資料表空間建立關聯。

*tablespace\$1increase\$1size*  
資料表空間變滿時要增加的百分比。資料類型為 `integer`。有效值：`1`–`100`。預設值為 `0`。

*max\$1size*  
資料表空間的大小上限。資料類型為 `varchar`。有效值：*整數* `K` \$1 `M` \$1 `G` 或 `NONE`。預設值為 `NONE`。

*reduce\$1max*  
指定是否將高浮水印減少至其上限。資料類型為 `char`。預設值為 `N`。

*reduce\$1stop*  
指定是否要中斷先前的 `reduce_max` 或 `reduce_value` 命令。資料類型為 `char`。預設值為 `N`。

*reduce\$1value*  
要減少資料表空間高水位的數量或百分比。資料類型為 `varchar`。有效值：*整數* `K`\$1 `M` \$1 `G` 或 `1`–`100`。預設值為 `N`。

*lower\$1high\$1water*  
指定是否執行 `ALTER TABLESPACE LOWER HIGH WATER MARK` 命令。資料類型為 `char`。預設值為 `N`。

*lower\$1high\$1water\$1stop*  
指定是否執行 `ALTER TABLESPACE LOWER HIGH WATER MARK STOP` 命令。資料類型為 `char`。預設值為 `N`。

*switch\$1online*  
指定是否執行 `ALTER TABLESPACE SWITCH ONLINE` 命令。資料類型為 `char`。預設值為 `N`。

*tablespace\$1prefetch\$1size*  
資料表空間的預先擷取頁面大小。資料類型為 `char`。有效值：`AUTOMATIC` (不區分大小寫)，或是小於或等於 32767 的非零正整數。  
此參數僅適用於 `buffer_pool_name`、`table_increase_size`、`max_size` 和 `switch_online`。它不適用於 `reduce_max`、`reduce_stop`、`reduce_value`、`lower_high_water` 和 `lower_high_water_stop`。

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

呼叫預存程序之前，請檢閱下列考量事項：
+ `rdsadmin.alter_tablespace` 預存程序無法在資料表空間上運作，並將使用者暫存資料的 `tablespace_type` 設定為 `T`。
+ 選用參數 `reduce_max`、`reduce_stop`、`reduce_value`、`lower_high_water`、`lower_high_water_stop` 和 `switch_online` 互斥。您無法在 `rdsadmin.alter_tablespace` 命令中將它們與任何其他選用參數 (例如 `buffer_pool_name`) 結合。如需詳細資訊，請參閱[Statement not valid](db2-troubleshooting.md#alter-tablespace-sp-statement-not-valid)。

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

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

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

**範例 1：降低高浮水印**

下列範例會變更名為 `SP8` 的資料表空間，並指派名為 `BP8` 的緩衝集區，供名為 `TESTDB` 的資料庫使用，以降低高浮水印。

```
db2 "call rdsadmin.alter_tablespace(
    'TESTDB',
    'SP8',
    'BP8', 
    NULL, 
    NULL, 
    'Y')"
```

**範例 2：減少高浮水印**

下列範例會在資料庫 `TESTDB` 中名為 `TBSP_TEST` 的資料表空間上執行 `REDUCE MAX` 命令。

```
db2 "call rdsadmin.alter_tablespace(
    'TESTDB',
    'TBSP_TEST',
    NULL,
    NULL,
    NULL,
    'Y')"
```

**範例 3：中斷命令以減少高浮水印**

下列範例會在資料庫 `TESTDB` 中名為 `TBSP_TEST` 的資料表空間上執行 `REDUCE STOP` 命令。

```
db2 "call rdsadmin.alter_tablespace(
    'TESTDB',
    'TBSP_TEST',
    NULL,
    NULL,
    NULL,
    NULL,
    'Y')"
```

**範例 4：變更現有的預先擷取頁面大小**

下列範例會在名為 `TSBP_TEST` 的資料表空間上執行 `ALTER TABLESPACE SWITCH ONLINE` 命令，並將現有的預先擷取頁面大小變更為 `64`。

```
db2 "call rdsadmin.alter_tablespace(
    'TESTDB',
    'TBSP_TEST',
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    ‘Y’,
    ‘64’)"
```

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

重新命名資料表空間。

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

```
db2 "call rdsadmin.rename_tablespace(
    ?,
    'database_name', 
    'source_tablespace_name',
    'target_tablespace_name')"
```

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

下列是必要參數：

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

*database\$1name*  
包含資料表空間所屬資料庫的名稱。資料類型為 `varchar`。

*source\$1tablespace\$1name*  
要重新命名的資料表空間之名稱。資料類型為 `varchar`。

*target\$1tablespace\$1name*  
資料表空間的新名稱。資料類型為 `varchar`。  
新名稱具有下列限制：  
+ 它不能與現有資料表空間的名稱相同。
+ 該名稱只能包含字元 `_$#@a-zA-Z0-9`。
+ 該名稱不能以 `_` 或 `$` 開頭。
+ 該名稱不能以 `SYS` 開頭。

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

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

您無法重新命名屬於 `rdsadmin` 資料庫的資料表空間。

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

下列範例會在名為 `TESTDB` 的資料庫中將名為 `SP8` 的資料表空間重新命名為 `SP9`。

```
db2 "call rdsadmin.rename_tablespace(
    ?,
    'TESTDB',
    'SP8',
    'SP9')"
```

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

捨棄資料表空間。

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

```
db2 "call rdsadmin.drop_tablespace(
    'database_name', 
    'tablespace_name')"
```

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

下列是必要參數：

*database\$1name*  
包含資料表空間所屬資料庫的名稱。資料類型為 `varchar`。

*tablespace\$1name*  
要捨棄的資料表空間之名稱。資料類型為 `varchar`。

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

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

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

下列範例會從名為 `TESTDB` 的資料庫捨棄名為 `SP8` 的資料表空間。

```
db2 "call rdsadmin.drop_tablespace(
    'TESTDB',
    'SP8')"
```