温馨提示×

Linux Informix数据库故障排查步骤是什么

小樊
36
2025-12-26 16:57:10
栏目: 智能运维

Linux 上 Informix 故障排查步骤

一 明确现象与快速定位

  • 记录关键信息:具体表现(如无法启动连接失败查询缓慢)、错误码(SQLCODE)时间点触发操作,尽量在测试环境复现以缩小范围。
  • 先做最小化连通性验证:用命令行客户端(如 dbaccess)直连实例,排除应用层干扰。
  • 同步检查系统资源与健康:用 top/htop、free、iostat、df -h 快速扫一遍 CPU、内存、磁盘空间、I/O 是否异常。
  • 初步判断故障域:是实例/配置存储/空间网络、还是SQL/锁问题,为后续步骤定向。

二 收集系统与数据库日志

  • 系统日志:
    • 内核与驱动:dmesg
    • 系统级:/var/log/messages、/var/log/syslog(Ubuntu/Debian),/var/log/messages、/var/log/secure(RHEL/CentOS)
    • systemd 环境:journalctl -xe
  • Informix 日志与状态:
    • 错误日志:常见路径 /opt/IBM/informix/log/server.log/var/log/informix/
    • 实例状态与诊断:onstat -l(逻辑日志)、onstat -x(事务/长事务)、onstat -d(空间与 chunk I/O)、onstat -g ses(会话/锁等待)
  • 建议做法:先抓取上述日志的“当前时间点前后”片段,便于交叉定位根因。

三 检查实例状态与常用操作

  • 实例存活与模式:
    • 查看状态:onstat -c
    • 启停与模式切换:oninit(启动)、onmode -c status(查看状态)、onmode -m(切多用户)、必要时使用 onmode -z 结束异常会话(谨慎)
  • 空间与 I/O:
    • onstat -d:检查 dbspace/chunk 使用、读写异常
    • df -h、iostat -x 1:确认是否磁盘满I/O 饱和
  • 会话与锁:
    • onstat -g sesonstat -u:定位阻塞/锁等待链,必要时按流程终止问题会话
  • 配置与权限:
    • 核对 $INFORMIXDIR/etc/onconfig 关键参数(如内存、路径)
    • 确认 informix 用户对数据目录与 chunk 文件具备读写权限
  • 连接与网络:
    • 验证监听与端口:netstat -tulnp | grep <端口>
    • 端到端连通:ping、traceroute(必要时)
  • 安全策略:
    • 临时排查 SELinux 干扰(如 setenforce 0),验证后再做永久策略调整

四 常见故障与处置要点

  • 启动失败:
    • 可能原因:SELinux 拦截、onconfig 配置错误、依赖(网络/磁盘)异常、共享内存初始化失败
    • 处置:检查系统日志与 server.log;核对 onconfig;用 df -h、free -m 看资源;必要时临时关闭 SELinux 验证
  • 逻辑日志满:
    • 现象:写入被拒,提示 Logical log full
    • 处置:onstat -l 查看日志状态;先确保逻辑日志备份/归档正常;必要时用 onparams -a -d -s -i 增加日志;完成备份后用 ontape -s -L 0 备份并截断日志
  • 锁冲突与长事务:
    • 现象:Lock wait timeout exceeded、会话互锁
    • 处置:onstat -u/-g ses 找阻塞链;按流程终止问题会话;拆分大事务、优化隔离级别与索引
  • 磁盘空间不足或 I/O 失败:
    • 现象:插入失败、报错 Disk full / I/O error
    • 处置:df -h 清理空间;iostat -x 1await、%util;校验目录与 chunk 权限(如 chown -R informix:informix <data_dir>
  • 性能瓶颈:
    • 现象:CPU/内存高、查询慢
    • 处置:onstat -m 看缓冲池命中率(必要时调 BUFFERS);onstat -d 找慢 chunk;用 dbaccess … EXPLAIN 分析慢 SQL,增补索引或改写语句

五 验证与预防

  • 修复后验证:
    • onstat 确认状态恢复(逻辑日志充足、无锁等待、I/O 正常);执行 SELECT 1 FROM systables 等轻量查询验证可用性
  • 备份与恢复演练:
    • 定期用 ontapeonbar全量/增量备份,定期恢复演练确保可用
  • 监控与告警:
    • 磁盘空间、内存、CPU、连接数 设置阈值告警;可用 IBM Data Server ManagerPrometheus + GrafanaMonit 等工具
  • 例行维护:
    • 周期性执行 onstat -g ckp(检查点)、oncheck(一致性)、索引重建与统计信息更新
  • 变更与升级:
    • 变更前备份回滚方案;按计划升级补丁、应用 IBM 官方 CVE 修复

0