【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 --查看表空间详细
2.查看容器
db2 list tablespace containers for 【容器ID】 show detail
例子:
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"
声明:书写博客不易,转载请注明出处,请支持原创,侵权将追究法律责任
个性签名:人的一切的痛苦,本质上都是对自己无能的愤怒
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!