在 Ubuntu 上 Informix 启动失败 的原因比较多,常见原因和排查思路如下(按出现频率排序):
Informix 启动严重依赖环境变量。
检查:
echo $INFORMIXDIR
echo $INFORMIXSERVER
echo $ONCONFIG
正常应类似:
INFORMIXDIR=/opt/informix
INFORMIXSERVER=ol_informix
ONCONFIG=onconfig.ol_informix
如未设置,在 ~/.bashrc 或 /etc/profile 中加入:
export INFORMIXDIR=/opt/informix
export INFORMIXSERVER=ol_informix
export ONCONFIG=onconfig.ol_informix
export PATH=$INFORMIXDIR/bin:$PATH
Informix 必须以 informix 用户运行。
检查:
id informix
ps -ef | grep oninit
常见错误:
修复:
chown -R informix:informix $INFORMIXDIR
查看:
$INFORMIXDIR/etc/$ONCONFIG
重点检查:
ROOTPATH /opt/informix/data/rootdbs
ROOTSIZE 100000
DBSERVERNAME ol_informix
常见错误:
Ubuntu 默认 SHM 偏小。
查看:
ipcs -l
常见问题:
临时解决:
sysctl -w kernel.shmmax=2147483648
永久:
/etc/sysctl.conf
kernel.shmmax=2147483648
onstat - 报:
Cannot connect to server
检查:
grep ol_informix /etc/services
应存在:
ol_informix 9088/tcp
$INFORMIXDIR/online.log
或:
oninit -vy
常见错误示例:
Cannot open rootdbsShared memory errorSegment violationwhoami # 应为 informix
echo $INFORMIXDIR
onstat -
ipcs -m
ls -l $INFORMIXDIR/data
cat $INFORMIXDIR/online.log
请贴出以下信息之一:
oninit -vy 的输出online.log 最后 30 行我可以直接告诉你具体是哪一行配置或系统参数导致启动失败。