2008年(239)
分类:
2008-06-18 00:39:28
DB2数据库系统使用单实例多数据库模式,采用多进程体系结构,所有的功能模块使用进程来实现的。整个系统的体系结构见图1-3(图中只画出整个实例的一个数据库)。
一个DB2系统实例需要启动的进程包括:(1)代理、监听进程等,这些进程在数据库管理器运行时启动;(2)异步预取、页清除、检查点、日志写进程等,这些进程在数据库运行时启动。需要为实例分配的内存空间包括:数据库管理器共享内存(在数据库管理器运行时分配)、进程专用内存(在代理、监听、异步预取、页清除等进程启动时分配)、数据库全局内存(在数据库运行时分配)。一个数据库的存储结构包括:配置文件、历史文件、容器、日志文件等,这些存储空间在数据库创建时建立,可以在运行过程中给数据库增加容器。
在一个DB2系统的实例中,可以创建多个数据库。数据库和数据库之间互相隔离,互不影响,这主要体现在:
(1)每个数据库有单独的进程,如:异步预取、页清除等,执行本数据库的相关操作。
(2)每个数据库有单独的内存结构(数据库全局内存),存放本数据库运行过程中要处理的数据及控制信息。
(3)每个数据库单独保存和维护自己的数据字典、用户数据,所有的存储资源,如:表空间、容器等,不能在多个数据库之间共享。
(4)每个数据库有单独的配置文件,可以根据需要对本数据库进行设置,使本数据库具有不同于其它数据库的运行特性。
(5)每个数据库有单独的日志文件,存放本数据库中事务所产生的所有日志信息。
由于以上原因,DB2系统还存在一个数据库管理器,用来管理和监控所有数据库及整个实例的运行。在每一次启动数据库系统实例时,首先要启动数据库管理器。数据库管理器的启动,将获取以下资源:
(1)启动监听、代理、监控进程等。监听进程接受客户端的访问请求,然后交给代理进程处理;监控进程监测所有数据库的运行状况并记录相关信息。
(2)获取内存空间。为要启动的进程分配专用内存空间,创建数据库管理器使用的共享内存。
在数据库管理器正常启动后,可以使用以下两种方式启动数据库:
(1)手工启动。使用命令,激活要启动的数据库。在数据库不再被使用后,仍旧需要使用命令关闭数据库。
(2)自动启动。在第一次接收到用户对数据库的连接请求后,系统就自动激活对应的数据库。在数据库的所有连接都断开之后,系统就自动关闭数据库。
在数据库的启动过程中,需要为数据库启动相关进程、分配共享内存空间,然后将相关数据字典信息读入内存。由于这些原因,为避免第一次访问数据库时的较慢响应,可以在数据库管理器正常启动后,手工启动数据库。
整个DB2系统的配置参数可以在数据库管理器、数据库两个级别上设置,数据库管理器的配置在整个实例上起作用。
数据库中用来存放数据的表空间,建立在容器上,容器可以是目录、操作系统文件、裸设备。
此外,DB2系统还有一个管理服务器,用来方便客户端管理软件对数据库服务器的访问,运行定时执行的程序脚本。该DB2系统部件是可选的,我们这里不再深入讲述。