Informix数据库的日志系统是其数据完整性和恢复能力的核心,主要包括两类日志:
Informix日志文件通常存储在数据目录下(可通过onconfig文件中的ROOTPATH参数查看),常见子目录包括:
/opt/informix/data/(默认安装路径)/var/log/informix/(自定义路径,需在onconfig中修改LOGPATH参数)log.ctl(控制日志)、log.dat(数据日志)、online.log(在线日志)、physlog(物理日志)。日志的核心配置通过onconfig文件(如/opt/informix/etc/onconfig)完成,关键参数包括:
LOGFILES(逻辑日志文件数量,如LOGFILES 8表示8个逻辑日志文件)、LOGSIZE(每个逻辑日志文件大小,单位为KB,如LOGSIZE 200000表示约200MB)、DYNALOGS(动态日志文件路径,如DYNALOGS /opt/informix/log/)。PHYSFILE(物理日志文件大小,如PHYSFILE 100000表示约100MB)、PHYSBUFF(物理日志缓冲区大小,如PHYSBUFF 64表示64KB)、PHYSDBS(物理日志所在dbspace,如PHYSDBS rootdbs)。onconfig后,需重启数据库或使用onmode -wf命令使配置生效。onstat -l命令,显示逻辑日志文件的使用情况(如当前使用的日志ID、剩余空间)。onstat -p命令,显示物理日志的状态(如是否启用、当前写入位置)。tail -f /opt/informix/log/online.log命令实时查看在线日志的最新内容(如事务提交、错误信息)。less /opt/informix/log/log.dat命令分页查看大型日志文件(支持上下翻页、搜索)。echo "" > /opt/informix/log/online.log命令清空在线日志(需谨慎操作,避免影响正在运行的事务)。gzip /opt/informix/log/oldlog.log命令压缩旧日志文件(节省磁盘空间)。cp /opt/informix/log/log.ctl /backup/命令备份控制日志(需在逻辑日志备份前完成)。为防止日志文件无限增长占用磁盘空间,需使用Linux系统自带的logrotate工具进行自动轮转。配置步骤如下:
/etc/logrotate.d/informix文件,添加以下内容:/opt/informix/log/*.log {
    daily           # 每天轮转
    rotate 7        # 保留7个旧日志文件
    compress        # 压缩旧日志(使用gzip)
    missingok       # 如果日志文件不存在,不报错
    notifempty      # 如果日志文件为空,不轮转
    create 0644 informix informix  # 创建新日志文件,权限为0644,属主为informix用户
    sharedscripts   # 所有日志轮转完成后执行postrotate脚本
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate  # 通知rsyslog重新打开日志文件
    endscript
}
/usr/sbin/logrotate -f /etc/logrotate.d/informix命令,强制立即轮转日志。journalctl -u informix命令(适用于systemd系统)实时查看Informix服务的日志输出。grep "ERROR" /opt/informix/log/online.log命令搜索日志中的错误信息(快速定位问题)。logwatch工具生成日志报告,安装命令为sudo apt-get install logwatch(Debian/Ubuntu)或sudo yum install logwatch(CentOS/RHEL),运行logwatch --service informix生成每日报告。Informix支持多种日志模式,需根据业务需求选择:
ontape -s -L 0 dbname(将数据库设置为无日志模式)。onconfig中设置BUFFERED LOG。onconfig中移除BUFFERED LOG参数。CREATE DATABASE dbname WITH LOG MODE ANSI。通过编辑INFORMIXDIR/aaodir/adtcfg文件,设置审计参数(如AUDIT_ALL=1记录所有用户操作、AUDIT_FILE=/opt/informix/log/audit.log指定审计日志路径),记录用户登录、权限更改、数据修改等操作,便于安全事件调查。
确保日志文件仅能被informix用户和root用户访问(使用chmod 640 /opt/informix/log/*.log命令设置权限),避免敏感数据泄露。
ontape -s命令备份逻辑日志,确保数据可恢复。LOGSIZE和PHYSFILE参数,避免日志文件过大导致性能下降。rsyslog配置),实现集中管理和异地容灾。