DB2 Tablespace
SMS, DMS,自动存储区别:
当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区别:
扩容: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
特性 | SMS | DMS | 自动存储 |
是否分段(Striping)? | 是 | 是 | 是 |
默认类型 | Version 8 | 无 | Version 9 |
对象管理 | 操作系统 | DB2 | DB2 |
空间分配 | 按需增长/收缩 | 预先分配;大小可以收缩和增长,但是需要 DBA 干预。 | 预先分配;可以自动增长。 |
管理的简便性 | 最好;很少需要调优,甚至不需要 | 好,但是需要一些调优(例如,EXTENTSIZE PREFETCHSIZE ) | 最好;很少需要调优,甚至不需要 |
性能 | 非常好 | 最好;可通过利用原始容器多获得 5% 到 10% 的收益 | 最好;但是,可以不使用原始容器 |
表空间最大大小 | 64GB(4K 页面) | 2TB(4K 页面) | 2TB(4K 页面) |
特性 |
非自动存储
| 自动存储 |
容器的创建 | 必须在创建表空间时显式地提供容器。 | 不能在创建表空间时提供容器;它们将由 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
Post a Comment