HCRM博客

CentOS下Oracle 11g静默安装指南

在CentOS上实现Oracle 11g静默安装的权威指南

核心价值: 掌握Oracle 11g在CentOS系统上的静默安装技术,是DBA提升效率、实现标准化部署的关键能力,此方法尤其适用于批量部署或无人值守环境。

为何选择静默安装?

CentOS下Oracle 11g静默安装指南-图1
  • 效率飞跃: 自动化绕过图形界面交互,大幅压缩安装时间。
  • 精准一致: 响应文件锁定配置参数,彻底杜绝人工操作偏差,保障环境一致性。
  • 远程可控: 命令行模式完美适配远程服务器管理及自动化脚本集成。

安装前的关键准备 (CentOS 6.x / 7.x)

  1. 系统资源核查:

    • 内存:物理内存 ≥ 2GB (推荐 4GB+),Swap 空间匹配 Oracle 官方建议公式。
    • 磁盘:/tmp 目录 ≥ 1GB 空闲空间;Oracle 基础目录 ($ORACLE_BASE) 预留充足空间 (建议 15GB+)。
  2. 依赖包安装: 执行关键命令,确保系统包完整。

    # CentOS 6/7 通用核心包
    yum -y install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh \
                 libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat
  3. 内核参数优化: 修改 /etc/sysctl.conf,应用配置 (sysctl -p),示例如下:

    # 核心参数示例 - 根据实际内存调整
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    kernel.shmall = 2097152        # 共享内存总页数
    kernel.shmmax = 536870912      # 最大共享内存段大小 (字节)
    kernel.shmmni = 4096
    kernel.sem = 250 32000 100 128
    net.ipv4.ip_local_port_range = 9000 65500
    net.core.rmem_default = 262144
    net.core.rmem_max = 4194304
    net.core.wmem_default = 262144
    net.core.wmem_max = 1048576
  4. 用户与目录配置:

    groupadd oinstall    # 软件所有者组
    groupadd dba         # DBA权限组
    useradd -g oinstall -G dba oracle
    passwd oracle        # 设置oracle用户密码
    mkdir -p /u01/app/oracle /u01/app/oraInventory
    chown -R oracle:oinstall /u01/app
    chmod -R 775 /u01/app
  5. Oracle用户环境设置 (~oracle/.bash_profile):

    CentOS下Oracle 11g静默安装指南-图2
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
    export ORACLE_SID=orcl      # 替换为实际SID
    export PATH=$PATH:$ORACLE_HOME/bin
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
    umask 022
  6. Oracle安装文件准备:

    • 上传 linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.zip 至服务器 (如 /tmp)。
    • unzip 解压,生成 database 目录。

构建静默安装响应文件

  1. 模板获取: 解压目录中找到响应文件模板:

    cp /tmp/database/response/db_install.rsp /home/oracle/
    chown oracle:oinstall /home/oracle/db_install.rsp
  2. 关键参数配置 (db_install.rsp):

    oracle.install.option=INSTALL_DB_SWONLY   # 仅安装数据库软件
    UNIX_GROUP_NAME=oinstall
    INVENTORY_LOCATION=/u01/app/oraInventory  # 清单目录
    SELECTED_LANGUAGES=en, zh_CN              # 中英文支持
    ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
    ORACLE_BASE=/u01/app/oracle
    oracle.install.db.InstallEdition=EE       # 企业版
    oracle.install.db.isCustomInstall=false
    oracle.install.db.DBA_GROUP=dba
    oracle.install.db.OPER_GROUP=oinstall
    DECLINE_SECURITY_UPDATES=true             # 必须设置为true

执行静默安装

  1. 切换至 oracle 用户:su - oracle
  2. 启动静默安装进程:
    cd /tmp/database
    ./runInstaller -silent -responseFile /home/oracle/db_install.rsp -ignorePrereq
    • -ignorePrereq 仅在确认预检已满足但安装程序仍报错时谨慎使用。
  3. 监控与完成:
    • 安装输出实时写入终端,日志文件位于 $ORACLE_HOME/cfgtoollogs
    • 出现 Successfully Setup Software 提示即安装成功。
    • 根据提示,以 root 身份执行生成的 root 脚本:
      /u01/app/oraInventory/orainstRoot.sh
      /u01/app/oracle/product/11.2.0/dbhome_1/root.sh

安装后验证

CentOS下Oracle 11g静默安装指南-图3
  1. 环境变量生效: 确保 .bash_profile 已加载 (source ~/.bash_profile)。
  2. 关键工具验证:
    sqlplus / as sysdba
    SQL> SELECT * FROM v$version WHERE banner LIKE 'Oracle%';
    exit;

    成功显示 Oracle 11g 版本信息即表明核心组件正常。

  3. 监听器启动:
    lsnrctl start
    lsnrctl status

安全与性能强化建议

  • 最小权限原则: 严格限制 oracle 用户权限,避免不必要的系统访问。
  • 防火墙策略: 使用 iptablesfirewalld 精确控制数据库端口访问 (默认 1521)。
  • 定期补丁管理: 关注 Oracle 关键补丁更新,及时评估与应用安全修复。
  • 存储优化: 根据 I/O 特性选择 XFS 或 ext4 文件系统,必要时采用 ASM 管理存储。
  • 内存精细调优: 依据负载动态调整 SGA_TARGETPGA_AGGREGATE_TARGET 参数。

掌握 Oracle 11g 在 CentOS 上的静默安装,显著提升运维自动化水平,清晰的响应文件配置与严谨的系统准备是成功核心,每一次蓝色屏幕上的成功提示,都是对专业部署能力的肯定。

关键点说明

  1. 内核参数 shmallshmmax 需根据服务器物理内存精确计算
  2. db_install.rspDECLINE_SECURITY_UPDATES=true 为强制项
  3. 生产环境务必通过 iptables/firewalld 限制 1521 端口访问源
  4. 定期检查 $ORACLE_HOME/log 目录获取潜在问题线索

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/38883.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~