RDS for Db2 のテーブルスペースのストアドプロシージャ
以下のストアドプロシージャでは、Amazon RDS for Db2 データベースのテーブルスペースを管理します。これらのプロシージャを実行する場合、マスターユーザーはまず rdsadmin
データベースに接続する必要があります。
トピック
rdsadmin.create_tablespace
テーブルスペースを作成します。
構文
db2 "call rdsadmin.create_tablespace( '
database_name
', 'tablespace_name
', 'buffer_pool_name
',tablespace_page_size
,tablespace_initial_size
,tablespace_increase_size
, 'tablespace_type
')"
パラメータ
以下のパラメータは必須です。
database_name
-
テーブルスペースを作成するデータベースの名前。データ型は
varchar
です。 tablespace_name
作成するテーブルスペースの名前。データ型は
varchar
です。テーブルスペース名には以下の制限があります。
このデータベース内の既存のテーブルスペース名と同じものは使用できません。
使用できるのは
_$#@a-zA-Z0-9
の文字のみです。_
または$
で始めることはできません。SYS
で始めることはできません。
以下のパラメータはオプションです。
buffer_pool_name
-
テーブルスペースを割り当てるバッファプールの名前。データ型は
varchar
です。デフォルトは空の文字列です。重要
テーブルスペースに関連付けるには、同じページサイズのバッファプールが既に存在している必要があります。
tablespace_page_size
-
テーブルスペースのページサイズ (バイト単位)。データ型は
integer
です。有効な値は、4096
、8192
、16384
、32768
です。デフォルトは、rdsadmin.create_database を呼び出してデータベースを作成した際に使用したページサイズです。重要
Amazon RDS は、4 KiB、8 KiB、16 KiB のページでの書き込みの原子性をサポートしています。一方、32 KiB のページには、Torn Writes (一部のデータしかディスクに書き込まれない) というリスクがあります。32 KiB のページを使用している場合は、ポイントインタイムリカバリと自動バックアップを有効にすることをお勧めします。有効にしない場合、データの不整合があるページから復元できなくなるリスクが発生します。詳細については、バックアップの概要およびAmazon RDS の DB インスタンスを特定の時点に復元するを参照してください。
tablespace_initial_size
-
テーブルスペースの初期サイズ (キロバイト (KB) 単位)。データ型は
integer
です。有効な値:48
以上。デフォルトは null です。値を設定しない場合、Db2 が適切な値を設定します。
注記
一時的なテーブルスペースはシステムが管理するため、このパラメータは一時テーブルスペースには適用されません。
tablespace_increase_size
-
テーブルスペースがフルになったときにテーブルスペースを増やす割合。データ型は
integer
です。有効値:1
~100
。デフォルトは null です。値を設定しない場合、Db2 が適切な値を設定します。
注記
一時的なテーブルスペースはシステムが管理するため、このパラメータは一時テーブルスペースには適用されません。
tablespace_type
-
テーブルスペースのタイプ。データ型は
char
です。有効な値:U
(ユーザーデータの場合)、T
(ユーザー一時データの場合)、またはS
(システム一時データの場合)。デフォルト:U
。
使用に関する注意事項
RDS for Db2 は常にデータ用の大規模なデータベースを作成します。
テーブルスペースの作成ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。
例
次の例では、SP8
という名前のテーブルスペースを作成し、TESTDB
という名前のデータベースに BP8
という名前のバッファプールを割り当てます。このテーブルスペースでは、初期テーブルスペースページサイズは 4,096 バイト、初期テーブルスペースは 1,000 KB、テーブルサイズの増加は 50% に設定されています。
db2 "call rdsadmin.create_tablespace( 'TESTDB', 'SP8', 'BP8', 4096, 1000, 50)"
次の例では、SP8
という名前の一時テーブルスペースを作成します。TESTDB
というデータベースに対して、サイズが 8 KiB の BP8
というバッファプールを割り当てます。
db2 "call rdsadmin.create_tablespace( 'TESTDB', 'SP8', 'BP8', 8192, NULL, NULL, 'T')"
rdsadmin.alter_tablespace
テーブルスペースを変更します。
構文
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
')"
パラメータ
以下のパラメータは必須です。
database_name
-
テーブルスペースを使用するデータベースの名前。データ型は
varchar
です。 tablespace_name
-
変更するテーブルスペースの名前。データ型は
varchar
です。
以下のパラメータはオプションです。
buffer_pool_name
-
テーブルスペースを割り当てるバッファプールの名前。データ型は
varchar
です。デフォルトは空の文字列です。重要
テーブルスペースに関連付けるには、同じページサイズのバッファプールが既に存在している必要があります。
tablespace_increase_size
-
テーブルスペースがフルになったときにテーブルスペースを増やす割合。データ型は
integer
です。有効値:1
~100
。デフォルト:0
。 max_size
-
テーブルスペースの最大サイズ。データ型は
varchar
です。有効な値:integer
K
|M
|G
、またはNONE
。デフォルト:NONE
。 reduce_max
-
ハイウォーターマークを上限まで減らすかどうかを指定します。データ型は
char
です。デフォルト:N
。 reduce_stop
-
前の
reduce_max
またはreduce_value
コマンドを中断するかどうかを指定します。データ型はchar
です。デフォルト:N
。 reduce_value
-
テーブルスペースのハイウォーターマークを減らす際の数または割合。データ型は
varchar
です。有効な値:integer
K
|M
|G
、または1
~100
。デフォルト:N
。 lower_high_water
-
ALTER TABLESPACE LOWER HIGH WATER MARK
コマンドを実行するかどうかを指定します。データ型はchar
です。デフォルト:N
。 lower_high_water_stop
-
ALTER TABLESPACE LOWER HIGH WATER MARK STOP
コマンドを実行するかどうかを指定します。データ型はchar
です。デフォルト:N
。 switch_online
-
ALTER TABLESPACE SWITCH ONLINE
コマンドを実行するかどうかを指定します。データ型はchar
です。デフォルト:N
。
使用に関する注意事項
オプションパラメータ reduce_max
、reduce_stop
、reduce_value
、lower_high_water
、lower_high_water_stop
、switch_online
は、相互に排他的です。rdsadmin.alter_tablespace
コマンドで、buffer_pool_name
などの他のオプションパラメータと組み合わせることはできません。これらのパラメータを rdsadmin.alter_tablespace
コマンドの他のオプションパラメータと組み合わせると、rdsadmin.get_task_status
を実行する際に Db2 は次のようなエラーを返します。
DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned:
SQL1763N Invalid ALTER TABLESPACE statement for table space "TBSP_TEST" due to reason "12"
テーブルスペースの変更ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。
例
次の例では、SP8
というテーブルスペースを変更し、BP8
というデータベースに TESTDB
というバッファプールを割り当てて、ハイウォーターマークを下げます。
db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'SP8', 'BP8', NULL, NULL, 'Y')"
次の例では、データベース TBSP_TEST
の TESTDB
というテーブルスペースで REDUCE MAX
コマンドを実行します。
db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'TBSP_TEST', NULL, NULL, NULL, 'Y')"
次の例では、データベース TBSP_TEST
の TESTDB
というテーブルスペースで REDUCE STOP
コマンドを実行します。
db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'TBSP_TEST', NULL, NULL, NULL, NULL, 'Y')"
rdsadmin.rename_tablespace
テーブルスペース名を変更します。
構文
db2 "call rdsadmin.rename_tablespace( ?, '
database_name
', 'source_tablespace_name
', 'target_tablespace_name
')"
パラメータ
以下のパラメータは必須です。
- ?
-
エラーメッセージを出力するパラメータマーカー。このパラメーターが受け入れるのは、? のみです。
database_name
-
テーブルスペースが属するデータベースの名前。データ型は
varchar
です。 source_tablespace_name
-
変更するテーブルスペースの名前。データ型は
varchar
です。 target_tablespace_name
-
新しいテーブルスペースの名前。データ型は
varchar
です。新しい名前には以下の制限があります。
既存のテーブルスペース名と同じものは使用できません。
使用できるのは
_$#@a-zA-Z0-9
の文字のみです。_
または$
で始めることはできません。SYS
で始めることはできません。
使用に関する注意事項
テーブルスペースの名前変更ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。
rdsadmin
データベースに属するテーブルスペースの名前を変更することはできません。
例
次の例は、TESTDB
というデータベース内の SP8
という名前のテーブルスペースを SP9
に変更します。
db2 "call rdsadmin.rename_tablespace( ?, 'TESTDB', 'SP8'. 'SP9')"
rdsadmin.drop_tablespace
テーブルスペースを削除します。
構文
db2 "call rdsadmin.drop_tablespace( '
database_name
', 'tablespace_name
')"
パラメータ
以下のパラメータは必須です。
database_name
-
テーブルスペースが属するデータベースの名前。データ型は
varchar
です。 tablespace_name
-
削除するテーブルスペースの名前。データ型は
varchar
です。
使用に関する注意事項
テーブルスペースの削除ステータスを確認する方法については、「rdsadmin.get_task_status」を参照してください。
例
次の例では、TESTDB
というデータベースの SP8
というテーブルスペースを削除します。
db2 "call rdsadmin.drop_tablespace( 'TESTDB', 'SP8')"