温馨提示×

ubuntu informix怎么排错

小樊
41
2026-09-02 07:14:56
栏目: 智能运维

Ubuntu 上排错 IBM Informix,通常可以从 服务状态、日志、环境变量、权限、端口、SQL 错误 几个方面入手。下面给你一套比较系统的排查思路和常用命令。


一、确认 Informix 是否正常运行

1. 查看 Informix 服务状态

onstat -
  • 正常会显示:
    IBM Informix Dynamic Server Version ...
    On-Line
    
  • 如果报错:
    • shared memory not initialized → 数据库没启动
    • Cannot connect to server → 环境变量或实例名不对

2. 启动 / 停止

oninit -vy      # 启动
onmode -ky      # 停止

二、检查环境变量(最常见问题)

Informix 非常依赖环境变量

必看变量

echo $INFORMIXDIR
echo $INFORMIXSERVER
echo $ONCONFIG
echo $PATH

典型设置示例

export INFORMIXDIR=/opt/ibm/informix
export INFORMIXSERVER=ol_informix
export ONCONFIG=onconfig.ol_informix
export PATH=$INFORMIXDIR/bin:$PATH
export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql

⚠️ Ubuntu 常见错误:

  • INFORMIXDIR 不对
  • LD_LIBRARY_PATH 没设,导致 onstat: command not found 或库缺失

三、查看 Informix 日志(最重要)

1. 在线日志

cd $INFORMIXDIR/tmp
ls -l *.log

或:

onstat -m

2. 消息日志位置

onconfig 中查看:

grep MSGPATH $INFORMIXDIR/etc/$ONCONFIG

一般路径:

/opt/ibm/informix/tmp/ol_informix.log

3. 常见日志错误

  • Cannot open chunk → 权限或路径问题
  • Listen failed → 端口被占用
  • Out of memory → 内核参数不足

四、端口 & 网络问题

1. 查看端口配置

grep -i sqlhosts $INFORMIXDIR/etc/sqlhosts

示例:

ol_informix onsoctcp 127.0.0.1 9088

2. 测试端口

telnet 127.0.0.1 9088
# 或
nc -zv 127.0.0.1 9088

3. Ubuntu 防火墙

sudo ufw status

五、权限问题(Ubuntu 特有坑)

Informix 必须用 informix 用户运行

id informix

检查目录权限:

ls -ld $INFORMIXDIR
ls -l $INFORMIXDIR/tmp

修复示例:

chown -R informix:informix /opt/ibm/informix

六、SQL / 客户端连接错误

常见错误码

  • -908:连接失败(server/port/sqlhosts)
  • -329:找不到数据库
  • -206:表不存在
  • -1215:锁冲突

查看详细说明:

finderr 908

七、Ubuntu 内核参数(高级)

Informix 需要共享内存:

sysctl -a | grep shm

必要时修改:

sudo vim /etc/sysctl.conf
kernel.shmmax = 2147483648
kernel.shmall = 524288
sudo sysctl -p

八、快速排错 checklist

✅ informix 用户存在
✅ INFORMIXDIR 正确
✅ oninit 成功
✅ onstat - 显示 On-Line
✅ sqlhosts 配置正确
✅ 端口可通
✅ 日志无 FATAL 错误


如果你愿意,可以把 具体报错信息(命令 + 报错内容)发出来,我可以直接帮你定位是哪一类问题。

0