

# 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')"
```

### パラメータ
<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 のページでは、Torn Write、つまり一部のデータしかディスクに書き込まれないというリスクが発生します。32 KiB のページを使用している場合は、ポイントインタイムリカバリと自動バックアップを有効にすることをお勧めします。有効にしない場合、データの不整合があるページから復元できなくなるリスクが発生します。詳細については、「[バックアップの概要](USER_WorkingWithAutomatedBackups.md)」および「[Amazon RDS の DB インスタンスを特定の時点に復元する](USER_PIT.md)」を参照してください。

*tablespace\$1initial\$1size*  
テーブルスペースの初期サイズ (キロバイト (KB) 単位)。データ型は `integer` です。有効な値: `48` 以上。デフォルトは null です。  
値を設定しない場合、Db2 が適切な値を設定します。  
一時的なテーブルスペースはシステムが管理するため、このパラメータは一時テーブルスペースには適用されません。

*tablespace\$1increase\$1size*  
テーブルスペースがフルになったときにテーブルスペースを増やす割合。データ型は `integer` です。有効値: `1`～`100`。デフォルトは null です。  
値を設定しない場合、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` というデータベースに対して、サイズが 8 KiB の `BP8` というバッファプールを割り当てます。

```
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')"
```

### パラメータ
<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` です。有効な値: *integer* `K` \$1 `M` \$1 `G`、または `NONE`。デフォルトは `NONE` です。

*reduce\$1max*  
ハイウォーターマークを上限まで減らすかどうかを指定します。データ型は `char` です。デフォルトは `N` です。

*reduce\$1stop*  
前の `reduce_max`または `reduce_value` コマンドを中断するかどうかを指定します。データ型は `char` です。デフォルトは `N` です。

*reduce\$1value*  
テーブルスペースのハイウォーターマークを減らす際の数または割合。データ型は `varchar` です。有効な値: *integer* `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: ハイウォーターマークを減らす**

次の例では、データベース `TBSP_TEST` の `TESTDB` というテーブルスペースで `REDUCE MAX` コマンドを実行します。

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

**例 3: コマンドを中断して高いウォーターマークを減らす**

次の例では、データベース `TBSP_TEST` の `TESTDB` というテーブルスペースで `REDUCE STOP` コマンドを実行します。

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

**例 4: 既存のプリフェッチページサイズの変更**

次の例では、`TSBP_TEST` というテーブルスペースに対して `64` コマンドを実行し、既存のプリフェッチページサイズを `ALTER TABLESPACE SWITCH ONLINE` に変更します。

```
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')"
```

### パラメータ
<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')"
```

### パラメータ
<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')"
```