1. 首页 > 软件安装教程 > 正文

Informix安装配置-Informix数据库安装配置_升级迁移详细过程

1. Informix概述与环境规划

IBM Informix是一款高性能的关系型数据库管理系统,以其可靠性、可扩展性和低管理成本著称。Informix特别适合于嵌入式系统、分布式环境和需要高可用性的企业应用场景。更多学习教程www.fgedu.net.cn

1.1 Informix版本说明

Informix目前主要版本为Informix 14.10,本教程以Informix 14.10为例进行详细讲解。

# 查看Informix版本
$ dbaccess -V

IBM Informix Dynamic Server Version 14.10.FC4DE
Software Serial Number AAA#B000000

# 查看详细版本信息
$ onstat –

IBM Informix Dynamic Server Version 14.10.FC4DE — On-Line — Up 1 days 10:00:00 — 655360 Kbytes

1.2 环境规划

本次安装环境规划如下:

主机名:fgedudb01.fgedu.net.cn
IP地址:192.168.1.51
数据库实例名:fgedudb
数据库服务器名:fgedudb01
端口号:9088
数据库用户:informix
数据库组:informix

磁盘空间规划:
/data/informix 100GB (数据库数据)
/data/informix/logs 50GB (逻辑日志)
/data/informix/tmp 20GB (临时空间)
/backup/informix 200GB (备份空间)

1.3 Informix核心特性

主要特点:
1. DSA架构:动态可扩展架构,支持大规模并行处理
2. 高可用性:支持HDR、RSS、SDS等多种高可用方案
3. 时间序列:内置时间序列数据处理能力
4. 空间数据:支持空间数据类型和空间索引
5. JSON支持:原生支持JSON和NoSQL操作
6. 低管理成本:自动管理特性减少DBA工作量
7. 嵌入式部署:适合嵌入式和边缘计算场景

2. 硬件环境要求与检查

在安装Informix之前,需要对服务器硬件环境进行全面检查。学习交流加群风哥微信: itpux-com

2.1 最低硬件要求

最低配置:
CPU:64位x86处理器
内存:2GB
磁盘:10GB

推荐配置(生产环境):
CPU:8核心以上
内存:32GB以上
磁盘:500GB以上高速存储
网络:千兆网卡

高可用环境配置:
CPU:16核心以上
内存:64GB以上
磁盘:1TB以上SSD存储
网络:万兆网卡

2.2 系统环境检查

# 检查操作系统版本
# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.8 (Ootpa)

# 检查内核版本
# uname -a
Linux fgedudb01 4.18.0-477.10.1.el8_8.x86_64 #1 SMP Fri Apr 4 10:00:00 CST 2026 x86_64 x86_64 x86_64 GNU/Linux

# 检查内存信息
# free -h
total used free shared buff/cache available
Mem: 62Gi 2.0Gi 58Gi 256Mi 2.0Gi 59Gi
Swap: 31Gi 0B 31Gi

# 检查磁盘空间
# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg_system-lv_root 50G 2.5G 48G 5% /
/dev/sda2 1014M 150M 865M 15% /boot
/dev/mapper/vg_data-lv_data 100G 10G 90G 10% /data
/dev/mapper/vg_backup-lv_backup 200G 20G 180G 10% /backup

# 检查所需软件包
# rpm -qa | grep -E “libaio|libnsl|compat-libstdc”
libaio-0.3.112-1.el8.x86_64
libnsl-2.28-225.el8.x86_64

# 安装依赖包
# dnf install -y libaio libnsl

2.3 内核参数配置

# 配置内核参数
# vi /etc/sysctl.d/99-informix.conf

# 添加以下参数
# 共享内存参数
kernel.shmmax = 34359738368
kernel.shmall = 8388608
kernel.shmmni = 4096

# 信号量参数
kernel.sem = 250 32000 100 128

# 文件描述符限制
fs.file-max = 655360

# 异步I/O限制
fs.aio-max-nr = 1048576

# 使内核参数生效
# sysctl -p /etc/sysctl.d/99-informix.conf

# 输出示例:
kernel.shmmax = 34359738368
kernel.shmall = 8388608
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 655360
fs.aio-max-nr = 1048576

2.4 用户资源限制配置

# 配置用户限制
# vi /etc/security/limits.conf

# 添加以下配置
informix soft nofile 65535
informix hard nofile 65535
informix soft nproc 65535
informix hard nproc 65535
informix soft memlock unlimited
informix hard memlock unlimited
informix soft stack unlimited
informix hard stack unlimited

# 配置PAM限制
# vi /etc/pam.d/login
session required pam_limits.so

# 验证配置
# su – informix
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 65535
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 65535
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

生产环境建议:Informix对共享内存和信号量的需求较大,建议根据实际内存大小调整内核参数。对于生产环境,建议配置大内存页以提高性能。

3. Informix数据库安装步骤

本节详细介绍Informix 14.10的安装过程。学习交流加群风哥QQ113257174

3.1 创建用户和组

# 创建informix组
# groupadd informix

# 创建informix用户
# useradd -g informix -d /home/informix -s /bin/bash -m informix

# 设置密码
# passwd informix
更改用户 informix 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

# 创建目录结构
# mkdir -p /data/informix/{data,logs,tmp}
# mkdir -p /backup/informix

# 设置目录权限
# chown -R informix:informix /data/informix
# chown -R informix:informix /backup/informix
# chmod -R 755 /data/informix
# chmod -R 755 /backup/informix

# 验证目录权限
# ls -la /data/
总用量 0
drwxr-xr-x. 3 informix informix 20 4月 4 10:00 informix

3.2 配置环境变量

# 切换到informix用户
# su – informix

# 编辑环境变量文件
$ vi ~/.bash_profile

# 添加以下内容
export INFORMIXDIR=/opt/informix
export INFORMIXSERVER=fgedudb01
export ONCONFIG=onconfig.fgedudb
export INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts
export PATH=$INFORMIXDIR/bin:$PATH
export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH
export DB_LOCALE=zh_CN.UTF-8
export CLIENT_LOCALE=zh_CN.UTF-8
export INFORMIXTERM=terminfo

# 使环境变量生效
$ source ~/.bash_profile

# 验证环境变量
$ echo $INFORMIXDIR
/opt/informix

$ echo $INFORMIXSERVER
fgedudb01

3.3 安装Informix软件

# 切换到root用户
$ exit

# 解压安装包
# tar -xvf informix_14.10.FC4DE_linuxx86_64.tar -C /tmp

# 输出示例:
informix_14.10.FC4DE_linuxx86_64/
informix_14.10.FC4DE_linuxx86_64/ids_install
informix_14.10.FC4DE_linuxx86_64/README
informix_14.10.FC4DE_linuxx86_64/doc/

# 创建安装目录
# mkdir -p /opt/informix
# chown informix:informix /opt/informix

# 运行安装程序(静默安装)
# cd /tmp/informix_14.10.FC4DE_linuxx86_64
# ./ids_install -i silent -f /tmp/informix_response.ini

# 或使用图形界面安装
# ./ids_install

# 输出示例:
Preparing to install…
Extracting the installation resources from the installer archive…
Configuring the installer for this system’s environment…
Launching installer…

===============================================================================
IBM Informix Dynamic Server 14.10
===============================================================================

Installing…
————-

[==================|==================|==================|==================]
[——————|——————|——————|——————]

Installation Complete.
———————-

Congratulations! IBM Informix Dynamic Server 14.10 has been successfully
installed to:
/opt/informix

# 设置目录权限
# chown -R informix:informix /opt/informix
# chmod -R 755 /opt/informix

# 验证安装
# ls -la /opt/informix/
总用量 32
drwxr-xr-x. 9 informix informix 4096 4月 4 10:00 .
drwxr-xr-x. 3 root root 22 4月 4 10:00 ..
drwxr-xr-x. 2 informix informix 4096 4月 4 10:00 bin
drwxr-xr-x. 2 informix informix 4096 4月 4 10:00 demo
drwxr-xr-x. 2 informix informix 4096 4月 4 10:00 etc
drwxr-xr-x. 2 informix informix 4096 4月 4 10:00 extend
drwxr-xr-x. 2 informix informix 4096 4月 4 10:00 lib
drwxr-xr-x. 2 informix informix 4096 4月 4 10:00 msg

风哥提示:Informix安装需要使用informix用户进行后续配置。安装完成后,需要设置正确的目录权限和环境变量。

4. 数据库参数配置

数据库参数配置是Informix安装的关键步骤,直接影响数据库性能和稳定性。更多学习教程公众号风哥教程itpux_com

4.1 配置sqlhosts文件

# 切换到informix用户
# su – informix

# 编辑sqlhosts文件
$ vi $INFORMIXDIR/etc/sqlhosts

# 添加以下内容
fgedudb01 onsoctcp fgedudb01.fgedu.net.cn 9088
fgedudb01_shm onipcshm fgedudb01.fgedu.net.cn fgedudb

# 说明:
# 第一列:数据库服务器名称
# 第二列:连接类型(onsoctcp为TCP连接,onipcshm为共享内存连接)
# 第三列:主机名
# 第四列:端口号或服务名

# 验证配置
$ cat $INFORMIXDIR/etc/sqlhosts
fgedudb01 onsoctcp fgedudb01.fgedu.net.cn 9088
fgedudb01_shm onipcshm fgedudb01.fgedu.net.cn fgedudb

4.2 配置onconfig文件

# 复制模板文件
$ cp $INFORMIXDIR/etc/onconfig.std $INFORMIXDIR/etc/onconfig.fgedudb

# 编辑onconfig文件
$ vi $INFORMIXDIR/etc/onconfig.fgedudb

# 修改以下关键参数
# 数据库服务器名称
DBSERVERNAME fgedudb01

# 共享内存配置
SHMVIRTSIZE 1048576
SHMADD 524288
SHMTOTAL 0

# 内存缓冲区
BUFFERS 500000
RESIDENT 1

# 检查点间隔
CKPTINTVL 300

# 物理日志
PHYSFILE 102400
PHYSBUFF 256

# 逻辑日志
LOGFILES 6
LOGSIZE 102400
LOGBUFF 256

# 锁配置
LOCKS 200000
DEF_TABLE_LOCKMODE row

# 事务配置
TXTIMEOUT 300

# 会话配置
NETTYPE onsoctcp,1,200,NET

# 多处理器配置
MULTIPROCESSOR 1
VPCLASS cpu,num=4
VPCLASS aio,num=4

# 磁盘配置
ROOTNAME rootdbs
ROOTPATH /data/informix/data/rootdbs
ROOTOFFSET 0
ROOTSIZE 1024000

# 临时空间
DBSPACETEMP tempdbs

# 备份配置
TAPEDEV /backup/informix/tape
TAPEBLK 32
TAPESIZE 0
LTAPEDEV /backup/informix/logtape
LTAPEBLK 32
LTAPESIZE 0

# 安全配置
IFX_EXTEND_ROLE 1

# 输出配置
MSGPATH /data/informix/logs/online.log
CONSOLE /data/informix/logs/console.log
ALARMPROGRAM /opt/informix/etc/alarmprogram.sh
SYSALARMPROGRAM /opt/informix/etc/evidence.sh

# 语言设置
DB_LOCALE zh_CN.UTF-8
SERVER_LOCALE zh_CN.UTF-8
GL_DATE %Y-%m-%d
GL_DATETIME %Y-%m-%d %H:%M:%S

4.3 配置服务端口

# 切换到root用户
$ exit

# 添加服务端口
# vi /etc/services

# 添加以下内容
informix 9088/tcp # Informix database server
informix_tls 9089/tcp # Informix TLS connection

# 验证配置
# grep informix /etc/services
informix 9088/tcp # Informix database server
informix_tls 9089/tcp # Informix TLS connection

生产环境建议:BUFFERS参数建议设置为物理内存的20%-30%,LOCKS参数根据并发事务量设置,VPCLASS根据CPU核心数配置。对于生产环境,建议启用RESIDENT锁定共享内存。

5. 存储空间管理

Informix使用dbspace作为存储管理单元,合理规划存储空间对数据库性能至关重要。from:www.itpux.com

5.1 初始化数据库实例

# 切换到informix用户
# su – informix

# 创建rootdbs文件
$ touch /data/informix/data/rootdbs
$ chmod 660 /data/informix/data/rootdbs

# 初始化数据库实例
$ oninit -iv

# 输出示例:
This action will initialize IBM Informix Dynamic Server.
Any existing databases will be destroyed.
Do you wish to continue (y/n)? y
Checking group membership for user informix…done
Checking GLS for IBM Informix Dynamic Server…done
Initializing shared memory…done
Initializing disk structures…done
Creating databases…done
Creating system databases…done
Creating default users…done
IBM Informix Dynamic Server initialized successfully.

# 检查数据库状态
$ onstat –

IBM Informix Dynamic Server Version 14.10.FC4DE — On-Line — Up 00:05:00 — 655360 Kbytes

5.2 创建数据空间

# 创建数据dbspace
$ onspaces -c -d datadbs -p /data/informix/data/datadbs -o 0 -s 52428800

# 输出示例:
Verifying physical disk space, please wait …
Space successfully added.
** WARNING ** A level 0 archive of Root DBSpace will need to be done.

# 创建索引dbspace
$ onspaces -c -d indexdbs -p /data/informix/data/indexdbs -o 0 -s 20971520

# 输出示例:
Verifying physical disk space, please wait …
Space successfully added.
** WARNING ** A level 0 archive of Root DBSpace will need to be done.

# 创建临时dbspace
$ onspaces -c -d tempdbs -t -p /data/informix/data/tempdbs -o 0 -s 10485760

# 输出示例:
Verifying physical disk space, please wait …
Space successfully added.
** WARNING ** A level 0 archive of Root DBSpace will need to be done.

# 创建日志dbspace
$ onspaces -c -d logdbs -p /data/informix/data/logdbs -o 0 -s 20971520

# 输出示例:
Verifying physical disk space, please wait …
Space successfully added.
** WARNING ** A level 0 archive of Root DBSpace will need to be done.

# 查看dbspace信息
$ onstat -d

IBM Informix Dynamic Server Version 14.10.FC4DE — On-Line — Up 00:10:00 — 655360 Kbytes

Dbspaces
address number flags fchunk nchunks flags owner name
4c000000 1 0x60001 1 1 N informix rootdbs
4c000100 2 0x60001 2 1 N informix datadbs
4c000200 3 0x60001 3 1 N informix indexdbs
4c000300 4 0x40001 4 1 T informix tempdbs
4c000400 5 0x60001 5 1 N informix logdbs

5 active, 2047 maximum

Chunks
address chunk/dbs offset size free bpages flags pathname
4c001000 1 1 0 1024000 921600 PO /data/informix/data/rootdbs
4c001100 2 2 0 52428800 47185920 PO /data/informix/data/datadbs
4c001200 3 3 0 20971520 18874368 PO /data/informix/data/indexdbs
4c001300 4 4 0 10485760 9437184 PO /data/informix/data/tempdbs
4c001400 5 5 0 20971520 18874368 PO /data/informix/data/logdbs

5 active, 32766 maximum

5.3 移动逻辑日志

# 查看当前逻辑日志
$ onstat -l

IBM Informix Dynamic Server Version 14.10.FC4DE — On-Line — Up 00:15:00 — 655360 Kbytes

Physical Logging
Buffer bufused bufsize numpages numwrits pages/io
P-1 0 256 100 50 2.00
phybegin physize phypos phyused %used
1:53 102400 100 50 0.05

Logical Logging
Buffer bufused bufsize numrecs numpages numwrits recs/pages pages/io
L-1 0 256 500 100 50 5.00 2.00
address number flags uniqid begin size used %used
4c002000 1 U-B—- 1 1:53 102400 500 0.49
4c002100 2 U-B—- 2 1:105353 102400 0 0.00
4c002200 3 U-B—- 3 1:210653 102400 0 0.00
4c002300 4 U-B—- 4 1:315953 102400 0 0.00
4c002400 5 U-B—- 5 1:421253 102400 0 0.00
4c002500 6 U-B—- 6 1:526553 102400 0 0.00

6 active, 32766 maximum

# 在logdbs上添加新日志文件
$ onparams -a -d logdbs -s 102400

# 输出示例:
Log file successfully added.

# 重复添加多个日志文件
$ onparams -a -d logdbs -s 102400
$ onparams -a -d logdbs -s 102400
$ onparams -a -d logdbs -s 102400
$ onparams -a -d logdbs -s 102400
$ onparams -a -d logdbs -s 102400

# 执行检查点
$ onmode -c

# 删除旧的日志文件
$ onparams -d -l 1 -y
$ onparams -d -l 2 -y
$ onparams -d -l 3 -y
$ onparams -d -l 4 -y
$ onparams -d -l 5 -y
$ onparams -d -l 6 -y

# 验证日志配置
$ onstat -l

风哥提示:生产环境建议将逻辑日志放在独立的存储设备上,以提高性能和可靠性。逻辑日志数量建议至少6个,大小根据事务量设置。

6. 网络连接配置

网络连接配置是客户端访问数据库的关键,需要正确配置监听端口和连接方式。更多学习教程www.fgedu.net.cn

6.1 配置网络监听

# 查看当前网络配置
$ onstat -g ntu

IBM Informix Dynamic Server Version 14.10.FC4DE — On-Line — Up 00:20:00 — 655360 Kbytes

global network info:
ses_max = 8192
use_all_if = 0
nettype cur max total #free
soctcp 1 200 1 199

nettype listen thread
soctcp nlscpu

# 查看监听状态
$ onstat -g nta

IBM Informix Dynamic Server Version 14.10.FC4DE — On-Line — Up 00:20:00 — 655360 Kbytes

global network thread info:
sqlexec thread list:
tcb sqtcb session name
0x4c003000 0x4c004000 1 sqlexec

# 测试本地连接
$ dbaccess sysmaster –

Database selected.

> SELECT * FROM systables WHERE tabname = ‘systables’;

tabname systables
owner informix
partnum 1048580
tabid 1

1 row(s) retrieved.

> exit;

Database closed.

6.2 配置远程连接

# 在客户端配置sqlhosts文件
# vi $INFORMIXDIR/etc/sqlhosts

# 添加服务器连接信息
fgedudb01 onsoctcp 192.168.1.51 9088

# 在客户端设置环境变量
export INFORMIXDIR=/opt/informix
export INFORMIXSERVER=fgedudb01
export INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts
export PATH=$INFORMIXDIR/bin:$PATH

# 测试远程连接
$ dbaccess – –

> CONNECT TO ‘fgedudb@fgedudb01’ USER ‘informix’ USING ‘password’;

Database connected.

> SELECT DBINFO(‘version’, ‘full’) FROM systables WHERE tabid = 1;

(constant)

IBM Informix Dynamic Server Version 14.10.FC4DE

1 row(s) retrieved.

> CLOSE DATABASE;

Database closed.

> exit;

6.3 配置防火墙

# 切换到root用户
$ exit

# 开放Informix端口
# firewall-cmd –permanent –add-port=9088/tcp
success

# 开放Informix TLS端口
# firewall-cmd –permanent –add-port=9089/tcp
success

# 重载防火墙
# firewall-cmd –reload
success

# 验证防火墙规则
# firewall-cmd –list-ports
9088/tcp 9089/tcp

生产环境建议:建议使用TLS加密连接,配置SSL证书以提高安全性。对于高并发环境,可以增加NETTYPE参数中的连接数上限。

7. 备份恢复配置

备份恢复是数据库管理的重要环节,Informix提供了ontape和onbar两种备份工具。学习交流加群风哥微信: itpux-com

7.1 使用ontape备份

# 配置备份参数
$ vi $INFORMIXDIR/etc/onconfig.fgedudb

# 修改以下参数
TAPEDEV /backup/informix/level0
TAPEBLK 32
TAPESIZE 0
LTAPEDEV /backup/informix/logtape
LTAPEBLK 32
LTAPESIZE 0

# 创建备份目录
$ mkdir -p /backup/informix/{level0,logtape}
$ chmod 750 /backup/informix/{level0,logtape}

# 执行0级备份
$ ontape -s -L 0

# 输出示例:
Please label this tape as number 1 in the arc tape sequence.
This tape contains the following logical logs:
6
Tape will not be overwritten.
Archive to tape device ‘/backup/informix/level0’ is complete.
Program over.

# 执行1级增量备份
$ ontape -s -L 1

# 输出示例:
Please label this tape as number 1 in the arc tape sequence.
This tape contains the following logical logs:
7
Tape will not be overwritten.
Archive to tape device ‘/backup/informix/level0’ is complete.
Program over.

# 备份逻辑日志
$ ontape -a

# 输出示例:
Please label this tape as number 1 in the log tape sequence.
This tape contains the following logical logs:
8
Tape will not be overwritten.
Log archive to tape device ‘/backup/informix/logtape’ is complete.
Program over.

7.2 使用ontape恢复

# 关闭数据库
$ onmode -ky

# 输出示例:
IBM Informix Dynamic Server stopped.

# 执行恢复
$ ontape -r

# 输出示例:
Restore a level 0, 1, or 2 archive.
Press Return to continue.
Ready to restore a level 0 archive from /backup/informix/level0.
Do you want to back up the logs? (y/n) y
Do you want to restore the logs? (y/n) y
Archive tape is not a logical log tape.
Do you want to continue? (y/n) y
Restoring log file 6 …
Restoring log file 7 …
Restoring log file 8 …
Log restore complete.
Program over.

# 验证恢复
$ onstat –

IBM Informix Dynamic Server Version 14.10.FC4DE — On-Line — Up 00:00:30 — 655360 Kbytes

7.3 使用onbar备份

# 配置onbar参数
$ vi $INFORMIXDIR/etc/onconfig.fgedudb

# 修改以下参数
BAR_BSALIB_PATH /opt/informix/lib/libbsa.so
BAR_RETRY 3
BAR_MAX_BACKUP 0
BAR_PROGRESS_FREQ 0
BAR_XFER_BUF_SIZE 31
RESTARTABLE_RESTORE ON

# 配置存储管理器
$ vi $INFORMIXDIR/etc/ixbar

# 添加以下内容
BACKUP_PATH /backup/informix/onbar
LOG_PATH /backup/informix/onbar/log

# 创建备份目录
$ mkdir -p /backup/informix/onbar/log

# 执行0级备份
$ onbar -b -L 0

# 输出示例:
onbar -b -L 0
Starting backup of rootdbs.
Starting backup of datadbs.
Starting backup of indexdbs.
Starting backup of logdbs.
Backup completed successfully.

# 执行逻辑日志备份
$ onbar -b -l

# 输出示例:
Starting backup of logical logs.
Backup completed successfully.

# 查看备份信息
$ onbar -p

# 输出示例:
Backup ID: 1
Backup Level: 0
Backup Date: 2026-04-04 10:30:00
Backup Object: rootdbs
Backup Object: datadbs
Backup Object: indexdbs
Backup Object: logdbs

风哥提示:生产环境建议配置自动备份脚本,定期执行全备份和增量备份。备份文件建议存储在独立的存储设备或远程服务器上。

8. 升级与迁移

数据库升级和迁移是运维工作中的重要环节,需要仔细规划和执行。更多学习教程公众号风哥教程itpux_com

8.1 版本升级

# 检查当前版本
$ onstat –

IBM Informix Dynamic Server Version 14.10.FC4DE — On-Line — Up 1 days 10:00:00 — 655360 Kbytes

# 执行完整备份
$ ontape -s -L 0

# 关闭数据库
$ onmode -ky

# 安装新版本软件
# 切换到root用户
$ exit

# 安装新版本
# cd /tmp/informix_new_version
# ./ids_install -i silent

# 切换到informix用户
# su – informix

# 更新环境变量
$ export INFORMIXDIR=/opt/informix_new

# 执行版本升级
$ oninit -vy

# 输出示例:
Checking group membership for user informix…done
Checking GLS for IBM Informix Dynamic Server…done
Converting database server…
Converting rootdbs…
Converting datadbs…
Converting indexdbs…
Converting logdbs…
Conversion completed successfully.
IBM Informix Dynamic Server initialized successfully.

# 验证升级
$ onstat –

IBM Informix Dynamic Server Version 14.10.FC5DE — On-Line — Up 00:05:00 — 655360 Kbytes

8.2 数据迁移

# 使用dbexport/dbimport迁移
# 导出数据库
$ dbexport fgedudb -ss -o /backup/informix/export

# 输出示例:
{ DATABASE fgedudb delimiter | }
{ TABLE “informix”.fgedu_users row size = 100 number of columns = 5 }
{ unload file name = fgedu00100.unl number of rows = 1000 }
{ TABLE “informix”.fgedu_orders row size = 200 number of columns = 10 }
{ unload file name = fgedu00101.unl number of rows = 5000 }

Database fgedudb exported successfully.

# 导入数据库
$ dbimport fgedudb -d datadbs -i /backup/informix/export

# 输出示例:
{ DATABASE fgedudb delimiter | }
{ TABLE “informix”.fgedu_users row size = 100 number of columns = 5 }
{ load file name = fgedu00100.unl number of rows = 1000 }
{ TABLE “informix”.fgedu_orders row size = 200 number of columns = 10 }
{ load file name = fgedu00101.unl number of rows = 5000 }

Database fgedudb imported successfully.

# 使用onload/onunload迁移
# 卸载数据
$ onunload -t /backup/informix/unload/fgedudb.unl fgedudb

# 输出示例:
Unloading database fgedudb…
Unload completed successfully.

# 加载数据
$ onload -t /backup/informix/unload/fgedudb.unl -d datadbs fgedudb_new

# 输出示例:
Loading database fgedudb_new…
Load completed successfully.

8.3 高可用配置(HDR)

# 在主服务器上配置
$ vi $INFORMIXDIR/etc/onconfig.fgedudb

# 添加以下参数
DRINTERVAL 30
DRTIMEOUT 30
DRAUTO 1
DRLOSTFOUND /data/informix/logs/dr.lostfound

# 执行0级备份
$ ontape -s -L 0

# 将备份传输到辅助服务器
$ scp /backup/informix/level0 informix@fgedudb02:/backup/informix/

# 在辅助服务器上恢复
$ ontape -r

# 配置辅助服务器
$ vi $INFORMIXDIR/etc/onconfig.fgedudb

# 修改以下参数
DBSERVERNAME fgedudb02
DRINTERVAL 30
DRTIMEOUT 30
DRAUTO 1

# 启动辅助服务器
$ oninit -vy

# 验证HDR状态
$ onstat -g dri

IBM Informix Dynamic Server Version 14.10.FC4DE — On-Line (Prim) — Up 00:10:00 — 655360 Kbytes

HDR Information:
Primary Server: fgedudb01
Secondary Server: fgedudb02
HDR State: Normal
HDR Mode: Synchronous

生产环境建议:升级前必须执行完整备份,并在测试环境验证升级过程。数据迁移建议使用dbexport/dbimport进行逻辑迁移,可以同时进行数据清理和优化。

9. 生产环境实战案例

本节提供一个完整的生产环境配置案例,帮助读者更好地理解Informix的实际应用。from:www.itpux.com

9.1 创建生产数据库

# 连接数据库
$ dbaccess – –

> CREATE DATABASE fgedudb IN datadbs WITH LOG;

Database created.

> DATABASE fgedudb;

Database closed.
Database selected.

> CREATE TABLE fgedu_users (
> user_id SERIAL,
> username VARCHAR(50) NOT NULL,
> password VARCHAR(100) NOT NULL,
> email VARCHAR(100),
> created_at DATETIME YEAR TO SECOND DEFAULT CURRENT YEAR TO SECOND,
> updated_at DATETIME YEAR TO SECOND DEFAULT CURRENT YEAR TO SECOND,
> PRIMARY KEY (user_id),
> UNIQUE (username)
> ) IN datadbs;

Table created.

> CREATE INDEX idx_users_email ON fgedu_users (email) IN indexdbs;

Index created.

> CREATE TABLE fgedu_orders (
> order_id SERIAL,
> user_id INTEGER NOT NULL,
> order_no VARCHAR(50) NOT NULL,
> amount DECIMAL(12,2) NOT NULL,
> status VARCHAR(20) DEFAULT ‘pending’,
> created_at DATETIME YEAR TO SECOND DEFAULT CURRENT YEAR TO SECOND,
> PRIMARY KEY (order_id),
> FOREIGN KEY (user_id) REFERENCES fgedu_users (user_id)
> ) IN datadbs;

Table created.

> CREATE INDEX idx_orders_user ON fgedu_orders (user_id) IN indexdbs;

Index created.

> CREATE INDEX idx_orders_status ON fgedu_orders (status) IN indexdbs;

Index created.

> INSERT INTO fgedu_users (username, password, email) VALUES (‘admin’, ‘password123’, ‘admin@fgedu.net.cn’);

1 row(s) inserted.

> INSERT INTO fgedu_orders (user_id, order_no, amount, status) VALUES (1, ‘ORD001’, 100.00, ‘completed’);

1 row(s) inserted.

> SELECT * FROM fgedu_users;

user_id 1
username admin
password password123
email admin@fgedu.net.cn
created_at 2026-04-04 10:00:00
updated_at 2026-04-04 10:00:00

1 row(s) retrieved.

> exit;

9.2 性能优化配置

# 查看数据库统计信息
$ onstat -p

IBM Informix Dynamic Server Version 14.10.FC4DE — On-Line — Up 1 days 10:00:00 — 655360 Kbytes

Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
10000 15000 500000 98.00 5000 8000 200000 97.50

isamtot open start read write rewrite delete commit rollbk
100000 500 10000 50000 10000 5000 2000 10000 100

gp_read gp_write gp_rewrt gp_del gp_alloc gp_free gp_curs
0 0 0 0 0 0 0

# 更新统计信息
$ dbaccess fgedudb –

Database selected.

> UPDATE STATISTICS HIGH FOR TABLE fgedu_users;

Statistics updated.

> UPDATE STATISTICS HIGH FOR TABLE fgedu_orders;

Statistics updated.

> exit;

Database closed.

# 查看缓冲区命中率
$ onstat -B | head -20

IBM Informix Dynamic Server Version 14.10.FC4DE — On-Line — Up 1 days 10:00:00 — 655360 Kbytes

Buffer pool profile (default pool)
buffer size (K) = 2
buffers = 500000
used = 10000
#hashbuckets = 125000
hashbuckets = 125001
lru list = 4
lru length = 10000
flush list = 1
flush length = 1000
hash hits = 5000000
hash misses = 10000
hit ratio = 99.80%

# 查看锁信息
$ onstat -k

IBM Informix Dynamic Server Version 14.10.FC4DE — On-Line — Up 1 days 10:00:00 — 655360 Kbytes

Locks
address wtlist owner lklist type tblsnum rowid key#
0x4c005000 0 0x4c006000 0 HDR+IX 100002 0 0
0x4c005100 0 0x4c006000 0x4c005000 HDR+X 100002 205 0

2 active, 200000 maximum, 100 hash buckets

9.3 监控脚本配置

# 创建监控脚本
$ vi /home/informix/scripts/informix_monitor.sh

#!/bin/bash
export INFORMIXDIR=/opt/informix
export INFORMIXSERVER=fgedudb01
export ONCONFIG=onconfig.fgedudb
export PATH=$INFORMIXDIR/bin:$PATH

LOG_FILE=/home/informix/logs/monitor.log
DATE=$(date ‘+%Y-%m-%d %H:%M:%S’)

echo “=== $DATE ===” >> $LOG_FILE

# 检查数据库状态
STATUS=$($INFORMIXDIR/bin/onstat – 2>&1 | head -1)
echo “Status: $STATUS” >> $LOG_FILE

# 检查会话数
SESSIONS=$($INFORMIXDIR/bin/onstat -g ses 2>&1 | grep -c “sqlexec”)
echo “Sessions: $SESSIONS” >> $LOG_FILE

# 检查锁等待
LOCKS=$($INFORMIXDIR/bin/onstat -k 2>&1 | grep “active” | awk ‘{print $1}’)
echo “Active Locks: $LOCKS” >> $LOG_FILE

# 检查磁盘空间
$INFORMIXDIR/bin/onstat -d 2>&1 | grep -E “^Chunks” >> $LOG_FILE

# 检查日志空间
$INFORMIXDIR/bin/onstat -l 2>&1 | grep -E “%used” >> $LOG_FILE

echo “” >> $LOG_FILE

# 设置脚本权限
$ chmod +x /home/informix/scripts/informix_monitor.sh

# 配置定时任务
$ crontab -e

# 添加以下内容
*/5 * * * * /home/informix/scripts/informix_monitor.sh

# 验证定时任务
$ crontab -l
*/5 * * * * /home/informix/scripts/informix_monitor.sh

# 手动执行监控
$ /home/informix/scripts/informix_monitor.sh

# 查看监控日志
$ cat /home/informix/logs/monitor.log

=== 2026-04-04 10:00:00 ===
Status: IBM Informix Dynamic Server Version 14.10.FC4DE — On-Line — Up 1 days 10:00:00 — 655360 Kbytes
Sessions: 5
Active Locks: 2
Chunks
address chunk/dbs offset size free bpages flags pathname
Active Locks: 2
%used

风哥提示:Informix提供了丰富的监控工具,如onstat、oncheck等。建议配置自动化监控脚本,定期检查数据库状态、会话数、锁等待等关键指标。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息