温馨提示×

Debian Informix日志管理方法

小樊
45
2025-12-17 23:10:13
栏目: 智能运维

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 观察日志 %usedflags,确保大部分日志处于 U-B(已备份可复用)状态;避免当前日志与后续日志均 100% 且无备份导致实例挂起。

五 集中监控与告警建议

  • 本地分析:结合 onstat -l/-d、tail/grep/awk 对 online.log 进行关键字与趋势分析;可用 Logwatch 生成日报。
  • 集中化:将 online.log 通过 rsyslogFilebeat 发送至 ELK/Graylog,在 Kibana/Graylog 中配置错误与长事务告警。
  • 主机与容量:用 Nagios/Zabbix 监控日志目录磁盘使用率、日志增长速率与关键进程存活,结合阈值告警。

0