【db2】表空间的管理,创建,维护
datapage数据页是db2的最小存储结构:有4KB,8KB,16KB,32KB
操作系统的最小存储结构是块:windows最小0.5KB,Linux最小1KB
extent域的大小,在创建数据库和表空间的时候通过extentsize指定,默认为32个数据页datapage组成;
每个表独享几个extent;
2表空间的管理
SMS,系统管理的空间:
由操作系统的文件管理器,管理和分配空间;依赖操作系统进行管理
DMS,数据库管理的空间:
DB2管理程序管理和分配空间;因此表空间可以使用裸设备,也可以实现文件系统;
DMS的自动存储:
SMS的管理,性能相对来说,不是很好;
特性 |
SMS |
DMS |
DMS自动存储 |
是否条带striping |
是 |
是 |
是 |
默认类型 |
v8 |
|
v9 |
空间分配 |
按需增长 |
预先分配,大小DBA可以干预 默认autoresize no |
预先分配,自动增长默认autoresize yes
|
性能 |
|
可以实现裸设备 |
不可以 |
管理对象 |
OS |
db2 |
db2 |
容器的更改 |
|
alter tablespace add/drop |
alter tablespace reduce |
SMS管理的限制:
最大在表空间中存放64GB数据(4KB页),512G数据(32KB)
DMS管理
最大的表空间扩大到8TB(4KB),64TB(32KB)
3创建数据库
默认创建库的位置:
C:\Program Files\IBM\SQLLIB\BIN>db2 get dbm cfg |find /i "DFTDBPATH"
缺省数据库路径 (DFTDBPATH) = C:
指定创建位置:
C:\Program Files\IBM\SQLLIB\BIN>db2"create database ibmdb1 on c:\db2"
SQL1047N 应用程序已经与另一个数据库相连。
自动管理:
create database mydb managed byautomatic storage;
SMS
managed by system
DMS
managed by database
3.1 代码页
通常设置为双字节代码DBCS
中文代码页1368,代码集GBK,territory为CN
对于有XML数据的应用,只有Unicode格式才能存储XML
create database xmldb using codesetUTF-8 territroy us;
3.2定义表空间
catalogtablespace
usertablespace
temporarytablespace
prefetchsize number of pages
执行数据库的时候预存,在实际引用之前加载,减少IO操作
而DFT_prefetch_sz代表在数据库触发遇到请求时候,每次读取多少个页面,可以摒弃的读取多个扩展数据块
例如
3.3建库语句
createdatabase mydb
def_prefetch_sz4
catalogtablespace managed by database
using(fle ‘data1/1.dbf’ 10G, file‘/data2/1.dbf’ 1G )
extentsize8
prefetchsize16
temporarytablespace managed by system
using(‘/data/tmp1.dbf’,’/data/tmp2.dbf’)
usertablespace mnaged by database
using(file ‘/data/user.dat’ 1G );
extentsize24
prefetchsize48
默认扩展数据块是4个页面;extentsize8会覆盖def_extent_sz
临时表空间又操作系统来管理;
3.4数据库目录
C:\DB2\NODE0000\SQL00001
SQLSPCS保存了表空间信息
SQLSGF 保存了自动存储管理的存储路径信息
SQLdbconf包含数据库配置信息,不能进行编辑,若要更改可以使用
updatedatabase configuration,reset database configuratrion语句
db1rhist.asc历史记录文件,
sqlogctl.glfh日志控制文件
系统崩溃时候,回退需要;
3.5维护表空间
db2list tablespaces show detail
表空间标识 = 3
名称 =IBMDB2SAMPLEREL
类型 = 数据库管理空间
内容 = 所有持久数据。大型表空间。
状态 = 0x0000
详细解释:
正常
总计页数 = 4096
可用页数 = 4064
已用页数 = 608
可用页数 = 3456
高水位标记(页) = 608
页大小(以字节计) = 8192
扩展数据块大小(页) = 32
预取大小(页) = 32
容器数 = 1
C:\ProgramFiles\IBM\SQLLIB\BIN>db2 "list tablespace containers for 3"
表空间 3的表空间容器
容器标识 = 0
名称 =C:\DB2\NODE0000\SAMPLE\T0000003\C0000000.
LRG
类型 = 文件
3.6优化raid上的表空间性能
如果strip大小为64KB,页大小为16KB,那么扩展快大小64KB* 4比较合适;
DB2_parallel_IO: automatic
************************************************************************ ****原文:blog.csdn.net/clark_xu 徐长亮的专栏 ************************************************************************
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。