【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 tablespace containers 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"

 

 

posted @ 2019-01-04 19:49  OLIVER_QIN  阅读(3739)  评论(0编辑  收藏  举报