必须创建并启用优先级≥0的swap文件:用dd生成文件,chmod 600设权限,mkswap格式化,swapon -p 10启用,cat /proc/swaps确认priority为正数,否则oracle校验不通过。

Oracle安装卡在“Swap space is insufficient”不是警告,是硬性拦截——必须让runInstaller看到一个已激活、优先级 ≥ 0 的 swap 区,否则直接退出,改配置或忽略提示都无效。
为什么swapon /swapfile后仍报错
常见原因是系统默认给文件型 swap 分配了负优先级(比如 -1),而 Oracle 校验逻辑只认 priority ≥ 0 的条目。即使 swapon 成功,cat /proc/swaps 最后一列显示负数,就等于没被 Oracle 看见。
- 查当前所有 swap 条目及优先级:
cat /proc/swaps - 若 priority 是负数,先停用:
sudo swapoff /swapfile - 重启用并显式设正优先级:
sudo swapon -p 10 /swapfile - 再验证:
cat /proc/swaps确认最后一列为正整数
创建 swapfile 的关键参数与位置选择
Oracle 官方推荐 swap 总量 ≥ 物理内存的 50%,但最低不能少于 2GB。用 dd 创建时,bs 和 count 组合决定实际大小,别只看单位误导。
- 生成 4GB swapfile(推荐起步值):
sudo dd if=/dev/zero of=/swapfile bs=1G count=4 - 生成 2GB(最小安全值):
sudo dd if=/dev/zero of=/swapfile bs=1024k count=2048 -
of路径建议用绝对路径,如/swapfile或/root/swapfile,避免权限或挂载点问题 - 务必设严格权限:
sudo chmod 600 /swapfile,否则mkswap会报错
如何让 swapfile 开机自动生效
临时启用只能撑过本次安装;若需长期使用(比如测试环境常驻 Oracle),必须写入 /etc/fstab,但要注意格式和挂载时机。
- 追加行到
/etc/fstab:/swapfile swap swap defaults 0 0 - 不要加
noauto或nofail—— Oracle 安装前必须已挂载 - 写完执行:
sudo mount -a验证语法是否正确(无输出即成功) - 重启后仍需确认:
swapon --show或free -h中 Swap 行非零
最易被忽略的是优先级设置和 chmod 600 这两步:前者导致 Oracle 视而不见,后者让 mkswap 直接失败。别跳过验证环节,cat /proc/swaps 多敲一次,比重跑安装快得多。











