温馨提示×

informix在ubuntu上的故障排除

小樊
33
2026-01-05 15:36:19
栏目: 智能运维

Ubuntu 上 Informix 故障排除手册

一 快速定位流程

  • 明确现象与时间点:记录报错原文、告警、功能异常、发生时间、最近变更(升级、参数调整、数据/负载变化)。
  • 查看系统日志:优先检查 /var/log/syslog/var/log/messages/var/log/auth.log,并使用 journalctl -xedmesg 获取内核与系统事件线索。
  • 检查资源与进程:用 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):
          • soft nofile 65535
          • hard nofile 65535
      • 检查共享内存参数(如 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 等复制方案与定期切换演练。

0