Oracle 11g安装时swap size检查失败,只需临时创建并启用swap文件即可通过校验;报错原因在于其校验逻辑不仅看free -m的total值,还严格读取/proc/meminfo中SwapFree及物理内存套用分级公式,且要求swap已激活、优先级≥0、路径持久可访问。
oracle11g安装时的swap size检查失败,不是必须重装系统或重启,临时创建并启用一个swap文件就能过检。
为什么free -m显示swap够了,安装程序还报错?
Oracle 11g的检查逻辑不只看
,它会读取
中的
和
,并结合物理内存大小套用分级公式(比如物理内存在513M–2048M之间时,要求swap ≥ 1.5×物理内存)。即使你当前swap总量达标,若
偏低(例如被其他进程占满),或安装程序读到的是旧缓存值,也会触发警告。
常见错误现象:
页红标提示“
”,但
输出显示swap total确实是2GB以上。
不要依赖图形界面里的系统监视器,一律用
或
确认真实状态
检查是否已有swap被
但未写入
——重启后失效,安装程序可能按“持久可用”标准判断
CentOS 7+默认启用
或
时,Oracle可能无法识别,建议禁用后使用传统文件型swap
创建swap文件的dd命令怎么写才不出错?
关键不是“随便写个dd”,而是块大小(
)和数量(
)要匹配目标大小,且路径要有写权限、所在分区留足空间。用
比
更直观、更少出错。
实操建议:
用root执行:
(生成2GB文件)
务必
,否则
会拒绝处理
避免放在
或
下——某些SELinux策略会阻止swap访问;
或
最稳妥
如果
卡住,可能是磁盘I/O慢,加
参数(需coreutils ≥ 8.24)观察进度
mkswap和swapon之后还要做什么?
仅运行
和
能让安装程序立刻识别新增swap,但有两个隐形风险点:
oracle知识库
oracle知识库下载
下载
没加
参数时,
可能因设备号问题失败;直接加
强制覆盖(
)更省事
生效后,必须立刻验证:
应列出该文件,且
中
行的
值已增加
安装完成前别关终端——swap文件是临时的,关闭shell不会自动
,但若系统异常重启,该swap就丢失,再次安装又会失败
示例验证输出:
为什么/etc/fstab里不能直接写/tmp/ora_swap?
因为
在多数现代Linux发行版(包括CentOS 7)中默认挂载为
,即内存文件系统。写入其中的swap文件会在重启后消失,而
在启动早期就读取,此时
可能尚未挂载或为空,导致
失败甚至阻塞开机流程。
正确做法:
安装阶段:只临时
,不写
;安装通过后,再规划永久swap(如独立分区或
)
若坚持写
,路径必须落在持久性文件系统上(如
),且加
选项:
Oracle安装完成后,记得
,避免残留大文件占用内存型
真正容易被忽略的点是:swap文件的IO性能。用
生成的稀疏文件在机械盘上可能引发大量随机读写,拖慢安装过程;SSD上影响小,但若虚拟机磁盘是qcow2格式且未预分配,仍可能卡顿。遇到安装界面长时间无响应,先
看看是不是swap文件正在被频繁刷写。
Swap: total/proc/meminfoSwapTotalSwapFreeSwapFreePrerequisite ChecksSWAP SIZE: Expected 3.74GB, Found 1.94GBfree -mfree -mswapon -sswapon/etc/fstabsystemd-swapzrambscountbs=1M count=2048bs=32k count=65515dd if=/dev/zero of=/tmp/ora_swap bs=1M count=2048chmod 600 /tmp/ora_swapmkswap/home/root/tmp/var/tmpddstatus=progressmkswapswapon--no-dev-pgmkswap-fmkswap -f /tmp/ora_swapswapon /tmp/ora_swapswapon -sfree -mSwap:totalswapoffFilename Type Size Used Priority
/dev/dm-1 partition 2097148 0 -2
/tmp/ora_swap file 2097152 0 -3/tmptmpfsfstab/tmpswaponswaponfstab/var/lib/oracle/swapfilefstab/opt/swapfilenofail/opt/swapfile swap swap defaults,nofail 0 0swapoff /tmp/ora_swap && rm /tmp/ora_swap/tmpddiotop