テーブルスペースの一般的なタスク
RDS for Db2 データベースのテーブルスペースを作成、変更、名前の変更、または削除できます。テーブルスペースを作成、変更、名前の変更、または削除するには、マスターユーザーが使用できない上位レベルの SYSADM
権限が必要です。代わりに、Amazon RDS ストアドプロシージャを使用します。
トピック
テーブルスペースの作成
RDS for Db2 データベースのテーブルスペースを作成するには、 rdsadmin.create_tablespace
ストアドプロシージャを呼び出します。詳細については、IBM Db2 ドキュメントの「CREATE TABLESPACE statement
重要
テーブルスペースを作成するには、テーブルスペースを関連付ける同じページサイズのバッファプールが既に存在している必要があります。詳細については、「バッファプールの一般的なタスク」を参照してください。
テーブルスペースを作成するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadmin
データベースに接続します。次の例で、master_username
とmaster_password
を自分の情報に置き換えます。db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
rdsadmin.create_tablespace
を呼び出してテーブルスペースを作成します。詳細については、「rdsadmin.create_tablespace」を参照してください。db2 "call rdsadmin.create_tablespace( '
database_name
', 'tablespace_name
', 'buffer_pool_name
',tablespace_initial_size
,tablespace_increase_size
, 'tablespace_type
')"
テーブルスペースの変更
RDS for Db2 データベースのテーブルスペースを変更するには、 rdsadmin.alter_tablespace
ストアドプロシージャを呼び出します。このストアドプロシージャを使用すると、テーブルスペースのバッファプールを変更したり、ハイウォーターマークを下げたり、テーブルスペースをオンラインにしたりできます。詳細については、IBM Db2 ドキュメントの「ALTER TABLESPACE statement
テーブルスペースを変更するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadmin
データベースに接続します。次の例で、master_username
とmaster_password
を自分の情報に置き換えます。db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
rdsadmin.alter_tablespace
を呼び出してテーブルスペースを変更します。詳細については、「rdsadmin.alter_tablespace」を参照してください。db2 "call rdsadmin.alter_tablespace( '
database_name
', 'tablespace_name
', 'buffer_pool_name
',buffer_pool_size
,tablespace_increase_size
, 'max_size
', 'reduce_max
', 'reduce_stop
', 'reduce_value
', 'lower_high_water
', 'lower_high_water_stop
', 'switch_online
')"
テーブルスペースの名前変更
RDS for Db2 データベースのテーブルスペース名を変更するには、rdsadmin.rename_tablespace
ストアドプロシージャを呼び出します。詳細については、IBM Db2 ドキュメントの「RENAME TABLESPACE statement
テーブルスペース名を変更するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadmin
データベースに接続します。次の例で、master_username
とmaster_password
を自分の情報に置き換えます。db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
rdsadmin.rename_tablespace
を呼び出してテーブルスペース名を変更します。テーブルスペース名に関する制限などの詳細については、「rdsadmin.rename_tablespace」を参照してください。db2 "call rdsadmin.rename_tablespace( '
database_name
', 'source_tablespace_name
', 'target_tablespace_name
')"
テーブルスペースの削除
RDS for Db2 データベースのテーブルスペースを削除するには、 rdsadmin.drop_tablespace
ストアドプロシージャを呼び出します。テーブルスペースを削除する前に、まずテーブル、インデックス、ラージオブジェクト (LOB) などのテーブルスペース内のオブジェクトを削除します。詳細については、IBM Db2 ドキュメントの「Dropping table spaces
テーブルスペースを削除するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、
rdsadmin
データベースに接続します。次の例で、master_username
とmaster_password
を自分の情報に置き換えます。db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
rdsadmin.drop_tablespace
を呼び出してテーブルスペースを削除します。詳細については、「rdsadmin.drop_tablespace」を参照してください。db2 "call rdsadmin.drop_tablespace( '
database_name
', 'tablespace_name
')"
テーブルスペースのステータスの確認
cast
関数を使用して、テーブルスペースのステータスを確認できます。
テーブルスペースのステータスを確認するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、Db2 データベースに接続します。次の例で、
rds_database_alias
、master_username
、master_password
を自分の情報に置き換えます。db2 connect to
rds_database_alias
usermaster_username
usingmaster_password
-
サマリー出力を返します。
概要出力の場合:
db2 "select cast(tbsp_id as smallint) as tbsp_id, cast(tbsp_name as varchar(35)) as tbsp_name, cast(tbsp_type as varchar(3)) as tbsp_type, cast(tbsp_state as varchar(10)) as state, cast(tbsp_content_type as varchar(8)) as contents from table(mon_get_tablespace(null,-1)) order by tbsp_id"
テーブルスペースに関する詳細情報を返す
cast
関数を使用して、1 人またはすべてのメンバーのテーブルスペースに関する情報を返すことができます。
テーブルスペースに関する詳細情報を返すには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、Db2 データベースに接続します。次の例で、
rds_database_alias
、master_username
、master_password
を自分の情報に置き換えます。db2 connect to
rds_database_alias
usermaster_username
usingmaster_password
-
1 人のメンバーまたはすべてのメンバーについて、データベース内のすべてのテーブルスペースに関する詳細を返します。
1 人のメンバーの場合:
db2 "select cast(member as smallint) as member, cast(tbsp_id as smallint) as tbsp_id, cast(tbsp_name as varchar(35)) as tbsp_name, cast(tbsp_type as varchar(3)) as tbsp_type, cast(tbsp_state as varchar(10)) as state, cast(tbsp_content_type as varchar(8)) as contents, cast(tbsp_total_pages as integer) as total_pages, cast(tbsp_used_pages as integer) as used_pages, cast(tbsp_free_pages as integer) as free_pages, cast(tbsp_page_top as integer) as page_hwm, cast(tbsp_page_size as integer) as page_sz, cast(tbsp_extent_size as smallint) as extent_sz, cast(tbsp_prefetch_size as smallint) as prefetch_sz, cast(tbsp_initial_size as integer) as initial_size, cast(tbsp_increase_size_percent as smallint) as increase_pct, cast(storage_group_name as varchar(12)) as stogroup from table(mon_get_tablespace(null,-1)) order by member, tbsp_id "
すべてのメンバーの場合:
db2 "select cast(member as smallint) as member cast(tbsp_id as smallint) as tbsp_id, cast(tbsp_name as varchar(35)) as tbsp_name, cast(tbsp_type as varchar(3)) as tbsp_type, cast(tbsp_state as varchar(10)) as state, cast(tbsp_content_type as varchar(8)) as contents, cast(tbsp_total_pages as integer) as total_pages, cast(tbsp_used_pages as integer) as used_pages, cast(tbsp_free_pages as integer) as free_pages, cast(tbsp_page_top as integer) as page_hwm, cast(tbsp_page_size as integer) as page_sz, cast(tbsp_extent_size as smallint) as extent_sz, cast(tbsp_prefetch_size as smallint) as prefetch_sz, cast(tbsp_initial_size as integer) as initial_size, cast(tbsp_increase_size_percent as smallint) as increase_pct, cast(storage_group_name as varchar(12)) as stogroup from table(mon_get_tablespace(null,-2)) order by member, tbsp_id "
テーブルスペースの状態とストレージグループの一覧表示
SQL ステートメントを実行することで、テーブルスペースの状態とストレージグループを一覧表示できます。
テーブルスペースの状態とストレージグループを一覧表示するには、次の SQL ステートメントを実行します。
db2 "SELECT varchar(tbsp_name, 30) as tbsp_name, varchar(TBSP_STATE, 30) state, tbsp_type, varchar(storage_group_name,30) storage_group FROM TABLE(MON_GET_TABLESPACE('',-2)) AS t"
テーブルのテーブルスペースの一覧表示
SQL ステートメントを実行して、テーブルのテーブルスペースを一覧表示できます。
テーブルのテーブルスペースを一覧表示するには、次の SQL ステートメントを実行します。次の例では、SCHEMA_NAME
と TABLE_NAME
をスキーマとテーブルの名前に置き換えます。
db2 "SELECT VARCHAR(SD.TBSPACE,30) AS DATA_SPACE, VARCHAR(SL.TBSPACE,30) AS LONG_SPACE, VARCHAR(SI.TBSPACE,30) AS INDEX_SPACE FROM SYSCAT.DATAPARTITIONS P JOIN SYSCAT.TABLESPACES SD ON SD.TBSPACEID = P.TBSPACEID LEFT JOIN SYSCAT.TABLESPACES SL ON SL.TBSPACEID = P.LONG_TBSPACEID LEFT JOIN SYSCAT.TABLESPACES SI ON SI.TBSPACEID = P.INDEX_TBSPACEID WHERE TABSCHEMA = '
SCHEMA_NAME
' AND TABNAME = 'TABLE_NAME
'"
テーブルスペースのコンテナの一覧表示
cast
コマンドを使用して、すべてのテーブルスペースコンテナまたは特定のテーブルスペースコンテナを一覧表示できます。
テーブルスペースのテーブルスペースコンテナを一覧表示するには
-
RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、Db2 データベースに接続します。次の例では、
rds_database_alias
、master_username
、master_password
をユーザー自身の情報に置き換えます。db2 connect to
rds_database_alias
usermaster_username
usingmaster_password
-
データベース内のすべてのテーブルスペースコンテナまたは特定のテーブルスペースコンテナのリストを返します。
すべてのテーブルスペースコンテナの場合:
db2 "select cast(member as smallint) as member, cast(tbsp_name as varchar(35)) as tbsp_name, cast(container_id as smallint) as id, cast(container_name as varchar(60)) as container_path, container_type as type from table(mon_get_container(null,-2)) order by member,tbsp_id,container_id"
特定のテーブルスペースコンテナの場合:
db2 "select cast(member as smallint) as member, cast(tbsp_name as varchar(35)) as tbsp_name, cast(container_id as smallint) as id, cast(container_name as varchar(60)) as container_path, container_type as type from table(mon_get_container('TBSP_1',-2)) order by member, tbsp_id,container_id"