2008年(239)
分类: DB2/Informix
2008-06-18 00:38:15
INFORMIX数据库系统使用单实例多数据库模式,采用多进程、多线程系统结构。由于进程相对于数据库系统就好比CPU相对于计算机一样,因此在INFORMIX系统中,进程被称为虚拟处理器(virtual processor,VP)。之所以称为虚拟处理器,表明它并不是物理上的处理器。整个系统的体系结构见图1-5。
一个INFORMIX系统实例需要启动的进程包括:CPU、AIO、LIO、PIO、ADM、SCO等,需要为实例分配的内存空间包括:常驻部分(缓冲池、锁表、逻辑日志缓冲区、物理日志缓冲区)、虚拟部分(字典高速缓冲、线程会话信息、SQL语句缓冲区)、虚拟扩展部分、通讯部分、VP专用部分。数据库的存储结构包括:配置文件、大块、归档日志文件等,这些存储空间在实例创建时建立,可以在运行过程中给数据库增加大块。
在INFORMIX系统的一个实例中,存在多个数据库,分为系统数据库和用户数据库。系统数据库在实例初始化时自动创建,存放实例级别上的监控信息、数据字典信息,用户能够访问而不能修改这些数据。一个实例需要创建的系统数据库有:sysmaster和sysutils。用户数据库由用户根据需要创建,存放用户数据以及和该数据库有关的数据字典信息。
INFORMIX系统实例的数据库和数据库之间,关系比较紧密,这主要体现在:
(1)共用实例进程、线程模块。实例的进程和线程可以访问和处理所有数据库中的数据,用户对数据库的访问就通过这些进程和线程完成。实例的进程和线程在实例运行时被启动。
(2)共用系统内存空间。用户要处理数据库中的数据,首先要将它们读入内存,存放在为实例分配的系统内存空间中。实例的系统内存空间为所有数据库所使用,在实例运行时被分配。
(3)共用存储空间。实例中用来存放数据的表空间,可以为所有数据库使用。一个数据库可以跨越多个表空间,而一个表空间也可以存放多个数据库的数据。
(4)共用数据库日志文件。在实例中被处理事务所产生的所有日志信息,存放在共同的日志文件中,这些事务所处理数据可以来自任何数据库。
在启动实例时,系统根据配置信息,启动实例需要的各种进程(如:CPU、AIO等),分配共享内存空间(如:常驻部分、虚拟部分等),并同时打开所有数据库。另外,实例的表空间,建立在大块(chunk)上,大块可以是操作系统文件、裸设备。