テーブルスペースの一般的なタスク - Amazon Relational Database Service

テーブルスペースの一般的なタスク

RDS for Db2 データベースのテーブルスペースを作成、変更、名前の変更、または削除できます。テーブルスペースを作成、変更、名前の変更、または削除するには、マスターユーザーが使用できない上位レベルの SYSADM 権限が必要です。代わりに、Amazon RDS ストアドプロシージャを使用します。

テーブルスペースの作成

RDS for Db2 データベースのテーブルスペースを作成するには、 rdsadmin.create_tablespace ストアドプロシージャを呼び出します。詳細については、IBM Db2 ドキュメントの「CREATE TABLESPACE statement」を参照してください。

重要

テーブルスペースを作成するには、テーブルスペースを関連付ける同じページサイズのバッファプールが既に存在している必要があります。詳細については、「バッファプールの一般的なタスク」を参照してください。

テーブルスペースを作成するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. 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」を参照してください。

テーブルスペースを変更するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. 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」を参照してください。

テーブルスペース名を変更するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. 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」を参照してください。

テーブルスペースを削除するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、rdsadmin データベースに接続します。次の例で、master_usernamemaster_password を自分の情報に置き換えます。

    db2 "connect to rdsadmin user master_username using master_password"
  2. rdsadmin.drop_tablespace を呼び出してテーブルスペースを削除します。詳細については、「rdsadmin.drop_tablespace」を参照してください。

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

テーブルスペースのステータスの確認

cast 関数を使用して、テーブルスペースのステータスを確認できます。

テーブルスペースのステータスを確認するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、Db2 データベースに接続します。次の例で、rds_database_aliasmaster_usernamemaster_password を自分の情報に置き換えます。

    db2 connect to rds_database_alias user master_username using master_password
  2. サマリー出力を返します。

    概要出力の場合:

    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 人またはすべてのメンバーのテーブルスペースに関する情報を返すことができます。

テーブルスペースに関する詳細情報を返すには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、Db2 データベースに接続します。次の例で、rds_database_aliasmaster_usernamemaster_password を自分の情報に置き換えます。

    db2 connect to rds_database_alias user master_username using master_password
  2. 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_NAMETABLE_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 コマンドを使用して、すべてのテーブルスペースコンテナまたは特定のテーブルスペースコンテナを一覧表示できます。

テーブルスペースのテーブルスペースコンテナを一覧表示するには
  1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、Db2 データベースに接続します。次の例では、rds_database_aliasmaster_usernamemaster_password をユーザー自身の情報に置き換えます。

    db2 connect to rds_database_alias user master_username using master_password
  2. データベース内のすべてのテーブルスペースコンテナまたは特定のテーブルスペースコンテナのリストを返します。

    すべてのテーブルスペースコンテナの場合:

    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"