故障现象:数据库日志显示“Aborting Long Transaction”,部分表被锁死,前台应用无法处理业务(如出账、批价卡住)。
排查步骤:
onstat -x -r 10命令监控长事务回滚进度,通过日志回滚速率估算剩余时间;onstat -c | grep MSG获取Informix运行日志路径(通常为informix/online_charge.log),查找最近的“Aborting Long Transaction”记录,定位具体事务;onstat -u | grep (userthread)获取受影响会话的Session ID,再用onstat -g ses <session_id>查看会话执行的SQL语句,定位触发长事务的操作。onparams -a -d DBspace -s size -i命令动态扩展);故障现象:数据库停止响应,所有操作无法执行;通过onstat –l命令查看,所有逻辑日志均处于“已使用未备份”状态(flags标记为U------)。
排查步骤:
onstat –x命令查看事务的逻辑日志起始位置(beginlg字段),确认是否有活动事务占用日志。ontape -s或第三方备份工具),释放已备份的日志空间;onstat -u找到对应会话,用onmode -z <session_id>强制终止)。故障现象:应用程序抛出锁错误码(如-243:无法定位表中的行;-244:无法执行物理顺序读取),影响并发操作。
排查步骤:
onstat -k | grep partnum查找锁定的表对应的partnum(分区号);onstat -u | grep address获取持有锁的会话信息(如用户、应用);onstat -g ses <session_id>查看会话正在执行的SQL,定位锁冲突根源。COMMITTED READ改为CURSOR STABILITY),减少锁持有时间;onconfig文件中的LOCKWAIT参数,默认120秒),超时报错而非无限等待。故障现象:数据库日志中出现“chunk IO error”,onstat –d命令显示chunk的flag状态为down,无法访问该chunk中的数据。
排查步骤:
/dev/sdb1);chown informix:informix /dev/sdb1);dd if=/dev/sdb1 of=/dev/null bs=1M count=100命令测试设备是否能正常读取(仅读操作,避免破坏数据)。onspaces命令添加新chunk,迁移数据);/var/log/messages)确认是否有磁盘错误(如SMART报警)。故障现象:客户端无法连接Informix数据库(报错如“Connection refused”“Network unreachable”)。
排查与解决方法:
sudo firewall-cmd --permanent --add-port=1521/tcp && sudo firewall-cmd --reload;systemctl status informix确认Informix服务是否运行,未运行则启动:systemctl start informix;/opt/informix/etc/sqlhosts文件,确认数据库服务器名、端口号、数据库名配置正确(如mydb onsoctcp localhost 1521);setenforce 0),若问题解决,修改/etc/selinux/config将SELINUX=enforcing改为permissive;ifxjdbc.jar)或ODBC数据源,连接字符串格式正确(如jdbc:informix-sqli://host:1521/mydb:INFORMIXSERVER=myserver)。故障现象:Informix服务无法启动,报错如“INFORMIXDIR not set”“Permission denied”。
解决方法:
informix)的~/.bash_profile文件,添加以下环境变量(根据实际安装路径调整):export INFORMIXDIR=/opt/IBM/Informix_Software_Bundle
export PATH=$INFORMIXDIR/bin:$PATH
export ONCONFIG=onconfig.myserver
export INFORMIXSERVER=myserver
source ~/.bash_profile使变量生效;/opt/informix)及数据目录(如/opt/informix/data)的所有者为informix用户(chown -R informix:informix /opt/informix)。故障现象:安装或运行时出现“Unsupported OS version”“Incompatible libraries”等错误。
解决方法:
informix用户组及用户(groupadd informix; useradd -g informix informix),设置安装目录权限(mkdir /opt/informix; chown informix:informix /opt/informix)。