你这个问题比较笼统,“Linux 上 Informix 报错中止”可能由很多原因导致。下面我按常见原因 → 排查方法 → 解决思路给你一个系统性的说明,你可以对照自己的报错场景。
现象
onstat 命令报错Cannot connect to databaseshared memory not initialized排查
onstat -
ps -ef | grep oninit
解决
oninit -vy
现象
No space left on device排查
df -h
onstat -d
解决
onparams -a -d dbspace -s size -p path
现象
dmesg 中有 Out of memory排查
dmesg | grep -i kill
free -m
解决
SHMTOTAL、BUFFERS现象
Long transaction abortedQuiescent 或 Recovery 状态排查
onstat -x
onstat -l
解决
onparams -a -d logdbs -s size
现象
oninit 直接失败Bad value in onconfig排查
oncheck -pr
解决
ROOTPATH、DBSERVERNAME、NETTYPEsqlhosts 是否一致现象
Permission denied排查
ls -l $INFORMIXDIR
id informix
解决
informix:informixchown informix:informix chunkfile
chmod 660 chunkfile
Informix 对 Linux 内核参数敏感(共享内存、信号量)
典型参数
kernel.shmmaxkernel.sem排查
ipcs -l
在 Linux 上,90% 的原因都在日志里:
$INFORMIXDIR/tmp/online.log
或:
onstat -m
请告诉我:
我可以直接帮你判断是哪一类问题,并给出对应命令。