Debian 上 Informix 日志管理实操指南
一 日志类型与定位
- 事务日志
- 逻辑日志:记录事务操作,用于前滚/回滚与时间点恢复。
- 物理日志:保存被修改数据的前映像,用于快速恢复。
- 引擎消息日志
- 默认路径由 MSGPATH 指定,常见位置为 /var/log/informix/online.log 或 /opt/informix/log/online.log。可用以下命令快速确认:
- 查看消息日志路径:onstat -g cfg | grep MSGPATH
- 实时查看:tail -f /var/log/informix/*.log
- 分页查看:less /var/log/informix/online.log
- 关键字检索:grep -i “error|fail” /var/log/informix/*.log
- 说明:逻辑/物理日志属于数据库引擎内部日志,不由操作系统文件轮转直接管理;消息日志(online.log 等)适合用 logrotate 管理。
二 查看与监控
- 事务日志状态
- 查看逻辑日志与物理日志概况:onstat -l
- 查看数据库空间与 chunk:onstat -d
- 查看引擎消息日志:onstat -m
- 实时监控与告警
- 使用 tail -f 观察 online.log 的最新输出,配合 grep 做关键字告警。
- 结合 Nagios/Zabbix 对日志关键字、文件大小、磁盘使用率设置监控与告警,便于 7×24 及时发现异常。
三 消息日志轮转与清理(logrotate)
- 创建配置
- 新建文件:/etc/logrotate.d/informix
- 示例(按日轮转、保留 7 天、压缩、自动创建):
- /var/log/informix/*.log {
- daily
- rotate 7
- compress
- missingok
- notifempty
- create 0640 informix informix
- postrotate
- /usr/bin/kill -HUP $(cat /var/run/informix.pid 2>/dev/null) || true
- endscript
- }
- 测试与生效
- 手动测试:/usr/sbin/logrotate -f /etc/logrotate.d/informix
- 说明:路径、用户与 PID 文件位置需与现场环境一致;若使用 systemd,也可通过服务通知机制触发日志重新打开。
四 事务日志管理(逻辑日志与物理日志)
- 物理日志
- 调整位置与大小(需进入 quiescent 模式执行):
- onparams -p -s <size_in_KB> -d -y
- 注意:分配空间必须连续,操作前确保目标 DBspace 有足够连续空间。
- 逻辑日志
- 增加逻辑日志(可在 online 状态添加,新增日志初始为 “A” 状态):
- 指定大小:onparams -a -d -s <size_in_KB>
- 使用默认大小:onparams -a -d
- 删除逻辑日志(先备份,再切换日志,最后删除旧日志):
- 备份:ontape -s -L 0
- 切换当前日志:onmode -l
- 强制检查点:onmode -c
- 删除:onparams -d -l
- 常用查询:onstat -l 查看日志状态与使用情况。
- 数据库日志模式(按库设置)
- 开启无缓冲日志:ontape -s -U
- 开启缓冲日志:ontape -s -B
- 关闭日志:ontape -s -N
- 设置为 ANSI 模式:ontape -s -A (谨慎,后续切换受限)
五 备份与恢复要点
- 逻辑日志备份与连续归档
- 归档备份:ontape -a
- 连续归档:ontape -c(适合生产环境持续写入)
- 整库备份与恢复
- 零级备份:ontape -s -L 0
- 恢复:ontape -r(按提示选择归档日志;若仅恢复部分 DBspace,可用 ontape -r -D …)
- 提示:进行逻辑日志删除、迁移等高风险操作前,务必完成有效的 0 级备份 并验证可恢复性。