在 Linux 上运行 Informix 时遇到报错,一般可以按下面思路和步骤来排查与处理。你可以先按“快速定位 → 常见错误 → 解决思路”来看。
看报错信息来自哪里
oninit、dbaccess)查看关键日志
$INFORMIXDIR/tmp/online.log
或查看实例日志:
cat $INFORMIXDIR/tmp/*.log
确认环境变量
env | grep INFORMIX
至少应包含:
INFORMIXDIR
INFORMIXSERVER
ONCONFIG
PATH(包含 $INFORMIXDIR/bin)
SQLCODE = -329 / 找不到服务名原因:sqlhosts 配置错误
解决:
vi $INFORMIXDIR/etc/sqlhosts
示例:
ol_informix dbservername tcp localhost 9088
并确认 /etc/services 中有对应端口。
Cannot open shared object file原因:缺少库文件
解决:
ldd $INFORMIXDIR/bin/oninit
安装缺失依赖:
yum install glibc libstdc++
Permission denied原因:用户无权限
解决:
informixchown -R informix:informix $INFORMIXDIR
oninit: Fatal error in shared memory原因:共享内存不足
解决:
ipcs -m
ipcrm -m <shmid>
或修改 onconfig 中:
SHMVIRTSIZE
BUFFERPOOL
解决:
确认 DB_LOCALE / CLIENT_LOCALE
export DB_LOCALE=zh_CN.utf8
export CLIENT_LOCALE=zh_CN.utf8
onstat -
onstat -g ses
onstat -g ath
oncheck -pr
如果你愿意,可以把 具体报错内容 发出来,例如:
我可以给你 一步一步对应的解决方案。