【DB2】表空间相关详细说明

-、创建表空间

1.创建用户表空间

声明:在指定表空间创建路径的时候,需要指定空文件夹,非空文件夹会导致创建报错!!!如果文件夹不存在,那么在创建表空间的时候会自动创建文件夹!

1.1 创建SMS表空间

CREATE TABLESPACE <NAME> MANAGED BY SYSTEM USING ('<path>')

例子:db2 "create tablespace tbs1 managed by system using ('/db2home/db2inst1/db2inst1/NODE0000/QINDB/tb_dm1')"


1.2 创建DMS表空间

CREATE TABLESPACE <NAME> MANAGED BY DATABASE USING (DEVICE|FILE'<path>')

例子:db2 "create tablespace tbs2 managed by database using (FILE '/db2home/db2inst1/db2inst1/NODE0000/QINDB/tb_dm' 100M)"


1.2 创建自动存储器表空间

CREATE TABLESPACE <name>

CREATE TABLESPACE <name> MANAGED BY AUTOMATIC STORAGE


2.创建临时表空间

系统临时表空间用来存储分组、排序、连接、重组、创建索引等中间结果。数据库中至少有一个这样的表空间。创建数据库的时候默认表空间之一便是名为TEMPSPACE1的系统临时表空间

CREATE SYSTEM TEMPORARY TABLESPACE <NAME> MANAGED BY DATABASE USING ('<path1>',<path2>')

例子:db2 "CREATE SYSTEM TEMPORARY TABLESPACE tbs_tmp MANAGED BY SYSTEM  USING ('/db2home/db2inst1/db2inst1/NODE0000/QINDB/tmp1','/db2home/db2inst1/db2inst1/NODE0000/QINDB/tmp2')"


3.创建用户临时表空间

用户临时表空间不是在创建数据库时默认创建的,用户临时表空间通常用来批量插入、批量删除、批量更新以加快速度。

CREATE USER TEMPORARY TABLESPACE tbs1_tmp MANAGED BY DATABASE  USING (FILE '<path1>' size)

例子:db2 "CREATE USER TEMPORARY TABLESPACE tbs1_tmp MANAGED BY DATABASE  USING (FILE '/db2home/db2inst1/db2inst1/NODE0000/QINDB/tmp3' 5000)"

上述语句表示:建立一个5000页的用户临时表空间



二、表空间维护

1.查看表空间

db2 list tablespaces --粗略查看表空间

或者

db2 list tablespaces show  detail --查看表空间详细

image

2.查看容器

db2 list tablespaces for 【容器ID】 show detail

例子:

image

3.缩小表空间容量

ALTER TABLESPACE <name> REDUCE (FILE '<path>' 10M)"

例子:db2 "ALTER TABLESPACE tbs2 REDUCE (FILE '/db2home/db2inst1/db2inst1/NODE0000/QINDB/tb_dm' size)"

4.扩大表空间容量

ALTER TABLESPACE <name> RESIZE (FILE '<path>' 10M)"

例子:db2 "ALTER TABLESPACE tbs2 RESIZE (FILE '/db2home/db2inst1/db2inst1/NODE0000/QINDB/tb_dm' 200M)"

5.添加容器

ALTER TABLESPACE <name> ADD(FILE '<path>' size)

例子:db2 "ALTER TABLESPACE tbs2 ADD(FILE '/db2home/db2inst1/db2inst1/NODE0000/QINDB/tmp1.LRG' 150M)"

6.删除容器

在上述创建的表空间tbs_tmp中存在两个容器,现在我们删除容器

ALTER TABLESPACE <name> DROP(FILE '<path>')

例子:db2 "ALTER TABLESPACE tbs2 DROP(FILE '/db2home/db2inst1/db2inst1/NODE0000/QINDB/tmp1.LRG')"

7.更改表空间表名称

RENAME TABLESPACE 原表空间名 to 新表空间名

例子:db2 "rename tablespace tbs2 to tbs2_tmp"

































猜你喜欢

转载自www.cnblogs.com/OliverQin/p/10222137.html