使用DB2 V9进行非增量重定向还原(二)
表空间用来存储表,抽象物理存储,由一个或多个容器组成,也就是说表空间可以分布在一个或多个物理设备上。有4k、8k、16k、32k的四种页面大小的表空间。为了提高性能,可以将一个表的索引存储到另一个表空间,将大对象存储到第三个表空间,任何表的数据都循环存储在表空间的所有容器中;默认的表空间有:SYSCATSPACE(4K,存储系统目录和表)、TEMPSPACE1(4K,临时表空间)、USERSPACE1(4K,用户表空间)。
表空间的类型有四种:REGULAR(如USERSPACE1)、SYSTEM TEMPORARY(如TEMPSPACE1)、LARGE(用来存储LOB数据)、USER TEMPORARY(用来存储用户临时表)。
表空间按管理方式分为系统管理表空间(SMS:system manage space)和数据库管理表空间(DMS)。对于SMS表空间,每个容器都是操作系统的文件空间中的一个目录,由操作系统的文件管理器控制存储空间。对于DMS 表空间,每个容器或者是固定大小的预分配文件,或者是物理设备(例如,磁盘),由数据库管理器控制存储空间。
SMS表空间,其容器是文件系统的目录,是非预分配的,大小的限制为文件目录的大小,容器的个数在创建的时候决定,不能修改;如果使用SMS表空间,用户数据不能分开存储,也就是不能把用户数据分别存储在数据、索引、大数据表空间中。DMS表空间,其容器可是是file或raw devices ,其容器可以增加,修改,或改变大小;如果使用DMS表空间,用户数据可以分开存储,也就是可以把用户数据分别存储在INDEX,TABLE和LOB表空间中。
缓冲池是指从磁盘读取高速缓存表和索引数据页时或修改它们时分配给它们的主存储器。缓冲池的目的是改进系统性能。从内存访问数据要比从磁盘访问数据快得多,因此,数据库管理器需要读写磁盘(I/O)的次数越少,性能也越好。可以创建多个缓冲池,虽然在大多数情况下只需要一个,建议对每一种页大小的表空间分别建一个缓冲池。
缓冲池用来进行表或索引的缓存,一个数据库至少要有一个缓冲池 ,缓冲池的页大小可以是4k,8k,16k或32k; 表空间的页面大小要和缓冲池保持一致,缓冲池的目的是用来减少直接的I/O访问,提高I/O访问速度。默认的缓冲池为IBMDEFAULTBP(4K)。
在DB2 V9中如果想让数据库管理器自动调整缓冲池,首先数据库参数SELF_TUNING_MEM需要设置为ON,其次,缓冲池在创建的时候需要指定AUTOMATIC属性,比如创建缓冲池BP1,可以使用如下命令创建:
CREATE BUFFERPOOL "BP1" IMMEDIATE SIZE 250 AUTOMATIC PAGESIZE 4 K ;
对已经创建好的缓冲池如果也想让数据库管理器自动调整,可以用ALTER BUFFERPOOL命令修改,比如修改IBMDEFAULTBP缓冲池:ALTER BUFFERPOOL IBMDEFAULTBP IMMEDIATE SIZE 250 AUTOMATIC;
容器是物理存储设备。可以用目录名、设备名或文件名来标识它。可以为表空间分配容器,单个表空间可以横跨多个容器,但每个容器只能属于一个表空间。
对自动存储器数据库,创建表空间时,有两种存储器类型可以选择:
(1)DB2管理存储器(自动存储器)
(2)手工管理存储器
如果新建的表空间使用DB2管理存储器(自动存储器),根据要创建的表空间类型不同,其空间管理会有所区别,当其表空间类型是常规或者大型时,将自动创建成数据库管理空间(DMS), 当其表空间类型是系统临时或者用户临时时,将自动创建成系统管理空间(SMS)。使用自动存储,就不再需要担心如何添加容器以及监控容器的增长等,自动存储会自动增加表空间在磁盘和文件系统上的大小。
如果新建的表空间是使用手工管理存储器,其空间管理又分系统管理空间(SMS)和数据库管理空间(DMS)两种方式。对于使用自动存储功能的表空间,其容器和空间管理完全由DB2数据库管理器确定,因此,系统管理空间(SMS)和数据库管理空间(DMS)只在使用手工管理存储器的表空间中会直接用到,在使用自动存储器功能的表空间中不会直接用到。同样,容器的定义和管理也只在使用手工管理存储器的表空间中会直接用到,在使用自动存储器功能的表空间其容器完全由DB2数据库管理器确定。