Informix数据库培训教材(上)
Dump Core [N] Dump Count [ 1 ] Dump Directory [/tmp ] Enter pathname for Online message log
◆ 诊断参数
Message Log [/usr/informix/online.log ] 系统消息日志文件路径 Console Msgs. [/dev/console ] 系统控制台信息路径
Alarm Program [/usr/informix/log_full.sh] 报警程序路径及名称
●以下的初始化设置采用系统默认的配置即可 按ESC 键确认直到出现提示: Do you really want to continue? (y/n) WARNING :The ROOT Dbspace will be initialized. All precious data will be destroyed. 键入y即开始初始化。
●初始化完毕后回到菜单:
PARAMETERS: Initialize Shared-Memory perFormance Data-Replication diaGnostics pdQ Add-Log Drop-Log Physical-Log Exit Initialize root dbspace and shared memory configuration. ----------------------Quiescent-------Press CTRL-W for Help.
此时选择exit退出。
9.模式转换
数据库在刚初始化后处于Quiescent (静态)的模式,在使用时应使之处于online (联机)模式。用以下两种方法可实现切换: 采用命令:# onmode—ky ; oninit 采用菜单:onmonitor—mode—online
10.增加开、关机引导程序
◆ 开机自引导程序
系统启动后,为了使数据库能够正常工作,在对数据库操作之前,必
11
Informix数据库培训教材(上)
须使用命令oninit 对数据库进行共享空间的初始化。通常可以将对INFORMIX 数据库系统共享内存的初始化工作放到UNIX 的启动程序中,一般在/etc/rc 2.d目录下增加启动程序S90oninit ,完成INFORMIX数据库系统的初始化工作。S90oninit 文件的内容为:
echo ―INFORMIX-ONLINE : oninit---‖ /usr/Informix/bin/oninit
if [ $? -eq 0 ]
then echo ―okay!‖
else echo ―fail!‖ fi
编辑完此文件后,在执行如下命令为此文件增加可执行权限:
# chmod +x S90tbinit
◆ 增加关机自引导文件
为了数据的安全,我们在关机之前,应该使用onmode 命令将数据库共享空间关闭。为方便起见,我们一般在/ etc/rc0.d 目录下增加一个文件: K01onmode。 文件的内容可以如下:
Echo ―INFORMIX-ONLINE: onmode---‖
/usr/informix/bin/onmode –ky
if [ $? -eq 0 ]
then echo ―OKEY!‖
else echo ―FAIL!‖
fi
编辑完此文件后,在执行如下命令为此文件增加可执行权限:
# chmod +x 01tbmode
11.运行检查
至此online数据库的初始化就完成了,可以使用dbaccess 检查运行情况。
12
Informix数据库培训教材(上)
第三章informix_online 动态服务器组织结构
一、 数据库服务器的组成
动 态 服 务 器 体 系 结 构 共 享 内 存 驻 留 段 缓 冲 区 和 其 它 数 据 结 构 虚拟段用于对话过程和线索的 内存池 磁 盘 消息段用于C/S间利用共享内存的通讯 缓冲区 进 程 Oninit---虚拟处理器 Oninit---虚拟处理器 Oninit---虚拟处理器
动态服务器系统由三个主件构成:
●online 共享内存
●数据库服务器守护进程
●online 数据在磁盘上的存储。
共享内存包括三个段:
●驻留段: 驻留段主要用做磁盘的缓冲。
●虚拟段: 虚拟段用做内存池以支持进程及相关的会话和线索。 ●消息段: 消息段在客户与服务器通讯时做两者间的消息缓冲区。
系统中还包括若干构成数据库服务器的UNIX进程,称为oninit。这些进程被称为虚拟处理器具(VP)。每一VP 隶属于某一虚拟处理器类。而每一处理器类都负责完成一类特殊的任务。
系统的磁盘组件由多个原始磁盘空间组成,称为 chunk 。Chunk 以页(page)为基本单位。多个chunk 的集合逻辑上构成数据库空间 dbspace。数据库空间用于存储数据库、表、系统信息以及物理日志和逻辑日志。一个数据库空间至少包括一个chunk 。
13
Informix数据库培训教材(上)
二、磁盘数据组织结构 数据库 (database ) 数据库空间 ( dbspace ) 数据存储块 (chunk) 镜像数据存储块 (mirror) 数据表 (table ) 数据表空间 (tblspace) 数据连续页 (extent) 记录本 (row) 数据页码 (page)
在动态服务器中以页(page)为基本存储和I/O单位。一个chunk的所有空间都以
页为基本单位进行划分。页大小因机器和操作系统的不同而不同,一般为2K,也可能为4K。它的大小与数据在共享内存中数据缓冲区相一致,所以用户无法改变页的大小。
数据连续页 (extent)是将若干个物理磁盘上连续的页的组成一个数据连续页,以提高数据操作的效率。当用户创建一个表时,online以数据连续页为单位在数据存储块中分配一个连续的空间。
分配给系统使用的连续空间的单位称为 数据存储块 ( chunk )。 Informix-online 的数据存放在Chunk 中。Chunk由多个页组成,是online数据存储的最大物理单位。Chunk的大小有管理员设定。它有两种构造方法:其一是直接构造在物理磁盘上,其二是构造在操作系统的文件上。在第一种情况下,操作系统仅仅定义了这个块,但没有格式化这块磁盘。因此再这上面所有操作都由online来完成,操作系统对它不存在任何管理,数据空间在物理上连续,这种数据空间称为原始空间 raw space 而在第二种情况下,操作系统不仅定义还管理这个数据库空间(文件)、数据文件操作时的内存缓冲、输入与输出。数据空间的建立受操作系统的约束,因此是不连续的。这种数据库空间称为非原始设备cooked space 。比较这两种数据的存储空间,后一种在磁盘上不连续,存在着操作系统的缓冲和输入输出的制约,因此在实际应用中,采用原始效率要高于非原始设备。
镜像存储块 (mirror)用于提高数据的可靠性。数据写入时同时写入到chunk 和mirro 中。当online运行时 chunk 发生故障,具有镜像的数据库空间还能继续运行并在适当的时候恢复存在故障的数据存储块所在的磁盘。
数据库空间隔(dbspace ) 是一个或多个 chunk 的逻辑组合。每一数据库空间至少要包含一个 chunk 。数据库和表创建在指定的数据库空间上。系统至少要包含一个数据库空间:根数据存储块 root dbspace 。其它的则是后继数据存储块。在根数据存储块中除了能够存储用户数据外,还具有管理本数据空间的功能,在该空间中存储着所有关于系统的信息。为了提高数据库系统的运行效率,informix 动态服务器7.1 版本中引入了临时数据库的概念。在以往的数据库服务器中,临时数据建立在根数据空间中,其频繁的增加和
14
Informix数据库培训教材(上)
删除会造成许多碎片并降低操作系统的效率,而且数据务份时,临时数据也一起备份,增加了备份量,降低了备份效率。引入临时数据空间后,用户的临时数据或者数据操作的中间结果将存放在临时数据空间中,同时临时数据将不参与数据备份。
数据表空间tblspace。 在逻辑上,数据库存在于数据空间 dbspace 中,数据表存在于数据表空间 tblspace 中,数据库空间是由数据存储块组成,数据表存在于这些数据存储块中,数据表空间是由连续存放该数据表记录的数据连续页组成。Online 5 不支持数据表跨越数据库空间存放。在 informix dynamic server 7 中开始允许一个数据表跨越数据库空间存放。这样利用计算机输入输出的并行操作能力,可以同时扫描一个数据表的不同的记录,使得数据表顺序读写的速度大大提高。
三、 共享内存数据组织结构 动态服务器共享内存 驻留段 缓冲区 逻辑日志缓冲区 物理日志缓冲区 逻辑日志缓冲区 其它数据结构 物理日志缓冲区 逻辑日志缓冲区 虚拟段 通讯段 过程池 大缓冲池 MT池 通讯缓冲池 会话池 Light Scan池 排序池
共享内存是指为多个online 用户进程所共同使用的内存段,进程间通讯可以借助它来完成。借助进程间通讯比那些服务器进程各自维护其私有备份的系统有两个好处:1.减少磁盘的I/O次数,因为缓冲区作为一个公共池被管理,对于缓冲区的整个操作也是在系统范围内进行的,而不是每个进程都要依次刷新操作;2.减少了执行时间,因为共享内存仅维护一份数据页或索引页的副本,进程无须为了确保数据是最新的而再读一次缓冲区。
Informix 的动态服务器的共享内存在Informix-online 5 的基础上又增加了两个模块。在online-5 中共享内存中只有驻留段一个区域。动态服务器在其基础上还增加了虚拟区的通讯区。对于驻留区 online-5 通过闩表来控制多个服务进程对数据库系统的并发操作,由于动态服务器采用进程的多线索控制机制来管理多个用户并发数据库系统的访问,因此闩表对于动态服务器来
15