温馨提示×

ubuntu informix为何无法启动

小樊
32
2026-09-14 10:47:22
栏目: 智能运维

在 Ubuntu 上 Informix 无法启动 的原因通常可以归为以下几类。下面按最常见 → 较少见的顺序说明,并给出排查方法。


一、最常见原因

1️⃣ 环境变量未正确设置

Informix 强依赖环境变量。

必须包含:

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

✅ 检查:

env | grep INFORMIX

❌ 如果为空或路径错误 → 启动必失败


2️⃣ 以错误用户启动

Informix 必须用 informix 用户启动

whoami
# 必须是 informix

正确方式:

su - informix
oninit -v

3️⃣ onconfig 配置错误

常见问题:

  • ROOTPATH 指向不存在的文件
  • DBSERVERNAMEINFORMIXSERVER 不一致
  • 端口未配置(sqlhosts

检查:

$INFORMIXDIR/etc/sqlhosts
$INFORMIXDIR/etc/onconfig

4️⃣ rootdbs / 数据文件权限错误

Ubuntu 默认权限严格

ls -l $INFORMIXDIR/dbs

应为:

informix informix

修复:

chown informix:informix /opt/informix/dbs/rootdbs
chmod 660 /opt/informix/dbs/rootdbs

二、系统 / 内核问题(Ubuntu 特有)

5️⃣ 共享内存参数不足

Ubuntu 默认 SHM 太小

查看:

ipcs -l

常见错误日志:

Cannot attach shared memory

解决(临时):

sysctl -w kernel.shmmax=2147483648
sysctl -w kernel.shmall=524288

永久:

/etc/sysctl.conf

6️⃣ systemd 限制

Ubuntu 用 systemd,可能限制:

  • 内存
  • 文件数
  • 进程数

检查:

systemctl status informix
journalctl -u informix

三、查看真正错误(关键)

✅ 最重要的一步

cd $INFORMIXDIR/tmp
ls -lt

查看:

oninit.log

或:

onstat -m

四、快速自检清单 ✅

  • [ ] 使用 informix 用户
  • [ ] INFORMIXDIR / INFORMIXSERVER 正确
  • [ ] rootdbs 存在且权限正确
  • [ ] sqlhosts 配置正确
  • [ ] 内核共享内存足够
  • [ ] 查看了 oninit 日志

五、如果你愿意

你可以直接贴出:

  1. oninit -v 的输出
  2. oninit.log 报错内容
  3. Ubuntu 版本 + Informix 版本

我可以精准告诉你是哪一行配置错了

0