下面按使用频率和典型场景,整理 Linux 上 Informix(含 ONCONFIG、SQL、连接、备份恢复等)的常见错误及原因/解决办法,偏实用。
INFORMIXSERVER does not match DBservername原因
INFORMIXSERVER 环境变量与 onconfig 中 DBSERVERNAME 不一致解决
echo $INFORMIXSERVER
onconfig 中 DBSERVERNAME
保持一致,或用 DBSERVERALIASES
shared memory not initialized for INFORMIXSERVER原因
oninit 未成功解决
onstat -
oninit -vy
Cannot attach shared memory原因
shmmax / shmall 太小解决
ipcs -m
ipcrm -m <shmid>
系统参数:
kernel.shmmax
kernel.shmall
oninit: Fatal error in shared memory initialization原因
ROOTDBS 路径不存在或权限不对INFORMIX 用户对 chunk 无权限解决
ls -l $INFORMIXDIR/chunks
chown informix:informix
chmod 660
SQLCODE -908 / -930-908: 找不到 sqlhosts 中服务-930: 网络不通检查
sqlhosts
/etc/services
telnet host port
Client hostname or IP not trusted原因
$INFORMIXDIR/etc/hosts 或 /etc/hosts.equiv 未放行解决
echo "client_ip" >> /etc/hosts.equiv
Password required but not supplied原因
pam 或用户密码认证DBSERVERALIASES 类型不对SQLCODE -206(表不存在)-206: The specified table (xxx) is not in the database.
原因
SELECT * FROM systables WHERE tabname LIKE '%xxx%';
SQLCODE -1215(锁冲突)-1215: Could not position within a file via an index.
常与锁有关:
onstat -k
SQLCODE -244(锁表)-244: Could not do a physical order read to fetch next row.
解决
LOCK MODESET LOCK MODE TO WAIT 5;
SQLCODE -329(事务中断)-329: Database has been dropped or transaction aborted.
No space left in DBspace原因
onstat -d
ALTER DBSPACE dbspace ADD CHUNK '/path/chunk' 100000;
Chunk is offlineonstat -d
onspaces -s dbspace -p /path -o 0 -S size
Physical restore failed原因
ontape 设备不可写Logfile required but not found原因
Long transactiononstat -x
Too many open files原因
ulimit -n 太小ulimit -n 65535
onstat - # 实例状态
onstat -d # 空间
onstat -k # 锁
onstat -u # 用户会话
oncheck -pe # 页检查
如果你愿意,可以告诉我:
我可以直接帮你定位具体错误。