首页 > 数据库 >通过Oracle Pre-install RPM包简化环境预配置流程

通过Oracle Pre-install RPM包简化环境预配置流程

来源:互联网 2026-07-06 08:37:00

Oracle数据库预安装RPM包自动配置Linux系统内核参数、用户组和目录权限,简化Oracle19c和21c版本环境预配置。仅支持64位x86架构的RHEL、CentOS、OracleLinux,需要启用官方软件仓库。安装后还需要手动执行sysctl--system命令、设置oracle数据库用户密码、检查limits.d文件和SELinux策略,并修复

理解Oracle Pre-install RPM包

很多刚接触的朋友可能会觉得它是个“一键部署神器”。坦白说,它能省事儿,但省的是最基础的重复劳动:标准Linux发行版上Oracle数据库19c或21c的内核参数、用户组、以及目录权限这几类的配置。它绝不是个万能补丁,不会帮你处理SELinux策略、防火墙规则、ASM配置,更不会代劳Oracle Grid Infrastructure的安装。

通过Oracle Pre-install RPM包简化环境预配置流程

长期稳定更新的攒劲资源: >>>点此立即查看<<<

从本质上讲,这是Red Hat、CentOS或Oracle Linux官方维护的一个元包(oracle-database-preinstall-21coracle-database-preinstall-19c)。它帮你封装好了这些活儿:修改/etc/sysctl.conf、配置/etc/security/limits.d/oracle-database.conf、创建oracle用户和oinstall/dba组,以及设定/u01目录的所有权。

当然,它的适用范围有明确边界:

  • 仅支持x86_64架构的RHEL 7/8/9、CentOS 7/8、Oracle Linux 7/8/9。
  • 不支持Ubuntu/Debian,也不兼容ARM平台(比如Oracle Cloud的ARM实例)。
  • 安装后系统不会自动reload sysctl,需要你手动执行一下 sysctl --system

怎么装?包名和仓库源容易搞混

很多新手会直接敲yum install oracle-database-preinstall-21c,结果发现报错。这很正常,因为默认仓库里没有启用Oracle的Public Yum或ULN(Unbreakable Linux Network)源。

正确的流程可以分两步走:

  • Oracle Linux用户:先运行dnf install -y oraclelinux-developer-release-el8(以EL8为例)来启用开发者仓库,然后再跑dnf install -y oracle-database-preinstall-21c
  • RHEL/CentOS用户:首先需要导入Oracle的GPG key:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle。接着配置好repo文件(比如/etc/yum.repos.d/public-yum-ol8.repo),最后再执行安装命令。

这里有个细节需要留意:包名对版本要求很严格。oracle-database-preinstall-19coracle-database-preinstall-21c 不能混用。更关键的是,21c版本默认把vm.swappiness设成了1,而19c版本则是0,如果你有特定的调优倾向,装完后记得检查一下。

装完就万事大吉?这些配置仍需人工确认

RPM包会写死一些值,但这些值未必适合你的生产环境。比如,它把kernel.shmall设成了2097152,而实际生产中你得根据物理内存重新计算(公式是shmall = 总内存字节数 / 页大小)。此外,它会创建/u01目录,但不会替你格式化或挂载磁盘。

以下几个点,一定得人工过一遍:

  • oracle用户的密码默认为空,后续必须用passwd oracle设置,否则runInstaller会在用户验证阶段卡住。
  • ulimit -a查看时,你会发现max locked memory可能还是unlimited,但Oracle Installer要求显式设定为unlimited或具体的数值。你得去检查/etc/security/limits.d/oracle-database.conf,看看里面有没有oracle soft memlock unlimited这一行。
  • 如果系统启用了systemd-logind,它可能会覆盖limits.d的配置,导致LimitMEMLOCK失效。解决方法是,在/etc/systemd/logind.conf中补上LimitMEMLOCK=infinity,然后重启systemd-logind服务。

和手动配置比,性能或安全有妥协吗?

从性能和安全角度看,没有本质的妥协。但不得不说,RPM包的预设值偏向保守。举个例子,fs.aio-max-nr被设置为1048576,对大多数单实例来说够用,但如果是RAC环境或高并发OLTP系统,你可能需要把它调到2097152net.ipv4.tcp_fin_timeout保持默认的60,而有些经验丰富的DBA习惯把它调低,以便更快回收连接。

真正需要引起警惕的是:这个RPM包不管/etc/hosts文件的配置。如果你的主机名解析出了问题(比如localhost.localdomain没有正确指向127.0.0.1),Oracle Installer就会报错 PRVF-4657 : Name resolution setup check failed。这个问题得你亲自动手去修,RPM包是绝对不会管的。

另外,它从不碰/etc/selinux/config,但Oracle官方明确要求,在安装前必须把SELINUX设置为permissivedisabled。要是跳过了这一步,后续的静默安装大概率会因为AVC拒绝而失败。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。