在 Ubuntu 上调试 IBM Informix(通常指 IDS / Informix Dynamic Server)可以从安装、运行、SQL、性能、崩溃、日志等多个层面入手。下面给你一套从入门到进阶的调试指南,适用于大多数场景。
onstat -
常见状态:
Informix is ready ✅shared memory not initialized ❌(未启动)启动数据库:
oninit -v
关闭数据库:
onmode -ky
cd $INFORMIXDIR/tmp
ls -lh
或:
cd $INFORMIXDIR/log
cat online.log
查看实时日志:
tail -f online.log
常见错误关键词:
ERRORFATALassert failurelong transactionlock tabledbaccess dbname
调试技巧:
SET EXPLAINSET EXPLAIN ON;
SELECT * FROM table;
生成执行计划:
cat $INFORMIXDIR/tmp/*.out
SET EXPLAIN ON AVOID_EXECUTE;
或开启 SQL 跟踪(需管理员):
onstat -g sql
netstat -tunlp | grep 9088
或:
onstat -g ntt
cat $INFORMIXDIR/etc/sqlhosts
示例:
demo_on onsoctcp 127.0.0.1 9088
测试连接:
telnet 127.0.0.1 9088
onstat -k
onstat -u
onmode -z <session_id>
onstat -g mem
onstat -p
onstat -g cpu
grep -i assert online.log
ls -lh core*
分析 core(需 gdb):
gdb $INFORMIXDIR/bin/oninit core
Informix 依赖 32 位库:
ldd $INFORMIXDIR/bin/oninit
缺少库时安装:
sudo apt install libc6:i386 libstdc++6:i386
env | grep INFORMIX
必须包含:
INFORMIXDIR
INFORMIXSERVER
ONCONFIG
PATH
LD_LIBRARY_PATH
| 目的 | 命令 |
|---|---|
| 查看状态 | onstat - |
| 启动/关闭 | oninit -v / onmode -ky |
| 查看日志 | tail -f online.log |
| SQL 执行计划 | SET EXPLAIN ON |
| 查看锁 | onstat -k |
| 查看会话 | onstat -u |
| 杀会话 | onmode -z |
| 查看端口 | onstat -g ntt |
| 查看内存 | onstat -g mem |
你可以直接告诉我:
我可以给你精确到命令级别的解决方案。