在 Linux 上监控 IBM Informix 数据库状态,通常可以从 系统级监控、数据库内部监控、日志监控、自动化工具 几个层面来做。下面按实用程度给你一套常见方法。
onstat(最核心)Informix 自带的状态查看命令,必须在 Informix 用户环境下使用。
su - informix
常用命令:
onstat -
查看数据库整体状态(是否在线、版本、启动时间)
onstat -g ses
查看当前会话
onstat -g sql
查看正在执行的 SQL
onstat -g lon
长事务监控
onstat -g dsk
磁盘 I/O 状态
onstat -g mem
内存使用情况
onstat -p
性能统计(命中率、锁、排序等)
onmode用于查看或调整运行状态:
onmode -ky # 关闭数据库
onmode -m # 进入 online
oncheck检查数据库一致性:
oncheck -pr
检查物理和逻辑日志
默认在 $INFORMIXDIR/tmp 或 $INFORMIXDIR/logs
cd $INFORMIXDIR/tmp
ls -l *alarm*
查看核心日志:
cat /usr/informix/tmp/online.log
onstat -g err
ps -ef | grep oninit
top -u informix
iostat -x 1
netstat -an | grep 1526
(1526 是 Informix 默认端口)
通过 dbaccess 或程序连接后执行:
SELECT * FROM sysmaster:sysprocesses;
SELECT * FROM sysmaster:syslocks;
SELECT * FROM sysmaster:syslogs;
示例:每 5 分钟检查数据库是否在线
#!/bin/bash
onstat - | grep -q "On-Line"
if [ $? -ne 0 ]; then
echo "Informix down" | mail -s "Alert" dba@company.com
fi
crontab -e
*/5 * * * * /home/informix/check_inf.sh
如果你愿意,可以告诉我:
我可以给你一套 专用监控脚本或 Zabbix 模板。