日志是调试Informix问题的核心依据,需优先收集并分析相关日志:
/opt/IBM/informix/log/(如server.log、startup.log)或/var/log/informix/(如dbserver.log、client.log),具体路径可通过onconfig配置文件中的MSGPATH参数确认。tail -f /opt/IBM/informix/log/server.log实时查看最新日志条目;grep "error" /var/log/informix/dbserver.log | sort | uniq -c过滤并统计错误信息,快速定位高频问题。tail -f /var/log/messages或journalctl -xe查看CentOS系统日志,排查系统级故障(如磁盘空间不足、网络中断)对Informix的影响。Informix提供了丰富的命令行工具,用于监控系统状态和定位具体问题:
onstat(系统状态监控):
onstat -:查看数据库整体状态(如缓冲池命中率、事务处理数);onstat -l:检查逻辑日志状态(若所有日志标志为U,表示未备份,可能导致数据库停止写入);onstat -d:查看数据库空间使用情况(若chunk flag为down,表示磁盘设备异常);onstat -k:查找锁冲突(如锁等待或死锁,需结合owner字段定位会话);onstat -u:查看当前会话信息(如会话ID、执行的SQL语句);onstat -x -r 10:每10秒刷新一次,监控长事务的回滚进度(通过LOGS ROLLED BACK字段估算剩余时间)。onmode(数据库模式管理):
onmode -c status:检查数据库当前运行状态(如Online、Quiescent);onmode -c checkdb:检查数据库完整性(修复轻微损坏);onmode -c shutdown:安全关闭数据库(需替换为实际命令参数)。onlog(日志解析):onlog /opt/IBM/informix/log/server.log解析日志文件,提取关键事件(如事务开始/结束、错误发生时间),辅助定位问题根源。根据日志和诊断命令的结果,聚焦以下常见问题:
onstat -x -r 10监控回滚进度;用onstat -ugrep <userthread>查找阻塞会话;用onstat -g ses <session_id>查看会话执行的SQL,定位触发长事务的具体操作(如未提交的大批量插入)。onstat -l显示所有日志标志为U。onparams -a添加新逻辑日志(需确保磁盘空间充足)。-243(无法定位表记录)、-244(无法读取下一行)。onstat -k grep <partnum>(partnum通过oncheck -pt <database>:<tabname>获取)查找锁拥有者;用onstat -u grep <address>定位会话,分析其执行的SQL(如长时间持有锁的查询)。chunk IO error,onstat -d显示chunk状态为down。ls /dev/sdX);验证设备权限(如ls -l /dev/sdX,确保Informix用户有读写权限);用dd if=/dev/sdX of=/dev/null bs=1M count=10测试设备读取功能(避免写入操作破坏数据)。error级别的日志),适合企业级运维。onconfig)前,先在测试环境验证,避免影响生产环境;onstat -输出、错误代码)。