温馨提示×

Ubuntu如何调试Informix

小樊
44
2026-07-06 10:01:33
栏目: 智能运维

在 Ubuntu 上调试 IBM Informix(通常指 IDS / Informix Dynamic Server)可以从安装、运行、SQL、性能、崩溃、日志等多个层面入手。下面给你一套从入门到进阶的调试指南,适用于大多数场景。


一、确认 Informix 是否正常运行

1️⃣ 查看 Informix 服务状态

onstat -

常见状态:

  • Informix is ready
  • shared memory not initialized ❌(未启动)

启动数据库:

oninit -v

关闭数据库:

onmode -ky

二、查看 Informix 日志(最重要)

1️⃣ 在线日志(Online Log)

cd $INFORMIXDIR/tmp
ls -lh

或:

cd $INFORMIXDIR/log
cat online.log

查看实时日志:

tail -f online.log

常见错误关键词:

  • ERROR
  • FATAL
  • assert failure
  • long transaction
  • lock table

三、调试 SQL 问题

1️⃣ 使用 dbaccess

dbaccess dbname

调试技巧:

  • 打开 SET EXPLAIN
SET EXPLAIN ON;
SELECT * FROM table;

生成执行计划:

cat $INFORMIXDIR/tmp/*.out

2️⃣ 查看慢 SQL

SET EXPLAIN ON AVOID_EXECUTE;

或开启 SQL 跟踪(需管理员):

onstat -g sql

四、调试连接问题

1️⃣ 检查端口和服务

netstat -tunlp | grep 9088

或:

onstat -g ntt

2️⃣ 检查 sqlhosts

cat $INFORMIXDIR/etc/sqlhosts

示例:

demo_on onsoctcp 127.0.0.1 9088

测试连接:

telnet 127.0.0.1 9088

五、调试锁和事务问题

1️⃣ 查看锁

onstat -k

2️⃣ 查看等待锁的会话

onstat -u

3️⃣ 杀掉阻塞会话

onmode -z <session_id>

六、调试内存与性能

1️⃣ 查看内存使用

onstat -g mem

2️⃣ 查看缓冲池

onstat -p

3️⃣ 查看 CPU 使用

onstat -g cpu

七、调试 Informix 崩溃(Assertion Failure)

1️⃣ 查找断言错误

grep -i assert online.log

2️⃣ 查看 core dump

ls -lh core*

分析 core(需 gdb):

gdb $INFORMIXDIR/bin/oninit core

八、Ubuntu 特有调试技巧

1️⃣ 检查依赖库

Informix 依赖 32 位库:

ldd $INFORMIXDIR/bin/oninit

缺少库时安装:

sudo apt install libc6:i386 libstdc++6:i386

2️⃣ 环境变量检查

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

十、如果你愿意,我可以进一步帮你

你可以直接告诉我:

  1. Ubuntu 版本(20.04 / 22.04 / 24.04)
  2. Informix 版本
  3. 具体报错信息
  4. 连不上 / 慢 / 崩溃 / 锁表 / SQL 报错

我可以给你精确到命令级别的解决方案

0