Informix 在 Debian 上的日志查看与定位
一 日志类型与存放位置
- 数据库引擎日志:包括逻辑日志、物理日志与共享内存/消息日志。逻辑日志用于记录事务操作,物理日志用于记录数据页的原始映像,二者是数据库恢复的关键;共享内存/消息日志包含引擎启动、检查点、错误与告警等运行时信息。逻辑日志是循环使用的多个日志文件,物理日志以页为单位分配与释放。
- 文件位置:日志的实际路径由实例的 onconfig 配置决定,常见位置包括 /opt/informix/ 下的 data/、log/ 或自定义目录;部分环境也会将引擎消息日志写入 /var/log/informix/。请以实例的 onconfig 参数为准(如 ROOTPATH、LTAPEDEV、MSGPATH 等)。
二 用 onstat 实时查看引擎日志要点
- 查看逻辑日志整体状态(是否接近用尽、备份是否跟上):执行 onstat -l。
- 检查是否存在长事务或事务起始位置异常:执行 onstat -x。
- 查看数据库空间与 chunk 健康(间接判断 IO/日志写入是否异常):执行 onstat -d。
- 辅助判断检查点、刷新与缓存命中:执行 onstat -c、onstat -F、onstat -p。
- 需要临时切换逻辑日志文件时:执行 onmode -l;强制做检查点:执行 onmode -c。
以上命令无需停机,适合在线排查与巡检。
三 查看磁盘上的日志文件
- 实时跟踪引擎消息日志(按你的 MSGPATH 实际路径调整):
tail -f /opt/informix/log/online.log
或(若使用系统日志目录):
tail -f /var/log/informix/*.log
- 查看逻辑日志备份/归档(按你的 LTAPEDEV 实际路径调整):
tail -f /opt/informix/arch/lt000000.000
- 文本检索与统计(定位错误关键字、统计出现次数):
grep -i “error” /opt/informix/log/*.log
grep “ERROR” /opt/informix/log/log.ctl | awk ‘{print $1,$2,$NF}’ | sort | uniq -c
- 建议以实例的 onconfig 参数为准确认具体路径,再使用 tail/grep/awk 等命令进行查看与分析。
四 日志轮转与集中监控
- 使用 logrotate 做自动轮转(示例,路径按实际调整):
/var/log/informix/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0644 informix informix
}
- 集中监控与告警:可将日志接入 rsyslog 发送到远程日志服务器,或使用 ELK/Graylog 做可视化与告警;结合 Nagios/Zabbix 对关键错误关键字与磁盘空间设置阈值告警。
五 常见排障场景与命令组合
- 逻辑日志满或备份滞后:执行 onstat -l 观察日志使用与备份状态;若需临时缓解,先 onmode -l 切换日志,再尽快完成逻辑日志备份(如 ontape/cbtape)。
- 长事务导致回滚/阻塞:执行 onstat -x 查看事务起始位置与持续时间,必要时拆分大事务、提前提交。
- 磁盘或 chunk 异常:执行 onstat -d 检查空间与 IO 错误,配合系统层面检查磁盘与权限。
- 需要强制执行检查点:执行 onmode -c,随后再次观察 onstat -l 与告警日志确认恢复进度。