DB2 Tablespace

SMS, DMS,自动存储区别:
特性SMSDMS自动存储
是否分段(Striping)?
默认类型Version 8Version 9
对象管理操作系统DB2DB2
空间分配按需增长/收缩预先分配;大小可以收缩和增长,但是需要 DBA 干预。预先分配;可以自动增长。
管理的简便性最好;很少需要调优,甚至不需要好,但是需要一些调优(例如,EXTENTSIZE PREFETCHSIZE最好;很少需要调优,甚至不需要
性能非常好最好;可通过利用原始容器多获得 5% 到 10% 的收益最好;但是,可以不使用原始容器
表空间最大大小64GB(4K 页面)2TB(4K 页面)2TB(4K 页面)
 当DMS,SMS存在多个容器的时候,最大存储量为最小容器乘以容器个数例如:create tablespace sales pagesize 4096 managed by database using(file 'd:\tbsp1.tsf' 10G, file 'd:\tbsp2.tsf' 6G, file 'd:\tbsp3.tsf' 4G) extentsize 32 prefetchsize 96这样最大存储为4X3=12G 扩容: 自动存储与DMS区别:
特性
非自动存储
自动存储
容器的创建必须在创建表空间时显式地提供容器。不能在创建表空间时提供容器;它们将由 DB2 自动地分配。
容器大小的调整在默认情况下,表空间大小的自动调整是关闭的(AUTORESIZE NO)。在默认情况下,表空间大小的自动调整是打开的(AUTORESIZE YES)。
初始大小不能使用 INITIALSIZE 子句指定表空间的初始大小。使用 INITIALSIZE 子句指定表空间的初始大小。
容器的修改可以使用 ALTER TABLESPACE 语句(ADD、DROP、BEGIN NEW STRIPE SET 等等)执行容器操作。不能执行容器操作,因为由 DB2 控制空间管理。
管理的简便性可以使用重定向的恢复操作重新定义与表空间相关联的容器。不能使用重定向的恢复操作重新定义与表空间相关联的容器,因为由 DB2 控制空间管理。

扩容:SMS:        给表空间添加新文件
DMS:        给表空间添加容器
自动存储:给数据库添加存储 alter database add storage <directory>

相关操作进入command命令行:db2

表空间
查看表空间:
db2 list tablespaces
db2 list tablespaces show detail / db2 get snapshot for tablespaces on <dbname>

查看表空间使用率:
1. select TABLESPACE_NAME,TOTAL_PAGES,USED_PAGES,FREE_PAGES,rtrim(char(USED_PAGES*100/TOTAL_PAGES))||'%' as USED_RATE,rtrim(char(FREE_PAGES*100/TOTAL_PAGES))||'%' as Free_RATE from table (SNAPSHOT_TBS_CFG('COMMERCE', -1)) t

2. select substr(tbsp_name,1,18), tbsp_type,tbsp_free_size_kb,tbsp_utilization_percent from sysibmadm.tbsp_utilization

创建表空间
自动存储:create tablespace <tablespace name> [managed by automatic storage]
create tablespace <tablespace name> initialsize <size> increasesize <size> maxsize <size> autoresize <yes> pagesize 32k
例如:create tablespace ts_name initialsize 10M increasesize 10M maxsize 100M

查看db2相关路径
db2 list db directory

例如:
su - db2inst1
db2
create tablespace ts1 managed by automatic storage

SMS:create tablespace 表空间名 managed by system using ('path')

例如:
su - db2inst1
cd /tmp
mkdir db2data
db2
create tablespace ts1 managed by system using ('/tmp/db2data')
DMS:create tablespace 表空间名 managed by database using (file 'filename' size)
或者
create tablespace 表空间名 managed by database using (device)

例如:
su - db2inst1
cd /tmp
mkdir db2data
db2
create tablespace ts1 managed by database using (file '/tmp/db2data/ts1' 1000)

DMS自动扩展:autoresize yes

删除表空间:drop tablespace 表空间名
删除SMS表空间需要手工删除文件

修改表空间:alter tablespace 表空间名 resize
例如:
放大:alter tablespace ts1 resize (file '/tmp/db2data/ts1' 2000)
缩小:alter tablespace ts1 resize (file '/tmp/db2data/ts1' 500)

alter tablespace 表空间名 add (file 'filename' size)
例如:alter tablespace ts1 add (file '/tmp/db2data/ts2' 1000)

alter tablespace 表空间名 drop(file 'filename')
例如:alter tablespace ts1 drop(file '/tmp/db2data/ts2')

临时表空间:系统临时表空间:
创建:create system temporary tablespace 临时表空间名 managed by system using ('path')
例如:create system temporary tablespace tmp_1 managed by system using ('/tmp/db2data')
删除:drop tablespace 临时表空间名

用户临时表空间:
创建:create user temporary tablespace 临时表空间 managed by database using (file 'filename' size)
例如:create user temporary tablespace tmp_1 managed by database using (file '/tmp/db2data/tmp' 1000) 
删除:drop tablespace 临时表空间名

创建32k表空间:1. 创建32k缓冲池:db2 create bufferpool <bufferpool_name> size <number of pagesize> pagesize 32k;
例如:db2 create bufferpool bp32k size 2000 pagesize 32k

2. 创建32k表空间:db2 create tablespace <tablespace_name> pagesize 32k bufferpool <bufferpool_name> initialsize <size> increasesize <size>
例如:db2 create tablespaces t32k pagesize 32k bufferpool bp32k initialsize 1000M increasesize 100M

指定表空间创建表:
create table <table_name> ( <column_name>  <column type>,.... ) in <tablespace_name>
例如:create table test (id integer, name varchar(10)) in t32k

Comments

Popular posts from this blog

Nginx Proxy & Load Balance & LNMP

Snort+barnyard2+Snorby CentOS 6.5_64 Installation

ORACLE Error