第三章
数据库服务器的初始化
第一节
数据库服务器初始化时的考虑
用户在建立和初始化其
数据的时候,最重要考虑的问题是:
数据存储实体选用哪种方案,rawevice 还是cookedfile,是否对
数据库空间建立镜像,怎样建立?对于OnLine动态
服务器7.1的使用者 还可以考虑
数据库系统是否需要
数据复制的安全系统以及 如何建立
数据复制等等问题。
Raw device和cooked file对于OnLine来说其概念和管理是一致的,因此对较小的
数据库系统 其效果相差无几,但对大
数据库系统,由于cooked file采用unix的I/O机制,而raw device则采用On-Line自身的I/O机制,因此在效率上raw device会明显快于cooked file,且raw device的
数据安全性也 高于cooked file,假设用户不小心删除
数据储存实体chunk的文件名后,以cooked file方式定义的数 据库将被删除,而以raw device方式定义的
数据储存实体 Chunk 只是描述它的设备文件名被删除, 作为真正的存储
数据的
数据库空间并没有受到影响, 通过重新建立设备文件名的方法,该
数据储 存实体不难恢复,而 cooked file 则无法恢复。
另外从效率上考虑,Raw device的使用在unix系统上还有块设备和字符设备之分,用unix命 令ls-l列设备目录,我们可以看到,有些设备文件名的标识为b而另一些则为c,其中标识为c的设备 为字符设备,作为OnLine数据储存实体来说,字符设备更有利于发挥主机
服务器的DMA能力,所以 我们总是定义字符设备为
数据储存实体。
数据存储空间的镜像与
数据库服务器的复制是OnLine的
数据安全机制,我们将在
数据安全的章节中给以详细的讲述。
第二节 操作系统上的准备工作
在建立和初始化
数据库服务器系统的时候,需要作的准备工作有以下几点:
1 为
数据库所使用原始设备计划磁盘空间,并使得在UNIX操作系统上取得该原始设备的描 述。
2 修改INFORMIX环境下的配置文件$INFORMIXDIR/etc/sqlhosts和计算机系统对
网络节点、
网络端口的定义文件/etc/hosts、/etc/hosts.equiv和/etc/services。
$ vi $INFORMIXDIR/etc/sqlhosts
online7ontlitcpchangshasqlexec7
(虚拟
服务器名)(
网络协议类型)(主机名)(服务端口名)
#vi /etc/hosts
132.147.162.1changsha
(
网络结点)(主机名)
# vi /etc/hosts.equiv
changsha
(主机名)
#vi /etc/services
sqlexec78888/tcp
(服务端口名)(端口号)
3 调节操作系统的核心参数,以适应OnLine动态
服务器7.1对unix在共享内存及信号量等方面 的需要。
用系统提供的参数管理的工具 ( 例如SCO UNIX的sysadmsh)来进行调整。需要调整的参数也 因
数据库产品的版本不同而有所不同,具体可以在成功地安装了
数据库服务器后,查看$INFORMIX-DIR /release/ ONLINE_ 7.1中对操作系统参数要求的说明。
例如对于在SCO UNIX 3.2.4.2平台上使用OnLine7的用户, 需要调整的核心参数有SHM- MAX、SHMSEG、SHMMNI、SEMMNI和SEMMSL。因此用户可注册到 root,然后运行 sysad- msh ,在菜单中选择System,然后选择Configure,再选择Kernel,在Kernel选项中选择Parameter, 然后调 整第9项Shared Data中的参数SHMMAX、SHMSEG和SHMMNI以及第8项Semphore中的参数 SEMMNI和 SEMMSL,设置完毕后在Kernel选项中选择 Rebuild,重新构造unix引导核心。 然后退 出sysadmsh,并重新启动 unix。同时需要注意的是,在重新构造核心后,
数据库服务器存储 原始设 备名的属主和组定义的改变。
第三节 建立
数据在磁盘上组织实体
数据在磁盘上以
数据存储块的形式存在,但在逻辑上则是以
数据库空间的形式存在。 每 一个
数据库空间至少有一个
数据存储块,其中最先定义的
数据存储块为主
数据存储块,而其它的
数据存储块则为附加
数据存储块。同时在所有的
数据库空间中必定有一个根
数据库空间(rootdbs)。 建立
数据在磁盘上的组织实体是建立与逻辑概念的
数据库空间相对应的
数据存储块。
数据存储块 的组织方式 有两种:原始磁盘设备形式和 UNIX文件形式。相比起来,原始磁盘设备形式具有较 高的运行效率和可靠性,但是原始磁盘设备形式的
数据存储块的建立需要
数据库管理员对
数据库 服务器所运行的系统的磁盘设备的描述具有足够的知识和经验。
原始磁盘设备形式的
数据存储实体的建立方法是将一个特定的原始磁盘 (或部分磁盘) 用 UNIX的链接命令ln链接到一个便于记忆和管理的设备文件。例如在 AT&T SVR4系统中, 有一个 磁盘/dev/rdsk/c0t1d1,而定义中的原始磁盘设备名为rootdbs1,因此
数据库管理员以root用户注册, 然后用以下的命令来 构造
数据存储实体,
# cd $INFORMIXDIR
# ln /dev/rdsk/c0t1d1 rootdbs1
# chmod 660 rootdbs1
# chown informix rootdbs1
# chgrp informix rootdbs1
UNIX文件形式的
数据存储实体的建立方法是产生一个0字节的UNIX文件,使用命令如下:
# cd $INFORMIXDIR
# cat /dev/null > rootdbs1
# chown informix rootdbs1
# chgrp informix rootdbs1
第四节 建立
数据库服务器共享内存
至此,我们可以开始初始化
数据库服务器,以informix用户注册,用命令onmonitor命令。 在初始化前必须正确地定义了环境变量INFORMIXDIR、PATH和INFORMIXSERVER以及文件 $INFORMIXDIR/etc/sqlhosts、/etc/hosts、/etc/hosts.equiv和/etc/services。
首先注册到 informix,运行 onmonitor,在菜单中选择 Parameter,然后选择Initialize,便进 入
数据库空间初始化的屏幕。然后设置在屏幕上显示的参数。
---------------------------------------------------------------------------
INTIALIZATION: Make desired changes and press ESC to record changes.
Press Interrupt to abort changes. Press F2 or CTRL-F for field-level help.
DISK PARAMETERS
Page Size [ 2] Kbytes Mirror [N]
Tape Dev. [/dev/rct0 ]
Block Size [ 16] Kbytes Total Tape Size [ 150000] Kbytes
Log Tape Dev. [/dev/rct0 ]
Block Size [ 16] Kbytes Total Tape Size [ 150000] Kbytes
Boot Name [rootdbs ] Root Size [ 20000] Kbytes
Primary Path [/usr/informix/rootdbs1 ]
Offset [ 0] Kbytes
Mirror Path [ ]
Offset [ 0] Kbytes
Phy. Log Size [ 1000] Kbytes Log. Log Size [ 500] Kbytes
Number of Logical Logs [ 6]
---------------------------------------------------------------------------
第一屏设置完成后按ESC,onmonitor在完成
数据库空间初始化以后便接着要求用户设置共享内存。如果用户在以后需要调整共享内存时可以运行onmonitor,然后选择Parameters菜单,再选 择 Shared-Memory项。对于初次调整共享内存,用户需要注意的是Server Number是不可以重复