在 Linux 上排查 IBM Informix 故障,一般按“看日志 → 看状态 → 看资源 → 看配置 → 看SQL”的顺序来。下面给你一套实用排错思路和常用命令。
onstat -
On-LineOff-Line / Initialization / Recovery查看进程:
ps -ef | grep oninit
onstat -m
或看文件:
cat $INFORMIXDIR/tmp/online.log
(路径由 MSGPATH 决定)
常见错误:
Cannot open chunkLong transaction abortedLogical log fullOut of memoryonstat -p # 性能
onstat -l # 逻辑日志
onstat -d # dbspace / chunk
onstat -u # 用户会话
onstat -g ses # 会话详情
检查:
onstat -
看 online.log 中是否有:
修复示例:
chown informix:informix /data/chunk1
chmod 660 /data/chunk1
onstat -l
若很多 U 且未备份:
onmode -l # 切换日志
ontape -a # 备份日志
onstat -u | grep -i L
找到会话:
onmode -z <session_id>
isql dbname
常见原因:
sqlhosts 配置错误netstat -an | grep 1526
检查:
cat $INFORMIXSQLHOSTS
df -h
free -m
top
Informix 对:
非常敏感。
onstat -c
重点看:
ROOTPATHDBSERVERNAMEMSGPATHLOGSIZEBUFFERPOOL慢 SQL:
SET EXPLAIN ON;
生成 sqexplain.out
锁问题:
onstat -k
onstat -g sql
如果你能贴出:
onstat - 输出online.log 报错片段我可以帮你精确定位问题。