在 Linux 上监控 IBM Informix 数据库,通常从 数据库内部状态、操作系统资源、日志、性能 SQL 四个层面来做。下面按“实用 + 常用”的方式给你一个完整监控指南。
onstat(核心监控命令)onstat 是 Informix 最重要的监控工具。
onstat -g all
常用监控项:
| 监控项 | 命令 | 说明 |
|---|---|---|
| 实例状态 | onstat - |
看实例是否在线 |
| 会话 | onstat -u |
当前用户连接 |
| SQL 执行 | onstat -g sql |
正在执行的 SQL |
| 锁 | onstat -g lck |
锁信息 |
| 死锁 | onstat -g dlk |
死锁 |
| 长事务 | onstat -g lon |
长事务 |
| 内存 | onstat -g mem |
内存使用 |
| 磁盘 IO | onstat -g iof |
IO 情况 |
| CPU | onstat -g cpu |
CPU 使用 |
| 检查点 | onstat -g ckp |
检查点 |
| 缓冲区 | onstat -g buf |
缓冲池 |
✅ 生产环境必会
oncheck用于检查数据完整性、索引、空间。
oncheck -pe
oncheck -ci database:table
onmode用于实例管理和部分监控:
onmode -l # 日志状态
onmode -g # 部分监控信息
适合做 自动化监控 / 脚本 / Zabbix
SELECT * FROM sysmaster:syssessions;
SELECT * FROM sysmaster:syslocks;
SELECT * FROM sysmaster:syssqlstat;
SELECT * FROM sysmaster:sysvplist;
SELECT * FROM sysmaster:sysprofile;
SELECT COUNT(*) FROM sysmaster:syssessions;
SELECT * FROM sysmaster:syslocks WHERE waiter <> 0;
cd $INFORMIXDIR/tmp
tail -f online.log
或:
find $INFORMIXDIR -name online.log
Long transactionDeadlockCheckpointAssertion failureError✅ 建议接入 日志告警系统
top
htop
vmstat 1
iostat -x 1
ps -ef | grep oninit
onstat -d
df -h
onstat -d
关注:
% used✅ 空间满会导致 实例宕机
✅ 必须监控
✅ 性能问题排查顺序
onstat -u → 会话onstat -g sql → SQLonstat -g lck → 锁onstat -g lon → 长事务onstat - | grep -q "On-Line"
if [ $? -ne 0 ]; then
echo "Informix down"
fi
Linux Informix 监控 = onstat + 系统表 + 日志 + OS 资源 + 自动化告警
如果你愿意,我可以帮你:
你现在用的是 哪个 Informix 版本 + 场景(生产 / 测试)?