oracle 12c安装提示“存储空间不足”主因是/tmp挂载为tmpfs(默认1–2gb),而安装需≥4gb临时空间;应创建真实磁盘路径(如/home/ora_tmp)、设oracle可写权限、export tmpdir指向该路径并验证生效,而非清理/tmp或扩容tmpfs。
oracle 12c 安装提示“存储空间不足”,90% 以上不是磁盘真满了,而是 /tmp 挂载在 tmpfs 上且大小只有 1–2 gb,而安装过程需要至少 4 gb 临时空间 —— rm -rf /tmp/* 基本无效,因为真正占满的是运行时动态创建的 /tmp/orainstall* 目录。
为什么清理 /tmp 旧文件不管用
安装器启动后会在 /tmp/OraInstall* 下创建大量子目录和临时解压包,这些路径是进程运行中生成的,不属于你手动清理的范围;/tmp 本身可能显示为空或只剩几百 MB,但 df -T /tmp 显示 Type 是 tmpfs,说明它受限于内存配额而非磁盘容量。即使你清空了所有可见文件,只要 tmpfs 的 size=1.5G 没变,安装器仍会因写入失败报错。
怎么确认 /tmp 真正卡在哪
执行以下命令快速定位:
-
df -T /tmp—— 若 Type 列为tmpfs,问题就在这里 -
grep tmpfs /proc/mounts | grep /tmp—— 查看是否含size=1G或更小值 -
swapon -s—— 同时检查 swap 是否启用,CVU 检查失败常连带触发PRVF-7532 -
ls -ld /tmp—— 确认权限是否为1777,否则 Oracle 用户无法写入
不改系统配置,三步绕过 /tmp 限制
最稳妥的做法是让安装器完全不用 /tmp:
- 创建新目录:
mkdir -p /home/ora_tmp,确保所在分区剩余 ≥6 GB - 设属主与权限:
chown oracle:oinstall /home/ora_tmp && chmod 1777 /home/ora_tmp - 切换到
oracle用户后执行:export TMPDIR=/home/ora_tmp,再运行runInstaller - 验证生效:
echo $TMPDIR应输出路径;安装日志中OraInstall目录应出现在/home/ora_tmp下,而非/tmp
容易被忽略的静默 fallback 场景
即使你设置了 TMPDIR,安装仍回退到 /tmp,常见原因有:
-
~/.bash_profile或~/.bashrc中存在unset TMPDIR或覆盖性export TMPDIR=/tmp - 目标目录不存在,或
oracle用户无写权限(touch $TMPDIR/test必须成功) - 用了
sudo ./runInstaller却没加-E,导致环境变量丢失
真正卡住人的往往不是空间本身,而是变量设了、路径建了、权限给了,却因 shell 配置或调用方式不对,让设置根本没进到安装进程里。











