CentOS7无外网环境下Oracle 11g R2静默部署实战(含p13390677_112040补丁)

张开发
2026/4/17 5:21:13 15 分钟阅读

分享文章

CentOS7无外网环境下Oracle 11g R2静默部署实战(含p13390677_112040补丁)
1. 环境准备与离线Yum源构建在完全隔离网络的生产环境中部署Oracle数据库首先要解决系统依赖包的问题。我遇到过不少因为依赖缺失导致安装失败的案例最典型的就是缺少compat-libstdc-33这个基础库。这里分享一个稳妥的解决方案准备CentOS 7完整镜像文件时建议使用与目标服务器相同版本的ISO。我曾经用CentOS-7.6的镜像给7.9系统装依赖结果出现兼容性问题。检查版本的方法很简单cat /etc/redhat-release制作离线Yum源时有个细节容易忽略 - 挂载ISO时要使用-o loop参数。有次我在客户现场直接mount结果报wrong fs type错误。正确的姿势是mkdir /yum mount -o loop CentOS-7-x86_64-DVD-2009.iso /yum配置repo文件时建议关闭gpgcheck。在无外网环境验证签名既没必要又容易出问题。这是我的标准配置[CentOS7] nameCentOS-server baseurlfile:///yum enabled1 gpgcheck0测试阶段有个实用技巧先执行yum clean all清除缓存再用yum list查看可用包列表。如果看到几千个包名滚动显示说明配置成功了。2. 系统参数深度优化Oracle对Linux内核参数有严格要求但很多文档给的参数值都是固定数字。经过多次实践验证我总结出动态计算方法共享内存设置要根据实际物理内存调整。用这个脚本计算更科学# 计算shmall总页数 TOTAL_MEM$(free -k | awk /Mem:/{print $2}) echo kernel.shmall $((TOTAL_MEM/4)) # 计算shmmax字节数 TOTAL_BYTES$(free -b | awk /Mem:/{print $2}) echo kernel.shmmax $((TOTAL_BYTES-1))文件描述符限制要同时修改三个地方才生效/etc/security/limits.conf设置oracle用户的软硬限制/etc/pam.d/login加载pam_limits模块/etc/profile添加ulimit设置网络参数优化有个坑要注意net.ipv4.ip_local_port_range的最小值不能低于9000。有次设为5000-65500导致数据库连接异常后来发现Oracle某些进程会占用低端口。3. 静默安装响应文件定制p13390677_112040补丁包的静默安装关键在于响应文件配置。分享几个容易出错的参数内存分配建议设为物理内存的60%-70%。比如32G服务器可以这样设置oracle.install.db.config.starterdb.memoryLimit20480字符集选择要特别注意纯英文环境用AL32UTF8中文环境建议ZHS16GBK混合环境考虑UTF8安装类型推荐用INSTALL_DB_SWONLY先装软件再单独创建库。这样出错时不用重装整个软件。附上我的db_install.rsp关键配置oracle.install.responseFileVersion/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 oracle.install.optionINSTALL_DB_SWONLY UNIX_GROUP_NAMEoinstall INVENTORY_LOCATION/oracle/db/oraInventory ORACLE_HOME/oracle/db/11g ORACLE_BASE/oracle/db oracle.install.db.InstallEditionEE oracle.install.db.DBA_GROUPdba oracle.install.db.OPER_GROUPoper4. 安装后优化与故障排查安装完成后还有几个关键操作日志组优化建议增加到6组每组500M。用这个SQL脚本-- 查看现有日志组 SELECT group#, bytes/1024/1024 Size(MB), status FROM v$log; -- 添加新日志组 ALTER DATABASE ADD LOGFILE GROUP 4 (/oracle/oradata/redo04.log) SIZE 500M;开机自启配置要注意执行顺序# 先启动监听 su oracle -lc $ORACLE_HOME/bin/lsnrctl start # 再启动数据库实例 su oracle -lc $ORACLE_HOME/bin/dbstart常见故障排查命令监听状态检查lsnrctl status数据库连接测试sqlplus / as sysdba空间不足检查df -h /oracle最后提醒生产环境一定要修改默认密码有次安全扫描发现我们用默认密码被通报批评。建议安装后立即执行ALTER USER sys IDENTIFIED BY 新密码; ALTER USER system IDENTIFIED BY 新密码;

更多文章