表空间的常见任务 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

表空间的常见任务

您可以为 RDS for Db2 数据库创建、更改、重命名或删除表空间。创建、更改、重命名或删除表空间需要更高级别的 SYSADM 权限,而主用户无法获得该权限。而应使用 Amazon RDS 存储过程。

创建表空间

要为您的 RDS for Db2 数据库创建表空间,请调用 rdsadmin.create_tablespace 存储过程。有关更多信息,请参阅 IBM Db2 文档中的 CREATE TABLESPACE 语句

重要

要创建表空间,您必须具有相同页面大小的缓冲池才能与表空间相关联。有关更多信息,请参阅 缓冲池的常见任务

创建表空间
  1. 使用 RDS for Db2 数据库实例的主用户名和主密码连接到 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 语句

更改表空间
  1. 使用 RDS for Db2 数据库实例的主用户名和主密码连接到 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 语句

重命名表空间
  1. 使用 RDS for Db2 数据库实例的主用户名和主密码连接到 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 文档中的删除表空间

删除表空间
  1. 使用 RDS for Db2 数据库实例的主用户名和主密码连接到 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 数据库实例的主用户名和主密码连接到您的 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. 使用 RDS for Db2 数据库实例的主用户名和主密码连接到您的 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_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 数据库实例的主用户名和主密码连接到您的 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"