在 CentOS 上监控 IBM Informix 通常可以从 操作系统层、数据库实例层 和 工具/脚本层 三个维度来做。下面给你一套比较实用、可落地的方案。
确认 Informix 是否存活:
ps -ef | grep oninit
常用进程:
oninit:数据库主进程onmode:管理进程查看监听端口(默认 9088 / 1526 等,取决于配置):
netstat -tunlp | grep oninit
# 或
ss -tunlp | grep oninit
top
htop
iostat -x 1
vmstat 1
重点看:
onstat -
查看实例整体状态(版本、模式、启动时间)
常用命令:
onstat -g ses # 当前会话
onstat -g sql # 正在执行的 SQL
onstat -g con # 连接数
onstat -g mem # 内存使用
onstat -g ioq # IO 队列
onstat -g lck # 锁信息
onstat -g log # 逻辑日志
onstat -g cra # 检查点
onmode -ky # 关闭
onmode -m # 主备切换
onmode -p # 调整 VP
cd $INFORMIXDIR/tmp
ls -lh *.log
或在线日志:
onstat -g msg
通过 dbaccess 或程序连接后执行:
SELECT * FROM sysmaster:sysprofile;
SELECT * FROM sysmaster:syssessions;
SELECT * FROM sysmaster:syslocks;
常用监控点:
示例:检测进程是否存在
#!/bin/bash
if ! pgrep oninit > /dev/null; then
echo "Informix down" | mail -s "Alert" admin@xx.com
fi
onstatUserParameter=informix.sessions,onstat -g ses | wc -l
| 类别 | 指标 |
|---|---|
| 可用性 | oninit 是否存在 |
| 性能 | 逻辑日志使用率 |
| 性能 | 锁等待次数 |
| 性能 | 长事务 |
| 资源 | 磁盘 IO |
| 资源 | 共享内存 |
onstat -p # 命中率
onstat -d # chunk 状态
onstat -l # 日志状态
oncheck -pr # 物理结构检查
如果你愿意,可以告诉我:
我可以给你一套 可直接用的监控脚本或 Zabbix 模板。