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

用于 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 支持 4KiB、8KiB 和 16KiB 页面的写入原子性。相比之下,32KiB 页面可能面临写入数据受到损坏 或部分数据写入桌面的风险。如果使用 32KiB 页面,我们建议启用时间点故障恢复和自动备份。否则,您将面临无法从损坏的页面中恢复的风险。有关更多信息,请参阅备份简介将 Amazon RDS 的数据库实例还原到指定时间

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 的缓冲池。表空间的初始表空间页面大小为 4096 字节,初始表空间为 1000KB,表大小增加设置为 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 | GNONE。默认为 NONE

reduce_max

指定是否将高水位降到其最大限制。数据类型为 char。默认为 N

reduce_stop

指定是中断前一个 reduce_max 命令还是 reduce_value 命令。数据类型为 char。默认为 N

reduce_value

减少表空间高水位所依据的数字或百分比。数据类型为 varchar。有效值:integer K| M | G1100。默认为 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 的表空间,并为名为 TESTDB 的数据库分配一个名为 BP8 的缓冲池以降低高水位。

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

以下示例在数据库 TESTDB 中名为 TBSP_TEST 的表空间上运行 REDUCE MAX 命令。

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

以下示例在数据库 TESTDB 中名为 TBSP_TEST 的表空间上运行 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')"