資料表空間的常見任務 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

資料表空間的常見任務

您可以為 RDS 的 Db2 資料庫建立、變更、重新命名或捨棄資料表空間。建立、變更、重新命名或捨棄資料表空間需要更高層級SYSADM的授權,主要使用者無法使用。請改用 Amazon RDS預存程序。

建立資料表空間

若要為RDS適用於 Db2 資料庫的 建立資料表空間,請呼叫rdsadmin.create_tablespace預存程序。如需詳細資訊,請參閱 CREATE TABLESPACE 中的 陳述式 IBM Db2 文件中)。

重要

若要建立資料表空間,您必須具有相同頁面大小的緩衝集區,才能與資料表空間建立關聯。如需詳細資訊,請參閱緩衝集區的一般任務

建立資料表空間
  1. 使用RDS適用於 Db2 rdsadmin 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,取代 master_username 以及 master_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適用於 Db2 資料庫的資料表空間,請呼叫rdsadmin.alter_tablespace預存程序。您可以使用此預存程序來變更資料表空間的緩衝集區、降低高浮水印,或讓資料表空間上線。如需詳細資訊,請參閱 ALTER TABLESPACE 中的 陳述式 IBM Db2 文件中)。

若要變更資料表空間
  1. 使用RDS適用於 Db2 rdsadmin 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,取代 master_username 以及 master_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適用於 Db2 資料庫的資料表空間名稱,請呼叫rdsadmin.rename_tablespace預存程序。如需詳細資訊,請參閱 RENAME TABLESPACE 中的 陳述式 IBM Db2 文件中)。

重新命名資料表空間
  1. 使用RDS適用於 Db2 rdsadmin 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,取代 master_username 以及 master_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適用於 Db2 的資料庫捨棄資料表空間,請呼叫rdsadmin.drop_tablespace預存程序。在捨棄資料表空間之前,請先捨棄資料表空間中的任何物件,例如資料表、索引或大型物件 (LOBs)。如需詳細資訊,請參閱中的捨棄資料表空間 IBM Db2 文件中)。

若要捨棄資料表空間
  1. 使用RDS適用於 Db2 rdsadmin 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中,取代 master_username 以及 master_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. 使用適用於 Db2 資料庫執行個體的主使用者名稱和主密碼連線至您的 RDS Db2 資料庫。在下列範例中,取代 rds_database_alias, master_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. 使用適用於 Db2 資料庫執行個體的主使用者名稱和主密碼連線至您的 RDS Db2 資料庫。在下列範例中,取代 rds_database_alias, master_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_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命令列出所有資料表空間容器或特定資料表空間容器。

列出資料表空間的資料表空間容器
  1. 使用適用於 Db2 資料庫執行個體的主使用者名稱和主密碼連線至您的 RDS Db2 資料庫。在下列範例中,取代 rds_database_alias, master_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"