循序渐进DB2(第2版)-第3章 创建数据库和表空间

本文详细介绍了DB2数据库的创建、表空间设计以及管理策略,包括DMS与SMS表空间的区别、缓冲池的使用与维护、文件系统(CIO/DIO)和裸设备的选择。创建数据库时,DB2会创建默认表空间如SYSCATSPACE、TEMPSPACE1和USERSPACE1。表空间设计涉及DMS自动存储、系统管理、数据库管理的空间类型,以及如何通过EXTENTSIZEnumberofpages和PREFETCHSIZEnumberofpages等参数进行优化。此外,讨论了裸设备和文件系统CIO/DIO的性能影响,强调了合理设计缓冲池对提升数据库性能的重要性。

目录

3.1.创建数据库

3.1.1.DB2数据库存储模型

3.1.2.表空间管理类型

3.1.3.创建数据库

3.1.4.数据库目录

3.2.设计表空间

3.2.1.创建表空间

3.2.2.维护表空间

3.2.5.文件系统(CIO/DIO)和裸设备

3.2.5.1.裸设备

3.2.5.2.文件系统CIO/DIO

3.2.6.设置OVERHEAD和TRANSFERRATE

3.3.缓冲池

3.3.1.缓冲池的使用方法

3.3.2.缓冲池和表空间之间的关系

3.3.3.维护缓冲池


3.1.创建数据库

在DB2中,一个DB2实例可以同时管理多个DB2数据库,而一个DB2数据库只能由一个DB2实例管理,DB2数据库与DB2实例是一种松耦合的关系。在UNIX或Linux中,创建数据库所生成文件所属的用户和组都是DB2实例的所有者,即创建实例的用户和组;

DB2数据库实际上由对象集合组成,实际的数据库包含许多逻辑对象和物理对象:

①表、视图、索引、模式、触发器、存储过程、程序包等数据库对象;

②缓冲池、日志文件、表空间;

③物理存储、表空间容器、目录、文件系统或裸设备;

3.1.1.DB2数据库存储模型

DB2利用逻辑存储模型、物理存储模型来处理数据;

表table存放在表空间tablespace中,表空间tablespace是存放表table的容器,一个表空间里可以包含多个表,同时,表空间在物理上又对应着若干个表空间容器。

(可以这么理解:一个表空间tablespace可以存放多个表table,而一个表空间tablespace可以由多个物理设备共同构成

容器可以由目录名、裸设备名、文件名标识。容器被分配给表空间。表空间可以横跨多个容器,这就意味着可以突破操作系统对于一个容器可以包含的数据量的限制,这样一来,表空间就作为逻辑设计中的表、物理设计中的容器之间的桥梁,表通过表空间将数据存放到容器(文件或目录)中。

操作系统最小存储单位是块block,其中Linux和UNIX中最小的块是512B,Windows最小的存储单位是1KB,而数据库最小的存储单位是数据页datapage

DB2数据库中有4KB、8KB、16KB、32KB数据页,可以根据业务类型和表的大小来选择合适的数据页。

DB2数据库在写物理存储时,为了保证写的吞吐量,引入了更大的单位extent,其是datapge的整数倍大小,可以在创建表空间时指定extentsize,而表空间又是由多个extent组成,同时表空间又是由很多容器组成,它们之间的逻辑关系如下:

数据页datapage组成扩展数据块extent,扩展数据块extent组成容器container,容器container组成表空间table-space;

每次在写容器的时候,写的单位是扩展数据块extent,而extent大小可以在创建数据库和表空间的时候通过extentsize来指定,而extent又是由很多extentsize个数据页datapage组成(extentsize默认是datapge的32倍)。数据页datapage是DB2最小的存储单位,是每次读写的最小IO单位;

一个扩展数据块extent同时只能被一个表写,不可能两张表同时共用一个extent,因为写容器最小单位就是extent,当往表中插入数据的时候,如果发现没有空间了,那么DB2会为表分配extent。

3.1.2.表空间管理类型

DB2支持3种管理类型的表空间:

①系统管理的空间(System-Managed Space,SMS):由操作系统的文件系统管理器分配、管理的空间,在DB2 V9之前,如果不带任何参数创建数据库或者表空间,就会导致所有表空间作为SMS对象创建,SMS依赖底层的操作系统来进行空间管理。

②数据库管理的空间(Database-Managed Space,DMS):由DB2数据库管理程序控制存储空间,表空间容器可使用文件系统或者裸设备;

③DMS的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理DMS存储的不同方式,因为数据库管理的空间需要比较多的维护,因此在DB2 V8.2.2种引入了DMS自动存储来简化表空间管理;

下面介绍一下SMS、DMS、DMS自动存储的区别:

特性

SMS

DMS

DMS自动存储

是否条带化

默认类型

V8

V9

对象管理

操作系统

DB2

DB2

空间分配

按需增长/收缩

预先分配:大小可以收缩和增长,但是需要DBA干预

预先分配:可以自动增长

管理的简便性

最好,很少需要调优,甚至不需要

好,但

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值