温馨提示×

linux informix常见错误有哪些

小樊
40
2026-10-19 15:29:50
栏目: 智能运维

下面按使用频率和典型场景,整理 Linux 上 Informix(含 ONCONFIG、SQL、连接、备份恢复等)的常见错误及原因/解决办法,偏实用。


一、数据库启动 / 关闭类

1. INFORMIXSERVER does not match DBservername

原因

  • INFORMIXSERVER 环境变量与 onconfig 中 DBSERVERNAME 不一致

解决

echo $INFORMIXSERVER
onconfig 中 DBSERVERNAME

保持一致,或用 DBSERVERALIASES


2. shared memory not initialized for INFORMIXSERVER

原因

  • 实例未启动
  • oninit 未成功

解决

onstat -
oninit -vy

3. Cannot attach shared memory

原因

  • Linux shmmax / shmall 太小
  • 上次异常关闭残留 IPC

解决

ipcs -m
ipcrm -m <shmid>

系统参数:

kernel.shmmax
kernel.shmall

4. oninit: Fatal error in shared memory initialization

原因

  • ROOTDBS 路径不存在或权限不对
  • INFORMIX 用户对 chunk 无权限

解决

ls -l $INFORMIXDIR/chunks
chown informix:informix
chmod 660

二、连接 / 客户端类

5. SQLCODE -908 / -930

  • -908: 找不到 sqlhosts 中服务
  • -930: 网络不通

检查

sqlhosts
/etc/services
telnet host port

6. Client hostname or IP not trusted

原因

  • $INFORMIXDIR/etc/hosts 或 /etc/hosts.equiv 未放行

解决

echo "client_ip" >> /etc/hosts.equiv

7. Password required but not supplied

原因

  • 使用 pam 或用户密码认证
  • DBSERVERALIASES 类型不对

三、SQL 常见错误

8. SQLCODE -206(表不存在)

-206: The specified table (xxx) is not in the database.

原因

  • 表名拼错
  • 当前数据库不对
SELECT * FROM systables WHERE tabname LIKE '%xxx%';

9. SQLCODE -1215(锁冲突)

-1215: Could not position within a file via an index.

常与锁有关:

onstat -k

10. SQLCODE -244(锁表)

-244: Could not do a physical order read to fetch next row.

解决

  • 提交/回滚事务
  • 调整 LOCK MODE
SET LOCK MODE TO WAIT 5;

11. SQLCODE -329(事务中断)

-329: Database has been dropped or transaction aborted.

四、空间 / chunk 类

12. No space left in DBspace

原因

  • chunk 满
  • 未加 chunk
onstat -d
ALTER DBSPACE dbspace ADD CHUNK '/path/chunk' 100000;

13. Chunk is offline

onstat -d
onspaces -s dbspace -p /path -o 0 -S size

五、备份 / 恢复类

14. Physical restore failed

原因

  • ontape 设备不可写
  • 备份级别不一致

15. Logfile required but not found

原因

  • 逻辑日志丢失
  • 时间点恢复不全

六、性能 / 资源类

16. Long transaction

onstat -x
  • 减少事务长度
  • 增加逻辑日志

17. Too many open files

原因

  • Linux ulimit -n 太小
ulimit -n 65535

七、运维命令速查

onstat -       # 实例状态
onstat -d      # 空间
onstat -k      # 锁
onstat -u      # 用户会话
oncheck -pe    # 页检查

如果你愿意,可以告诉我:

  • Informix 版本(11.5 / 12.10 / 14.10)
  • 报错 SQLCODE 或完整信息
  • 是 启动 / 连接 / SQL / 备份 哪一类

我可以直接帮你定位具体错误。

0 踩