在 CentOS 上排查 Informix 错误,一般可以从 日志、错误信息、数据库状态、系统资源 几个层面入手。下面给你一套比较实用的排查思路(按优先级)。
Informix 常见错误如:
SQLCODE = -206:表不存在SQLCODE = -1215:锁冲突SQLCODE = -908:网络/连接问题查看错误含义:
finderr 206
finderr是 Informix 自带工具,需要环境变量已设置。
默认路径(示例):
$INFORMIXDIR/tmp/online.log
或:
/opt/informix/tmp/online.log
查看最近错误:
tail -200 $INFORMIXDIR/tmp/online.log
常见关键字:
ERRORAssert FailureLong transactionLockOut of memoryonstat -
正常应显示:
Informix Dynamic Server Version ...
Status: On-Line
常见异常状态:
Off-LineRecoveryShutting Downonstat -g ses # 会话
onstat -g sql # SQL
onstat -g lck # 锁
onstat -g log # 日志
onstat -g mem # 内存
onstat -
ps -ef | grep oninit
netstat -tunlp | grep 9088 # 端口看 sqlhosts
cat $INFORMIXDIR/etc/sqlhosts
示例:
demo_on ontlitcp hostName 9088
df -h
Informix 对 /tmp、$INFORMIXDIR 很敏感。
free -m
检查:
ipcs -a
共享内存是否足够:
onstat -g seg
online.log$INFORMIXDIR/tmp 权限ipclean
onstat -g lck
onstat -g ses
onstat -g lon
如果你方便的话,可以把:
online.log 相关片段onstat - 输出发出来,我可以帮你精确判断是哪一类问题。