RDS for Db2 のテーブルスペースのストアドプロシージャ - Amazon Relational Database Service

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 です。有効な値は、409681921638432768 です。デフォルトは、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 です。有効値: 1100。デフォルトは 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 です。有効値: 1100。デフォルト: 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、または 1100。デフォルト: 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_maxreduce_stopreduce_valuelower_high_waterlower_high_water_stopswitch_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_TESTTESTDB というテーブルスペースで REDUCE MAX コマンドを実行します。

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

次の例では、データベース TBSP_TESTTESTDB というテーブルスペースで 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')"