温馨提示×

linux informix为何报错25595

小樊
42
2026-10-22 14:13:44
栏目: 智能运维

在 Linux 上的 IBM Informix 中出现错误 -25595(通常写作 25595 或 -25595)时,含义是:

-25595: Cannot create a temporary file.

也就是 Informix 无法创建临时文件。


常见原因及解决办法

1️⃣ 临时目录空间不足

Informix 默认会在 DBTEMP 或系统临时目录(如 /tmp)中创建临时文件。

检查:

df -h /tmp

解决:

  • 清理 /tmp
  • 或修改 DBTEMP 指向空间充足的目录:
export DBTEMP=/informix/tmp

2️⃣ 临时目录权限不足

Informix 运行用户(通常是 informix)必须对临时目录有写权限。

检查:

ls -ld /tmp
id informix

解决:

chown informix:informix /informix/tmp
chmod 1777 /informix/tmp

3️⃣ DBTEMP 配置错误

如果 DBTEMP 指向了不存在或不可写的目录,会直接报 25595。

检查:

echo $DBTEMP
onconfig | grep DBTEMP

解决: 确保目录存在且可写。


4️⃣ 磁盘配额限制

即使磁盘有空间,用户可能被限制了磁盘配额。

检查:

quota -u informix

5️⃣ inode 耗尽(很少但可能)

df -i /tmp

6️⃣ 查询产生大量临时表

复杂 SQL(排序、GROUP BY、JOIN)会大量使用临时文件。

优化建议:

  • 增加内存排序区(DS_TOTAL_MEMORY)
  • 优化 SQL
  • 使用临时 dbspace

快速排查顺序(推荐)

  1. df -h /tmp
  2. ls -ld $DBTEMP
  3. id informix
  4. 检查 onconfig 中 DBTEMP
  5. 看 online.log 是否有更详细信息

如果你愿意,可以贴出:

  • onconfig 中 DBTEMP 设置
  • 报错时的 SQL 或操作
  • df -h 输出

我可以帮你更精确定位。

0 踩