如何配置文件描述符限制_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 65536,hard 值必须显式声明且 ≥ soft,否则 Oracle 检查脚本(如 runInstaller 或 dbca)会直接拒绝继续。必须成对出现:oracle soft nofile 65536 和 oracle hard nofile 65536同样处理 nproc(建议至少 16384),避免并行查询或大量会话时报 fork: Resource temporarily unavailable不要用通配符(如 * soft nofile),Oracle 安装校验只认具体用户名修改后需重新登录 oracle 用户(不是 source 或 ulimit -n 临时设置)才能使交互式 shell 生效systemd 环境下必须补的一步:覆盖 LimitNOFILE仅改 limits.conf 在 systemd 系统中对 Oracle 后台进程无效,必须通过 systemd drop-in 文件注入限制。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。
