【db2】表空间的管理,创建,维护


************************************************************************
  ****原文:blog.csdn.net/clark_xu 徐长亮的专栏
************************************************************************   
1 存储物理结构     

datapage数据页是db2的最小存储结构:有4KB8KB16KB32KB

操作系统的最小存储结构是块: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管理

                  最大的表空间扩大到8TB4KB),64TB32KB

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,代码集GBKterritoryCN

        对于有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 徐长亮的专栏
************************************************************************   





郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。