informix 安装说明


自informix5.x以后,INFORMIX公司推出新一代数据库引擎ONLINE DYNAMIC SERVER动态服务,一般我们简称ONLINE7.x,ONLINE是一个关系数据管理(RDBMS), 它的任务是提供一个存储、检索、修改和删除数据的环境,它的目标就是使多个物理CPU和大量内存的计算机创建高性能和高稳定性的操作环境,所以ONLINE7.X广泛运用于银行、保险、电信、邮电等对于速度和安全性较高的部门。

一. Informix7.30 的安装

1. 建立 infomix 组和 informix 用户

  1. 以 root 用户登录

  2. 使用 SCOADMIN 系统命令建立组名为 "informix", 用户名为 "infomix" 的用户 , 其 "home directory" 缺省为 "/usr/informix", 在这里我使用缺省值。

2. 产品的安装

  1. 以 informix 用户登录系统 , 编辑 .profile 所需的环境变量 :

INFORMIXDIR=/usr/informix

INFORMIXSERVER= 服务器名 ( 例如 mzd2002)

ONCONFIG= 配置文件名(例如 onconfig.mzd2002 )

LD_LIBRARY=$INFORMIX/lib:$INFORMIXDIR/lib/esql

PATH=$INFORMIX/bin:$INFORMIX/lib:$PATH

Export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH LD_LIBRARY

注:这里最重要的两个参数为 INFORMIXSERVER 和 ONCONFIG 文件 ( 存放在 $INFORMIXDIR/etc 下 ).

  1. 执行 ./.profle 使上述设置的环境变量生效。

  2. 安装 INFORMIX-SQL 、 INFORMIX-4GL 、 INFORMIX-IDS7.3 ,请严格按以上步骤安装 ( 我就曾经没按照顺序安装 , 结果最后 ONLINE 怎么也启动不了 , 而且报错也是莫名其妙 ,"CAN'T FIND MESSAGE FILE AND DBLANG").

4 )以 root 用户登录并插入 SQL 光盘

mount /dev/cd0 /mnt

tar xvf /mnt/SQL.TAR

./installsql

输入许可证提供的序列号,如: INF#Xxxxxxx

输入许可证提供的 KEY :如 AAABBB

注意必须是大写字母

unmount /mnt

插入 4GL 光盘

mount /dev/cd0 /mnt

tar xvf /mnt/4GL.TAR

./install4gl

unmount /mnt

插入 IDS7.30 光盘

mount /dev/cd0 /mnt

cpio -icvudmB< /mnt/SERVER/IDS.CPI

./installserver

unmount /mnt

注 : 先安装工具软件 , 后安装 server; 先安装低版本 , 后安装高版本 ; 在 root 下安装。

3 .准备 Informix 初始化环境。

1 ) 编辑 /etc/hosts 文件,登记网络各机器的名字及网络地址

例如:

IP 地址 主机名

82 . 17 . 32 . 5 (本机) informix_server1

82 . 17 . 32 . 8 informix_client1

2 ) 修改 /etc/services ,增加 informix 服务端口名

例如:

online_service 8000/tcp #informix

其中 ,online_service 是 informix 服务名 ,8000 为端口号 ,tcp 为传输协议 , 该端口号必须唯一 , 如果和其它端口号有冲突 , 可以修改。

  1. 编辑 $INFORMIXDIR/etc/sqlhosts 文件

picc onipcshm informix_server1 sqlexec

tcp ontlitcp informix_server1 online_service

第一行 picc 为 INFORMIX-ONLINE 的 server 名, onlipcshm 是共享内存方式连接(只限本地), informix_server1 是本地主机名 (hostname),sqlexec 是服务名。

第二行 tcp 是增加的一个数据库服务器别名, ontlitcp 是使用传输层 TCP/IP (本地或远程)访问数据库, online_service 是第 3) 步 /etc/services 中的 online_service 。

4 .准备数据库空间

online 允许使用两种不同的磁盘空间类型:原始的(生设备)磁盘空间和处理过的(熟设备)文件系统,使用处理过的文件做 dbspace ,其性能不如原始空间。使用处理过的文件就不能利用 DMA 功能(既直接内存访问),将数据从共享内存直接传递到磁盘,所以,为了充分发挥 ONLINE 的能力我建议读者使用原始空间。

1 )使用原始磁盘空间做 dbspaces

原始磁盘空间的分配必须在安装 SCOUNIX 操作系统时完成。具体做法是:安装操作系统划分磁盘空间时,首先计算出 UNIX 系统所需要的磁盘空间,然后剩余的空间全部用作 INFORMIX 数据库原始空间,将这部分作一个或多个磁盘分区,如果磁盘空间有多个磁盘,建议做多个,可以单独分配空间给物理日志空间、逻辑日志空间及 tmp 空间以提高系统的性能。具体做法如: 分区名为 dbs (在安装系统时分的磁盘分区),将该分区设置为裸设备( NON FS ),在 /dev 可以找到 dbs 的设备名 /dev/dbs ,将 dbs 的属主和属组改为 "infomix" ,权限改为 "660", 该分区即为 online 要求的原始空间,有关 Online 原始磁盘空间的信息可用命令 # divvy /dev/dbs 查看,同理,用此方法可以建立 dbs1 、 dbs2 等原始磁盘空间。

2 )使用处理过的文件做 dbspaces

由于在安装系统时没有分多个磁盘分区,可以用现有的磁盘空间的文件系统 .

下面在 /dev/root 文件系统下创建 3 个 dbspaces, 分别为 workdbs( 业务数据库 ) 、 logdbs( 逻辑日志、物理日志 ) 、 tmpdbs(tmp 数据库 )

cd

>workdbs logdbs tmpdbs ‘ 建立文件

chown informix:informix workdbs ‘ 改变属主和属组

chown informix:informix logdbs

chown informix:informix tmpdbs

#chmod 660 workdbs ‘ 将权限改为 660

#chmod 660 logdbs

#chmod 660 tmpdbs

5. 修改 SCOUNIX5.05 内核参数

对于 SCO UNIX 平台 ,INFORMIX-ONLINE7.30 需要调整下列核心参数值:(参照 $INFORMIXDIR/release/en_us/0333 下的 IDS7.3 文件)

SHMMAX:409600000

SHMALL:512

SHMMNI:8192

SHMSEG:6

SEMMNI:8192

SEMMNS:8192

SEMMAP:8292

SEMMNU:100

SEMMSL:25

具体做法:从 root 注册登录,运行 scoadmin 在菜单中逐层选择 Hardware/Kernel Manager ,然后选择 Tune Parameters ,根据以上值设置核心参数,设置完重连核心,退出并重新启动 UNIX 。

二.初始化 informix

方法一:配置 ONCONFIG 文件 (onconfig.picc)

$ cd /usr/informix/etc( 配置文件所在目录 )

$cp onconfig.std onconfig.picc( 从标准配置文件中拷贝一份 , 作为配置自己系统的基础 ) 。

用 vi 编辑器修改 onconfig.picc 文件中的值,由于文件中的参数多,所以我主要把重要的参数进行说明:

ROOTNAME=rootdbs # 这里我们取缺省 rootdbs

ROOTPATH=/dev/dbs # rootdbs 的第一个 chunk 所在原始设备全路径名, dbs 为我们在前面配置的原始 dbspaces 。

ROOTSIZE=1000000 ( K ) # root dbspace 第一个 Chunk 的大小,这些空间初始创建逻辑日志、物理日志、和 sysmaster 数据库,当初始完毕后,就应尽快将日志和临时表从 rootdbs 中移到其它原始的 dbspaces 或处理过的文件中。

DBSERVER NAME(server name)=picc #Online 实例必须具有的唯一名,这个名字也是环境变量 $INFORMIXSERVER 的值 , 还应当作为 $INFORMIXDIR/etc/sqlhosts 中的第一个字段。

DBSERVERALIASES(server aliases)=tcp #Online 实例的别名,在网上是要唯一的,它是网络访问数据库必须的,在前面配置 $INFORMIXDIR/etc/sqlhosts 中要用到它。

RESIDENT(Forced Residency)=1 # 该参数决定 Online 实例共享内存的常驻区是否允许从操作系统的共享内存中交换出来,如果服务器的物理内存足够大( 512MB 以上),建议设置为 1 ( Y ),否则为 0 ( N )。

LOCKS ( Max of Locks ) =100000 # 该参数对共享内存的大小有影响 , 通常对于较忙的实例我们将它设置为 100000 。

BUFFERS ( Max of buffers ) =100000 # 这些缓冲区是共享内存常驻区唯一的最大消耗者,对实例共享内存的影响最大。

MULTIPROCESSOR=1 # 该参数打开或关闭多处理器封锁机制,如果系统是三个 CPU 以上,将它设为 1(Y) ,如果是单 CPU 或双 CUP 建议设为 0(N) 。

NETTYPE=ipcshm,1,80,CUP # 共享内存数据库服务器通讯方式

NETTYPE=tlitcp,1,80,NET #tcp 数据库服务器通讯方式

配置 ONLINE 的参数很多,以上是只是其中最重要的一部分,如果读者对 ONLINE 其它参数感兴趣,在以后的章节我会详细介绍。

方法二:图形界面

以 informix 用户登录,运行 onmonitor 命令,选 ParametersàInitialize 进入磁盘初始化菜单 , 配置的参数和方法一相同 , 建议第一次配置 ONLINE 的用户用此方法。

配置完 ONLINE 的参数,现在可以启动并初始化磁盘空间,以 informix 用户登录,执行 $ oninit -iy 注意 : 执行此命令后 , 所有在 Online 磁盘空间上的数据将被破坏, 也可用图形界面 onmonitor 命令初始化,总之,这两种命令只能在第一次初始化 ONLINE 磁盘空间使用,提醒各位读者谨慎使用 , 以后在启动数据库只需用 oninit 命令即可,执行 $onstat - 命令可以简单查看 online 是否正常启动 , 如果正常则显示如下提示信息 :

Informix Dynamic Server Version 7.30.UC2 -- On-Line -- Up 2 days 21:14:58 -- 163840 Kbytes 。
三. Informix-online7.30 的日常管理及维护

1 . 自动启动关闭 Informix-online 数据库

启动 ONLINE 的命令是: oninit

但为了便于系统管理员的管理,将启动命令建立在 /etc/rc2.d 目录下 , 名字为 S90informix, 就象 DOS 中的批处理文件一样,当启动 SCOUNIX 操作系统时 ,online 随之启动。

编辑文件 ( 在 root 用户下 ) /etc/rc2.d/S90informix, 内容如下

INFORMIXDIR=/usr/informix

INFORMIXSERVER=picc

ONCONFIG=onconfig.picc

Export INFORMIXDIR INFORMIXSERVER ONCONFIG

INFORMIXDIR/bin/oninit

修改文件属性使它用执行权利 : #chmod +x /etc/rc2.d/S90informix

自动关闭 INFORMIX-ONLINE

关闭 ONLINE 的命令为 : onmode -ky

将关闭命令建立在 /etc/rc0.d 目录下 , 编辑文件名为 K01informix, 内容如下 :

INFORMIX INFORMIXDIR=/usr/informix

INFORMIXSERVER=picc

ONCONFIG=onconfig.picc

Export INFORMIXDIR INFORMIXSERVER ONCONFIG

INFORMIXDIR/bin/onmode -ky

修改文件属性使它用执行权利 : #chmod +x /etc/rc2.d/K01informix

2. INFORMIX ONLINE 的常见工作模式

Off-line : 实例没有运行 , 没有分配或初始化共享内存。

Quiescent :实例已经完全启动,但不允许用户访问数据库,有些管理任务,像增加删除 dbspaces 、逻辑日志,必须在实例处于 Quiescent 状态时才能完成。

On-line :实例完全启动,并且对所有有权访问它的用户都是可用的。

Shutdown: :当实例从 Online-line 状态到 Quiescent 时的一种过渡状态,所有用户线索仍然可以继续完成他们的工作直到正常结束,但这时所有新的数据库连接都会被拒绝。

下面介绍各个模式相互转换的命令:

oninit( 将一个配置好的实例从 Off-line 状态一直变为 On-line 状态 )

oninit -s (将一个配置好的实例从 Off-line 状态一直变为 Quiescent 状态,现有的用户线索可以继续直到正常结束,但所有新的数据库请求连接将被拒绝)

onmode -sy( 将实例从 On-line 状态经过 shutdown)

onmode -uy (立即终止现有的实例,使之成为 Quiescent ,所有的用户线索和数据库请求都将被中断)

onmode -ky (实例从 on-line 或 Quiescent 变为 off-line 状态)

介绍完 ONLINE 的几种常用工作模式后,下面我们就可以为 online 增加工作区、逻辑日志、物理日志、临时文件数据库空间了。
3 .管理 Informix Online 磁盘空间

Online 初始化时,自动建立了一个名为 rootdbs 的 dbspace 。该 rootdbs 存储 Online 的管理信息,包括物理日志、逻辑日志等。当你建立一个数据库时,如果不指定 dbspace ,作为缺省,该库建立在 rootdbs 中。所以,如果你想将库建立在某个 dbspace 中,则必须指定 dbspace ,例如: dbimport 数据库名 -d dbspace 名

注意:在建 dbspace 时,要指定原始磁盘设备名路径,所需磁盘空间大小,以及该块磁盘空间在原始磁盘设备中的偏移量,偏移量非常关键,要小心设置,否则容易造成 chunk 块之间空间上的重叠与覆盖。

1 ) 用 onspaces 命令建立 dbspace

onspaces -c -d dbspaces 名 -p 磁盘设备 -o 偏移量 -s 空间大小

其中: -c 表示建立新的 dbspace

-d dbspace 名字

-p 原始磁盘设备全路径名,如 /dev/dbs

-o 偏移量,以 K 字节为单位

-s dbspace 中第一个 chunk 的尺寸,以 K 字节为单位

例如: 假设原始磁盘设备 /dev/dbs 有 1000M 空间 , 其中 rootdbs 占 100M , tmpdbs 占 100M , workdbs 占 800M 。

$ onspaces -c -d tmpdbs -p /dev/dbs -o 100000 -s 100000

$onspaces -c -d workdbs -p /dev/dbs -o 200000 -s 8000000

  1. 用 onspaces 命令建立物理日志、逻辑日志空间

物理日志保存数据被修改前的映象,物理日志的位置和大小可以改变,使用 onparams 命令可以改变日志的位置和大小,必须在 ONLINDE 的 Quiescent (静态方式)后执行。

$ onparams -p -s 大小 -d dbspace 名

大小是以 K 为单位 , 建议物理日志大小为 100M 。

逻辑日志是保存数据在修改后的映象, ONLINE 初始化时,逻辑日志个数最少为 3 个,所以在初始化前可以给逻辑日志个数为 3 ,大小可以少一点例如 1000K ,等初始化完后,在添加新的逻辑日志,最后再将前面的 3 个逻辑日志删除,总逻辑日志最好在 500M 左右。具体做法如下:

以 informix 用户登录,

$ onmode -uy ( 由 Online 切换到 Quiescent 状态 )

$ onparams -a -d logdbs -s 100000

其中 logdbs 为 dbspaces 名 , -s 100000 表示增加了 100M 空间。

再连续执行 4 遍上述命令,这样新的逻辑日志空间总共为 500M , 可以用 onstat -l 查看逻辑日志情况,接下来就要删除前面 3 个旧逻辑日志,删除前做一个 0 级备份

ontape -s -L 0

$ onparams -d -l logid

logid 为逻辑日志 id 号,可以用 onstat -l 查看,然后就可根据 id 号删除 3 个旧逻辑日志。

四. Informix Online 数据库备份及恢复。

1. 使用 ontape 工具备份

1.)ontape 有三个备份级别

0 级 实例中所用的页都被写到磁带上

1 级 备份从 0 级备份以后发生变化的数据

2 级 备份从 1 级备份以后发生变化的数据

$ ontape -s

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus