Oracle安装为何提示Swap为0_使用dd命令创建Swap文件并挂载生效
Oracle安装失败因系统未启用交换空间,需手动创建swapfile:dd生成、chmod 600、mkswap、swapon,并在/etc/fstab中添加持久化条目。
安装Oracle时,如果遇到 checking swap space: 0 mb a vailable, 150 mb required. failed 这个提示,问题其实很明确:系统里压根儿没有启用任何交换空间,而不是空间不足。这意味着你必须手动创建并激活一个 swapfile,否则安装程序会直接退出,连后续的参数校验都走不到。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
为什么free显示Swap为0且swapon -s无输出
这个现象说明,系统既没有配置传统的swap分区,也没有挂载任何swap文件。这种情况在最小化安装的CentOS、RHEL或Oracle Linux上尤其常见,特别是那些为了快速部署而制作的虚拟机镜像,默认往往不配置swap。这里有个关键点需要注意:用 df -h 是查不到swap的,因为它不占用常规的挂载点;同样,直接 ls /swapfile 也大概率会返回文件不存在。所以,最可靠的确认方法就是运行 swapon -s,如果输出为空,那就坐实了swap未被启用。
dd创建swap文件时的三个关键参数陷阱
创建swap文件的典型命令是 dd if=/dev/zero of=/swapfile bs=1M count=2048,但这里面有几个细节容易踩坑:
bs和count的乘积必须大于等于Oracle要求的最小值(通常从1.5G起步),但也不是越大越好。经验表明,当物理内存超过8G时,分配2G的swap通常就足够了;超过16G,可以考虑设到4G,再往上增加对性能提升的意义不大。of参数指定的路径要谨慎选择。不要放在/tmp或/home这类可能被挂载为noexec或nosuid选项的分区上。稳妥起见,推荐在根目录下创建,比如/swapfile或/usr/local/swapfile。- 执行命令前,务必用
df -h /确认目标磁盘的剩余空间足够容纳你设定的大小。否则,dd命令中途报错No space left on device,会导致生成的文件损坏,前功尽弃。
mkswap和swapon必须按顺序执行且权限要锁死
接下来的步骤顺序和权限设置至关重要,一旦出错就会触发警告甚至直接失败:
- 首先运行
chmod 600 /swapfile—— 这里必须是600,而不是常见的644或755。因为从某个内核版本开始,swapon命令会强制检查文件权限,过宽的权限会导致其拒绝操作。 - 接着运行
mkswap /swapfile—— 这一步是为文件写入交换空间标识,绝对不能跳过。否则,执行swapon时会报错swapon: /swapfile: read swap header failed。 - 最后运行
swapon /swapfile—— 激活交换空间。成功后,立即用swapon -s验证,输出列表中应该能看到/swapfile这一行,且Type列显示为file。 - 如果过程中间出现
insecure permissions的提示,千万别忽略。回头检查并执行chmod 600后重试,否则即使勉强挂上,Oracle安装程序也可能拒绝识别。
临时生效够安装,但永久生效要改/etc/fstab且避免重复挂载
完成上述步骤后,swap已经临时生效,足够让Oracle安装程序继续运行了。但服务器一旦重启,这个配置就会丢失。要实现永久生效,需要修改系统启动文件:
- 向
/etc/fstab文件末尾追加一行:/swapfile swap swap defaults 0 0(注意最后两个数字是零“0”,而不是字母“O”)。 - 添加前,最好先检查一下这行配置是否已经存在,避免重复。否则,执行
swapon -a时会报错swapon: /swapfile: swapfile has wrong size。 - 切记,不要在Oracle安装过程中执行
swapoff -a && swapon -a这类操作。这会中断正在使用的交换空间,可能导致安装进程静默崩溃。 - 添加完成后,可以用
grep swapfile /etc/fstab命令验证,确保有且仅有一行对应的输出。
整个流程中,最容易被人忽略的就是 chmod 600 这一步。很多教程只罗列命令,却未强调其必要性。实际上,dd 命令生成的文件默认权限是 644,而自Linux内核4.4+版本后,swapon 开始强制校验权限,不满足条件就会静默失败。所以,在安装Oracle前,多花10秒钟执行 ls -l /swapfile 确认一下权限,远比安装到一半报错、然后从头再来要节省得多——后者可能白白浪费你半小时。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
银河麒麟V10安装达梦8数据库详细操作过程及避坑
前期准备:打好地基,事半功倍 在银河麒麟V10上部署达梦8,准备工作做扎实了,后续流程就能一路绿灯。核心就两件事:把系统环境验明白,把安装包选对。 环境校验:一个都不能少 安装前,建议按下面这个清单过一遍,确保系统满足最低要求,避免中途报错。 检查项 操作命令 合格标准 系统架构 uname -m
mysql优化器为何不选择前缀索引_分析前缀索引在执行流中的局限性
前缀索引的潜在风险:为何数据库优化器常常选择回避? 在数据库性能调优的实践中,前缀索引常被视为一种以存储空间换取查询效率的折中方案。然而,深入分析其底层执行机制后,我们会发现这种设计往往伴随着显著的性能隐患,导致MySQL查询优化器在多数场景下倾向于放弃使用它。 前缀索引难以支持高效的范围查询定位
SQL如何解决GROUP BY丢失明细行的问题_窗口函数替代方案
GROUP BY 会压缩明细行是因为其本质是聚合操作,将多行合并为单行统计结果;要保留明细并计算分组值,应使用窗口函数如SUM() OVER(PARTITION BY x)。 GROUP BY 为什么“丢”了明细行 这事儿得从根儿上讲。GROUP BY 的设计初衷就是聚合,它的任务是把多行数据压缩成
Navicat导出TXT文本数据为空如何解决_过滤条件与权限排查
Na vicat导出TXT为空但预览正常?别急,问题可能出在这儿 你是否也遇到过这种令人困惑的情况:在Na vicat里执行查询,数据预览一切正常,可一旦点击“导出为TXT”,得到的文件却空空如也?这并非个例,其根本原因往往不在于SQL语句本身,而在于Na vicat的导出逻辑与查询执行的上下文环境
如何修改SCAN IP_修改DNS解析后使用srvctl更新集群信息
srvctl modify scan 报 ORA-01017 或连接失败的本质与解决 遇到 srvctl modify scan 报 ORA-01017 或连接失败,先别急着怀疑密码。这事儿的关键,往往不是认证信息错了,而是连接集群的“内部通道”被拒绝了。简单来说,命令执行前,Oracle会尝试用你
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

