记录故障的具体表现(如数据库无法启动、查询超时、报错代码)、发生时间及触发条件(如执行某SQL后、系统重启后)。尝试在测试环境重现问题,缩小故障范围。
/var/log/messages、/var/log/syslog、/var/log/auth.log(认证问题),使用tail -f实时查看最新日志,关注硬件错误、权限拒绝、服务崩溃等信息。onstat -l(查看是否有未备份的逻辑日志,标志为U------);onstat -p(确认物理日志文件大小、位置是否正常);.log文件(如/opt/informix/databases/<dbname>/<dbname>.log),记录具体错误详情。ps -ef | grep informix,确认oninit(数据库引擎)、onstat(监控工具)、dbaccess(客户端工具)等进程是否运行。onstat -(无参数)查看数据库是否处于在线状态(Online),若未启动,使用oninit -v(正常启动)或oninit -ivyw(强制初始化,修复共享内存问题)启动。$INFORMIXDIR(Informix安装目录)、$ONCONFIG(配置文件路径,如/opt/informix/etc/onconfig.<dbname>)、$LD_LIBRARY_PATH(库文件路径)是否设置正确;检查onconfig文件中的关键参数(如ROOTPATH根空间路径、LOGPATH逻辑日志路径、DBSPACENAME表空间配置)是否符合当前环境。top、htop查看是否有进程占用过高资源(如oninit占用100% CPU,可能是死锁或查询阻塞);free -m检查内存剩余量(避免因内存不足导致数据库崩溃)。df -h查看磁盘分区使用率(特别是ROOTPATH、LOGPATH所在分区),若使用率超过80%,需清理无用文件(如旧日志、备份)或扩容。iostat -x 1(每秒刷新)查看磁盘读写延迟(await值过高,如超过20ms,可能是磁盘性能瓶颈)。onstat -l显示所有逻辑日志标志为U------(未备份)。onbar或ontape工具);② 若无法备份,增加逻辑日志(onparams -a -d <DBspace> -s <size> -i,需空闲chunk空间);③ 清理活动事务(onstat -x查看beginlg,确认事务起始日志,等待事务提交或回滚)。-243(无法获取锁)、-244(锁超时),onstat -u显示有锁等待。onstat -u中的sid),使用onmode -z <sid>终止阻塞进程(谨慎操作,避免影响业务);② 调整隔离级别(如SET ISOLATION TO DIRTY READ降低锁粒度);③ 优化SQL(减少长事务、添加索引,加快查询速度)。dbaccess - <dbname>报错-329(数据库不存在)或-387(无连接权限)。onstat -d查看数据库列表);② 检查DBPATH环境变量(是否包含数据库所在目录);③ 授权用户连接权限(GRANT CONNECT ON DATABASE <dbname> TO <username>)。-271(无法插入新行),onstat -d显示表空间使用率100%。alter dbspace <dbspace_name> add size <size>);② 添加新的chunks(onparams -a -d <dbspace_name> -s <size>);③ 清理无用数据(如归档历史表数据)。onstat -g act查看活动连接、onstat -g ses查看会话详情、onstat -g seg查看共享内存段);oncheck -p <dbname>检查物理一致性、oncheck -cu <dbname>检查逻辑一致性);strace -p <pid>,查看进程卡在哪一步,如等待磁盘IO);gdb,适用于复杂崩溃问题,如gdb /opt/IBM/informix/bin/oninit <core_file>分析core dump)。onbar或ontape工具备份数据库(全备+增量备份),测试备份可用性(onbar -r恢复测试);update statistics(更新统计信息,优化查询计划)、每月执行defragment(碎片整理,提升空间利用率);以上步骤覆盖了Debian系统下Informix故障的排查流程、常见场景及解决方法。实际操作中需结合具体错误信息灵活调整,优先解决影响业务的紧急问题(如数据库无法启动),再处理性能或功能问题。若问题无法解决,建议联系IBM技术支持或查阅官方文档。