如何配置文件描述符限制_limits.conf中Oracle用户配置

张开发
2026/4/18 5:05:14 15 分钟阅读

分享文章

如何配置文件描述符限制_limits.conf中Oracle用户配置
Oracle用户文件描述符限制需在limits.conf中同时配置soft/hard值且systemd系统必须额外通过override.conf设置LimitNOFILE否则实例可能静默失败或高并发时随机报错。oracle 用户的文件描述符限制必须在 /etc/security/limits.conf 中显式配置且需同时设置 soft 和 hard 值否则 oracle 实例启动时可能报 ora-27123: unable to attach to shared memory segment 或静默失败。为什么只改 limits.conf 不一定生效systemd 系统RHEL 7/CentOS 7、Oracle Linux 7默认忽略 /etc/security/limits.conf 对服务进程的限制因为 Oracle 后台进程如 ora_pmon_SID由 systemd 启动而 systemd 的 LimitNOFILE 优先级更高。用户登录 shell 虽然读取了 limits.conf但 Oracle 实例实际运行环境未必继承该值。验证是否生效用 su - oracle -c ulimit -n 查看交互式 shell 限制再用 cat /proc/$(pgrep pmon)/limits | grep Max open files 查看实际 Oracle 进程的限制若两者不一致说明 systemd 覆盖了 limits.confRHEL/CentOS 7 必须额外配置 /etc/systemd/system/oracle.service.d/override.conf 并重载 systemdlimits.conf 中 Oracle 用户的正确写法不能只写 oracle soft nofile 65536hard 值必须显式声明且 ≥ soft否则 Oracle 检查脚本如 runInstaller 或 dbca会直接拒绝继续。必须成对出现oracle soft nofile 65536 和 oracle hard nofile 65536同样处理 nproc建议至少 16384避免并行查询或大量会话时报 fork: Resource temporarily unavailable不要用通配符如 * soft nofileOracle 安装校验只认具体用户名修改后需重新登录 oracle 用户不是 source 或 ulimit -n 临时设置才能使交互式 shell 生效systemd 环境下必须补的一步覆盖 LimitNOFILE仅改 limits.conf 在 systemd 系统中对 Oracle 后台进程无效必须通过 systemd drop-in 文件注入限制。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手依托大模型帮助用户记录、整理和分析音视频内容体验用大模型做音视频笔记、整理会议记录。

更多文章