Oracle 19c安装提示/tmp空间不足,主因是/tmp挂载为tmpfs(仅1–2GB),而安装需4–6GB;应提前设置TMPDIR指向真实磁盘路径(如/home/ora_tmp),而非扩容tmpfs或清理/tmp。

TMPDIR没设,而/tmp是tmpfs
Oracle 19c 安装时提示临时目录空间不足,绝大多数情况不是磁盘真满了,而是 runInstaller 在解压、编译、JRE 提取阶段大量写入 /tmp,而该路径在 RHEL 8+/OL 8+ 等系统中默认挂载为 tmpfs(内存文件系统),大小通常只有 1–2 GB —— 远低于安装所需的 4–6 GB 临时空间。
执行 df -T /tmp 可确认类型:若 Type 列显示 tmpfs,那它上限由内存配额决定,和硬盘剩余无关。此时 df -h / 显示充裕毫无意义。
常见误操作:
-
rm -rf /tmp/*基本无效——/tmp本身可能为空,真正占满的是安装进程在/tmp/OraInstall*下创建的千级子目录与临时文件,且进程退出前不自动清理 - 只设置
TEMP环境变量:部分 19c 版本对TEMP支持不稳定,TMPDIR才是 runInstaller 和底层 JDK 优先读取的环境变量
必须用 TMPDIR 指向真实磁盘路径
最稳妥的绕过方式是显式设置 TMPDIR,指向一个有 ≥6 GB 剩余空间、且 Oracle 安装用户(如 oracle)有读写权限的真实磁盘路径:
- 先创建目录:
mkdir -p /home/ora_tmp;再赋权:chown oracle:oinstall /home/ora_tmp && chmod 1777 /home/ora_tmp - 切换到
oracle用户后执行:export TMPDIR=/home/ora_tmp - 验证生效:
echo $TMPDIR应输出路径;启动runInstaller后,检查日志或ps aux | grep OraInstall,确认临时目录已落在新路径下
别碰 tmpfs remount,风险远大于收益
用 mount -o remount,size=4G /tmp 或改 /etc/fstab 加 size=4G 虽能“解决”,但存在硬伤:
- 若物理内存 + swap 总和小于指定 size(比如设了 4G,但内存仅 2G + swap 1G),内核会因 OOM kill 进程,导致安装中断甚至系统假死
-
remount要求/tmp当前未被任何进程占用,而 Oracle 安装过程中已有子进程锁住它,命令大概率失败
真正卡点在于:TMPDIR 必须在 runInstaller 启动前设置,且路径不能是 tmpfs;一旦漏掉这步,后续所有清理或扩容操作都只是在对抗错误根源。


















