Debian 上管理 Informix 日志的实用方案
一 日志类型与存放路径
- 数据库运行日志:实例的消息日志(如 online.log)通常位于 MSGPATH 配置项指向的目录,常见路径为 /opt/informix/log 或 /var/log/informix。可用命令快速确认:onstat -g cfg | grep MSGPATH。该日志用于记录实例启动、检查点、错误与告警等关键信息。
- 事务日志:包括 物理日志(Physical Log) 与 逻辑日志(Logical Logs),它们位于由 onconfig 中 ROOTDBS/DBSPACETEMP/PHYSFILE/LOGTAPEDEV 等参数指定的 dbspace/chunk 上,属于数据库空间的一部分,不能等同于普通文本文件用系统命令直接轮转。物理日志保存数据页的 before image 用于快速恢复;逻辑日志用于 REDO/UNDO,最少 3 个,最多 32767 个。
二 查看与监控
- 实时查看消息日志:tail -f /opt/informix/log/online.log(路径以 MSGPATH 为准)。
- 事务日志状态与切换:
- onstat -l:查看逻辑日志总体与每个日志的状态(如 U-B 表示已使用且已备份可复用,U—C-L 表示当前正在写入)。
- onmode -l:强制切换到下一个逻辑日志,配合备份策略避免日志被写满。
- 性能与缓冲:onstat -d 可查看数据库空间与缓冲使用情况;逻辑日志缓冲由 LOGBUFF 控制,过小会增加 I/O,过大则增大故障恢复窗口。
三 消息日志轮转与清理(Debian 推荐做法)
- 使用 logrotate 管理 online.log 等文本日志,创建文件 /etc/logrotate.d/informix:
/opt/informix/log/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 informix informix
sharedscripts
postrotate
# 可选:通知 Informix 重新打开日志(若应用支持),或仅确保权限/句柄正常
# 例如:su - informix -c "touch /opt/informix/log/.rotate_$(date +\%s)"
endscript
}
- 测试与生效:
- 手动测试:/usr/sbin/logrotate -vf /etc/logrotate.d/informix
- 验证轮转:ls -lh /opt/informix/log/ 查看 .1/.gz 等归档文件
- 安全建议:
- 以 informix 用户/组运行轮转与清理,避免权限错误。
- 保留周期与压缩策略结合磁盘容量与审计要求设置(如保留 7–30 天)。
四 事务日志管理(物理日志与逻辑日志)
- 物理日志(Physical Log)
- 作用:保存被修改数据页的 before image,用于前滚恢复。
- 调整方法:使用 onparams -p -s <大小页> -d <目标dbspace> 迁移/调整大小(示例:onparams -p -s 40000 -d phydbs -y)。调整后实例会进行恢复流程,请在维护窗口执行。
- 逻辑日志(Logical Logs)
- 作用:记录事务细节,用于 REDO/UNDO;最少 3 个,最多 32767 个。
- 容量规划:总空间 ≈ logsize × logfiles;业务高峰与长事务需预留充足空间。
- 动态管理:
- 新增:onparams -a -d -s <大小页> -i
- 删除:先全备(ontape -s -L 0),切换至新日志(onmode -l),做检查点(onmode -c),再删除旧日志(onparams -d -l <日志号> -y)
- 备份与循环:
- 自动备份:ontape -a(按计划运行,备份后日志可复用)
- 连续备份:ontape -c(持续将日志备份到指定设备,避免写满)
- 若仅希望“允许循环”而不实际落盘,可在 onconfig 中将 LTAPEDEV 指向 /dev/null(仅用于测试或特殊场景,生产不建议)。
- 关键监控项:
- 使用 onstat -l 观察日志 %used 与 flags,确保大部分日志处于 U-B(已备份可复用)状态;避免当前日志与后续日志均 100% 且无备份导致实例挂起。
五 集中监控与告警建议
- 本地分析:结合 onstat -l/-d、tail/grep/awk 对 online.log 进行关键字与趋势分析;可用 Logwatch 生成日报。
- 集中化:将 online.log 通过 rsyslog 或 Filebeat 发送至 ELK/Graylog,在 Kibana/Graylog 中配置错误与长事务告警。
- 主机与容量:用 Nagios/Zabbix 监控日志目录磁盘使用率、日志增长速率与关键进程存活,结合阈值告警。