centos informix故障诊断
导读:CentOS 上 Informix 故障诊断与处置 一 快速定位流程 收集环境与进程信息:查看系统日志 /var/log/messages、/var/log/syslog,内核日志 dmesg;确认进程 oninit 是否在运行(如 ps...
CentOS 上 Informix 故障诊断与处置
一 快速定位流程
- 收集环境与进程信息:查看系统日志 /var/log/messages、/var/log/syslog,内核日志 dmesg;确认进程 oninit 是否在运行(如 ps -ef | grep informix);检查资源 top、vmstat 1、iostat -x 1、free -m。
- 校验配置与连通:核对 $INFORMIXDIR、$ONCONFIG、$INFORMIXSERVER 与 /opt/informix/etc/onconfig.、/opt/informix/etc/sqlhosts;用 dbaccess - 测试本地连接,用 ping/telnet 测试网络。
- 使用数据库诊断工具:用 onstat 观察事务、锁、逻辑日志、空间;用 oncheck 校验对象一致性;必要时用 onmode 做紧急处置(如切换单用户、终止会话)。
- 备份与变更控制:任何修复前先做可用备份,变更遵循“小步可回滚”。
二 常见故障与处置要点
- 长事务导致回滚或“卡住”
现象:出现 “Aborting Long Transaction”,大量会话阻塞。
诊断:onstat -x -r 10 观察回滚进度;onstat -c | grep MSG 定位运行日志;onstat -u 找到会话,再用 onstat -g ses 查看 SQL。
处置:拆分大事务、缩短事务持有时间;必要时扩容逻辑日志;在 IDS 9.3x 及以上可用 onparams -a -d -s -i 在线追加日志。 - 逻辑日志满
现象:实例几乎无响应;onstat -l 显示多数日志 flags 为 U------。
诊断:检查备份链路(空间满、设备异常等);用 onstat -x 的 beginlg 定位占用日志的事务;注意 flags 末位为 L 的日志用于快速恢复,即使备份也不可复用。
处置:立即执行日志备份(如 ontape -s 或第三方工具)释放空间;无法及时备份时,先在线追加日志;若由长事务引起,优先终止该事务(见下)。 - 频繁锁冲突
现象:应用报 -243/-244 等锁错误。
诊断:用 onstat -k | grep 定位锁对象;通过 onstat -u | grep 找到持有者;用 onstat -g ses 查看正在执行的 SQL。
处置:优化 SQL、缩短事务;调整隔离级别与锁等待(如 LOCKWAIT);必要时用 onmode -z 终止阻塞会话。 - Chunk I/O 失败
现象:日志出现 chunk I/O error;onstat -d 显示 chunk 状态 down。
诊断:核对设备是否存在、权限是否正确;用只读 dd if=/dev/sdX of=/dev/null bs=1M count=100 验证可读。
处置:修复或更换磁盘;修正权限;用 onspaces 添加新 chunk 并迁移数据。 - 连接失败
现象:客户端报 Connection refused/Network unreachable。
诊断:核对 sqlhosts 与端口;用 firewall-cmd 放行端口(示例:firewall-cmd --permanent --add-port=1521/tcp & & firewall-cmd --reload);必要时检查 SELinux 策略。 - 安装或启动失败(环境变量/权限)
现象:提示 INFORMIXDIR not set 或 Permission denied。
处置:在 informix 用户环境设置 INFORMIXDIR、ONCONFIG、INFORMIXSERVER;确保安装与数据目录属主为 informix:informix。
三 关键命令速查表
| 目标 | 命令示例 | 要点 |
|---|---|---|
| 查看事务与回滚 | onstat -x -r 10 | 关注回滚进度与长事务 |
| 查运行日志路径 | onstat -c | grep MSG 获取 MSGPATH |
| 会话与 SQL | onstat -u;onstat -g ses | 定位阻塞者与正在执行的 SQL |
| 锁与对象 | onstat -k;onstat -k | grep partnum 定位锁对象 |
| 逻辑日志 | onstat -l | 识别 U------、末位 L 的日志 |
| 表/索引一致性 | oncheck -p ;oncheck -u | 校验物理/逻辑一致性 |
| 空间与 Chunk | onstat -d;onspaces | 发现 down 的 chunk 并扩容 |
| 在线追加日志 | onparams -a -d -s -i | IDS 9.3x+ 支持在线扩容 |
| 终止会话 | onmode -z | 谨慎使用,先确认会话与影响 |
| 本地连接测试 | dbaccess - | 排除应用侧因素 |
四 应急与安全建议
- 处置顺序建议:先保命(备份/只读)> 定位根因(日志/工具)> 恢复服务(追加日志/释放空间/终止会话)> 验证与复盘(监控、SQL 优化、容量规划)。
- 变更风险控制:任何 onmode/onparams/onspaces 操作前确保有可用备份;生产环境尽量在维护窗口执行。
- 监控与预防:持续监控 逻辑日志使用率、长事务、锁等待、I/O 错误、磁盘空间;优化大事务与慢 SQL,合理设置 LOCKWAIT 与隔离级别。
- 连接安全:仅开放必要端口;使用 sqlhosts 主机名解析或正确 IP;必要时调整 firewall-cmd/SELinux 策略。
五 常见错误码速查
| 错误码 | 含义 | 快速处置 |
|---|---|---|
| -113 | 没有当前记录 | 确认查询能生成当前列表 |
| -116 | 不能分配内存 | 检查可用内存,简化语句/表 |
| -118 | 不能读事务日志 | 用 dblog 定位问题记录 |
| -119 | 不能打开日志文件 | 校验文件路径与权限 |
| -121 | 不能写日志文件 | 校验日志文件写权限 |
| -123 | 不允许 NFS 操作 | 检查网络文件访问 |
| -200 | 标识符过长 | 缩短至不超过 18 个字符 |
| -201 | 语法错误 | 检查拼写、关键字与保留字 |
| -206 | 表不存在 | 校验表名拼写与所在库 |
| -209 | 数据格式不兼容 | 在库上运行 DBUPDATE 升级兼容 |
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos informix故障诊断
本文地址: https://pptw.com/jishu/778927.html
