修复 CentOS 上的 Informix 问题,通常取决于具体故障现象。下面我按常见场景给你一套排查与修复思路,你可以对照使用;如果你能补充报错信息 / 日志 / 版本,我可以更精确指导。
ls /opt/ibm/informix
或
which oninit
oninit -V
cat $INFORMIXDIR/version
echo $INFORMIXDIR
echo $INFORMIXSERVER
echo $ONCONFIG
✅ 正常应类似:
INFORMIXDIR=/opt/ibm/informix
INFORMIXSERVER=ol_informix
ONCONFIG=onconfig.ol_informix
cd $INFORMIXDIR/tmp
ls -lt *.log
或:
tail -n 200 $INFORMIXDIR/tmp/online.log
Cannot create shared memory segment
✅ 修复:
ipcs -m
ipcrm -m <shmid>
并检查:
sysctl -a | grep shm
建议参数:
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
Cannot open onconfig file
✅ 修复:
ls $INFORMIXDIR/etc/$ONCONFIG
如果不存在:
cp $INFORMIXDIR/etc/onconfig.std $INFORMIXDIR/etc/$ONCONFIG
Listener port already in use
✅ 修复:
netstat -tunlp | grep 1526
或:
lsof -i :1526
onstat -
✅ 正常应显示:
IBM Informix Dynamic Server Version ...
Status: Online
cat $INFORMIXDIR/etc/sqlhosts
示例:
ol_informix onsoctcp 127.0.0.1 1526
确认:
systemctl status firewalld
firewall-cmd --list-ports
开放端口:
firewall-cmd --add-port=1526/tcp --permanent
firewall-cmd --reload
setenforce 0
⚠️ 操作前务必备份
oninit -s
oncheck -cr
oncheck -ci database:table
onbar -r
或
ontape -r
ldd $INFORMIXDIR/bin/oninit
若报错:
version `GLIBC_2.28' not found
✅ 解决方案:
su - informix
确保:
| 检查项 | 命令 |
|---|---|
| 是否运行 | onstat - |
| 日志 | tail online.log |
| 端口 | netstat -tunlp |
| 环境变量 | `env |
| sqlhosts | cat sqlhosts |
请把以下信息发我(越详细越好):
我可以直接给你一步一步的修复命令。