在 Linux 上排查 IBM Informix 问题,通常遵循“分层定位”的思路:
系统层 → 数据库实例层 → 连接层 → SQL/应用层。下面给你一套实用排错清单。
onstat -
常见状态:
On-Line:正常Quiescent:受限模式Shutdown:已停Recovery:恢复中如果没运行:
oninit -v
env | grep INFORMIX
关键变量:
INFORMIXDIRINFORMIXSERVERONCONFIGPATH 包含 $INFORMIXDIR/bin示例:
export INFORMIXDIR=/opt/ibm/informix
export INFORMIXSERVER=ol_informix
export ONCONFIG=onconfig.ol_informix
export PATH=$INFORMIXDIR/bin:$PATH
onstat -m
或查看文件:
$INFORMIXDIR/tmp/ol_informix.log
(路径在 onconfig 的 MSGPATH 中)
重点看:
ERRORFATALlong transactiondisk fulllocks/var/log/messages
/var/log/syslog
看是否有:
dbaccess dbname -
或
isql dbname
onstat -g ntt
或
netstat -an | grep 1526
sqlhosts 示例:
ol_informix onsoctcp linuxhost 1526
INFORMIXSERVER 不匹配sqlhosts 配置错误iptables -L
firewall-cmd --list-all
onstat -u
onstat -g ses
onstat -k
onstat -g lock
onstat -x
onstat -g sql
onstat -d
关注:
Dbspaces 是否 100%df -h
$INFORMIXDIR/etc/onconfig.ol_informix
重点:
ROOTPATHMSGPATHTAPEDEVLOGSIZELOCKS| 现象 | 可能原因 |
|---|---|
-25596 |
实例未启动 |
-908 |
网络/sqlhosts 错误 |
-206 |
表不存在 |
-1215 |
锁冲突 |
-710 |
表锁 |
| 启动慢 | 日志恢复 / 磁盘 IO |
onstat -onstat -mdf -honstat -u / -koninit -v如果你愿意,可以告诉我:
我可以直接帮你定位到具体原因和优化方案。