在 Ubuntu 上调试 Informix(通常指 IBM Informix 数据库)一般涉及 环境准备、连接测试、日志分析、SQL 调试、以及程序(C/Java/ODBC 等)调试。下面按常见场景给你一套实用做法。
常见组件:
示例(CSDK):
sudo dpkg -i ibm.csdk*.deb
在 ~/.bashrc 或 /etc/profile 中:
export INFORMIXDIR=/opt/ibm/informix
export INFORMIXSERVER=ol_informix
export PATH=$INFORMIXDIR/bin:$PATH
export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH
生效:
source ~/.bashrc
dbaccess
或:
isql -v ol_informix
onstat -
若报错:
INFORMIXSERVER not foundCannot connect to server检查:
cat $INFORMIXDIR/etc/sqlhosts
示例:
ol_informix onsoctcp 127.0.0.1 9088
测试端口:
telnet 127.0.0.1 9088
# 或
nc -zv 127.0.0.1 9088
onstat -g ses
onstat -g sql <session_id>
SET EXPLAIN ON;
SELECT * FROM orders WHERE cust_id = 10;
SET EXPLAIN OFF;
生成文件:
$INFORMIXDIR/tmp/sqexplain.out
onstat -g sql
onstat -g stm
tail -f $INFORMIXDIR/tmp/online.log
finderr -1215
esql test.ec -o test
gdb ./test
run
-1215:锁冲突-206:表不存在-25580:网络/协议错误检查:
cat /etc/odbc.ini
cat /etc/odbcinst.ini
测试:
isql -v informix_dsn user pass
jdbc:informix-sqli://127.0.0.1:9088/testdb:INFORMIXSERVER=ol_informix
开启 JDBC 日志:
-Dcom.ibm.as400.access.Trace=true
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386
Informix 老版本可能不支持新 Ubuntu
解决:
| 场景 | 工具 |
|---|---|
| SQL | dbaccess + SET EXPLAIN |
| 性能 | onstat |
| C | esql + gdb |
| 网络 | telnet / nc |
| 日志 | online.log |
如果你能告诉我:
我可以给你更精确的调试步骤。