在 Ubuntu 上排查 IBM Informix 错误,通常可以按“看日志 → 看服务状态 → 看配置 → 看权限/环境 → 看资源”的思路来。下面给你一套实用排查流程(含常用命令)。
onstat -
IBM Informix Dynamic Server Version ...
Status: On-Line
查看进程:
ps -ef | grep oninit
cd $INFORMIXDIR
tail -n 200 /informix/online.log
(具体路径看 ONCONFIG 里的 MSGPATH)
常见错误示例:
Cannot open chunkShared memory errorPermission deniedLogical log fullenv | grep INFORMIX
必须至少包含:
INFORMIXDIR=/opt/informix
INFORMIXSERVER=ol_informix
PATH=$INFORMIXDIR/bin:$PATH
LD_LIBRARY_PATH=$INFORMIXDIR/lib
如缺失:
source /opt/informix/informix.env
onstat -c | head
或:
cat $INFORMIXDIR/etc/onconfig
重点检查:
ROOTPATH(数据文件是否存在)MSGPATHDBSERVERNAMENETTYPEcat $INFORMIXDIR/etc/sqlhosts
格式:
ol_informix onsoctcp localhost 9088
Ubuntu 上常见错误:
Informix 必须用 informix 用户运行:
id informix
检查数据文件权限:
ls -l $INFORMIXDIR
ls -l $INFORMIXDIR/chunks
常见错误:
修复示例:
chown informix:informix /informix/data/*
chmod 660 /informix/data/*
netstat -tunlp | grep 9088
或:
ss -tunlp | grep 9088
Ubuntu 防火墙:
ufw status
SQL error -329找不到数据库
→ dbaccess 看数据库是否存在
Logical Log Fullonstat -l
→ 做备份或加 logical log
Shared memory not initialized→ oninit 没起来
→ 看 online.log
Cannot allocate memoryfree -m
→ 调小 SHMVIRTSIZE
oninit -v # 启动(verbose)
onmode -ky # 停止
onstat - 看状态online.log 看真实错误如果你愿意,可以把:
onstat - 输出online.log 片段贴出来,我可以直接帮你定位是哪一类问题。