informix在ubuntu上的故障排除
小樊
33
2026-01-05 15:36:19
Ubuntu 上 Informix 故障排除手册
一 快速定位流程
- 明确现象与时间点:记录报错原文、告警、功能异常、发生时间、最近变更(升级、参数调整、数据/负载变化)。
- 查看系统日志:优先检查 /var/log/syslog、/var/log/messages、/var/log/auth.log,并使用 journalctl -xe、dmesg 获取内核与系统事件线索。
- 检查资源与进程:用 top/htop、ps/pstree、free、vmstat、iostat 观察 CPU、内存、I/O 与关键进程状态。
- 网络连通与端口:用 ping、traceroute、ss/ netstat、nslookup/dig 验证到数据库主机的连通性、端口占用与 DNS 解析。
- 定位范围:按“环境→实例→会话→SQL/事务→存储/网络”链路逐步缩小问题面。
- 处理与验证:实施修复并回归验证,记录根因与处置过程,形成可复用的 SOP。
二 常见故障与修复要点
-
权限与安全设置不当
- 现象:初始化时报 “permissions 0777 include public write access”;目录被判定 “path is not trusted”;或 “/opt/informix/tmp is too secure (has mode 755, needs 770)”。
- 处置:
- 修正目录属主与权限:
- sudo chown -R informix:informix /opt/informix
- sudo chmod -R 755 /opt/informix
- 放宽临时目录:sudo chmod 770 /opt/informix/tmp
- 避免使用 0777,确保仅属主/属组具备必要权限。
-
文件描述符与共享内存不足
- 现象:“The number of file descriptors is limited by your shell”;“oninit: Fatal error in shared memory creation”。
- 处置:
- 会话级临时提升:ulimit -n 65535
- 系统级持久化(/etc/security/limits.conf):
- 检查共享内存参数(如 SHMBASE、SHMVRTSIZE、SHMADD)与系统资源占用,必要时调整并重启实例。
-
逻辑日志满与长事务
- 现象:业务挂起或报日志相关错误。
- 诊断与处置:
- 查看日志状态:onstat -l(关注 used/unbacked 状态)
- 原因通常为逻辑日志备份失败或空间过小;先恢复/扩容备份链路,再按需增加逻辑日志或优化备份窗口。
- 识别并拆分长事务,避免长时间回滚与日志占满。
-
Chunk I/O 异常
- 现象:实例报 I/O 错误,chunk 状态异常。
- 诊断与处置:
- 查看 chunk:onstat -d(关注 flag=down 的 chunk)
- 排查存储路径可用性、权限、磁盘健康与 I/O 错误;必要时迁移/恢复 chunk,确认底层硬件与文件系统正常。
-
锁冲突与性能劣化
- 现象:频繁锁等待/死锁、响应变慢。
- 处置:
- 调整隔离级别(如允许 dirty read 场景)、将表默认锁粒度由页级改为行级、设置合理的锁等待时间,结合应用将大事务拆分为小事务提交。
三 环境与连接问题排查
-
环境变量缺失或错误
- 典型需设置:INFORMIXDIR、INFORMIXSERVER、ONCONFIG、LD_LIBRARY_PATH、PATH。
- 建议写入 ~/.bash_profile 或 ~/.profile 并执行 source 使其生效。
-
客户端连接失败
- 安装客户端(.deb 优先):sudo dpkg -i informix-client_*.deb;遇到依赖执行 sudo apt-get install -f。
- 配置 ~/.sqlhosts(示例):
- myserver onsoctcp IPADDR=your_ip HOSTNAME=your_host SERVICE=your_port
- 测试连接:isql -v myserver username password
- 同时验证防火墙与端口可达性(ss/ netstat、telnet)。
四 高频命令与日志清单
- 实例与存储:onstat -l(逻辑日志)、onstat -d(chunk/空间)、onstat(会话/锁/内存概览)、onmode(切换/关闭/恢复)。
- 系统与内核:tail -f /var/log/syslog、journalctl -xe、dmesg、top/htop、free、vmstat、iostat。
- 网络与端口:ping、traceroute、ss/ netstat -tulpen | grep <端口>、nslookup/dig、ip route。
五 预防与最佳实践
- 定期备份与可恢复性演练:包含全量/增量备份与逻辑日志备份策略,定期校验可恢复性。
- 监控与告警:对 CPU、内存、I/O、磁盘空间、长事务、锁等待、日志使用率 建立阈值告警。
- 配置基线化:固化 onconfig、sqlhosts、环境变量、用户与权限 的变更流程与审计。
- 容量与性能:按增长规划 表空间/chunk、逻辑日志、缓冲池,优化慢 SQL 与大事务。
- 高可用与容灾:评估 HDR/ER 等复制方案与定期切换演练。