📌 前言

Oracle 11g 虽然已不是最新版本,但在很多企业系统中仍有广泛部署。本文档记录了一次在 CentOS 7.9 上通过静默模式安装 Oracle 11gR2 (11.2.0.1.0) 企业版的完整过程,适合无图形界面的服务器环境。

环境信息:

项目 配置
操作系统 CentOS 7.9 Minimal
内存 32 GB
Oracle 版本 11.2.0.1.0 企业版 (EE)
安装方式 静默安装 (Silent Install)
安装用户 oracle
数据库 SID orcl
字符集 ZHS16GBK

🔧 第一步:系统准备

1.1 关闭 SELinux

vim /etc/selinux/config                                 # Edit SELinux config file
# 将 SELINUX=enforcing 改为 SELINUX=disabled

setenforce 0                                            # Disable SELinux temporarily
getenforce                                              # Verify: should show Disabled or Permissive

1.2 配置 YUM 源(使用国内镜像)

cd /etc/yum.repos.d                                     # Enter yum repo directory
cp CentOS-Base.repo CentOS-Base.repo.backup             # Backup original repo file
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo  # Download Aliyun repo
yum clean all                                           # Clean yum cache
yum makecache                                           # Rebuild yum cache

1.3 安装依赖包

yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel \
ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 \
libXau libXi make sysstat unixODBC unixODBC-devel       # Install required packages

1.4 配置内核参数

编辑 /etc/sysctl.conf

vim /etc/sysctl.conf                                    # Edit kernel parameters config

添加以下内容:

# Oracle 11g on 32GB RAM
fs.aio-max-nr = 1048576                                 # Max concurrent async I/O requests
fs.file-max = 6815744                                   # Max file handles system-wide
kernel.shmall = 5242880                                 # Total shared memory pages (for 20GB SGA)
kernel.shmmax = 34359738368                             # Max single shared memory segment (32GB)
kernel.shmmni = 4096                                    # Max number of shared memory segments
kernel.sem = 250 32000 100 128                          # Semaphore params: SEMMSL SEMMNS SEMOPM SEMMNI
net.ipv4.ip_local_port_range = 9000 65500               # Local port range for outgoing connections
net.core.rmem_default = 262144                          # Default receive socket buffer
net.core.rmem_max = 4194304                             # Max receive socket buffer
net.core.wmem_default = 262144                          # Default send socket buffer
net.core.wmem_max = 1048576                             # Max send socket buffer

生效配置:

sysctl -p                                               # Apply kernel parameters immediately

1.5 配置用户资源限制

编辑 /etc/security/limits.conf

vim /etc/security/limits.conf                           # Edit user resource limits config

添加以下内容:

# Oracle 11g Resource Limits (32GB RAM Server)
oracle soft nproc   2047                                # Soft process limit
oracle hard nproc   16384                               # Hard process limit
oracle soft nofile  4096                                # Soft open file limit (raised for moderate concurrency)
oracle hard nofile  65536                               # Hard open file limit
oracle soft stack   10240                               # Stack size limit

编辑 PAM 配置:

vim /etc/pam.d/login                                    # Edit PAM login config
# 添加: session required pam_limits.so

vim /etc/pam.d/sshd                                     # Edit PAM sshd config
# 添加: session required pam_limits.so (for SSH logins)

编辑 /etc/profile

vim /etc/profile                                        # Edit global profile

添加以下内容:

# Oracle user resource limits (backup for PAM)
if [ $USER = "oracle" ]; then
    ulimit -u 16384 -n 65536                            # Set process and file limits for oracle user
fi

👤 第二步:创建 Oracle 用户和目录

2.1 创建用户和组

groupadd oinstall                                       # Create oinstall group (inventory group)
groupadd dba                                            # Create dba group (OSDBA group)
useradd -g oinstall -G dba oracle                       # Create oracle user: primary group oinstall, secondary dba
passwd oracle                                           # Set password for oracle user

2.2 创建安装目录

mkdir -p /home/oracle/app/oracle                        # Create ORACLE_BASE directory
mkdir -p /home/oracle/oraInventory                      # Create inventory directory
mkdir -p /home/oracle/oracle_install/rsp                # Create response file directory
chown -R oracle:oinstall /home/oracle/app /home/oracle/oraInventory  # Set ownership
chmod 775 /home/oracle/app /home/oracle/oraInventory    # Set permissions

2.3 配置 Oracle 环境变量

切换至 oracle 用户:

su - oracle                                             # Switch to oracle user
vim ~/.bash_profile                                     # Edit oracle user's profile

添加以下内容:

# Oracle Environment
export ORACLE_BASE=/home/oracle/app/oracle              # Oracle base directory
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 # Oracle home directory
export ORACLE_SID=orcl                                  # Oracle System Identifier
export ORACLE_UNQNAME=orcl                              # Unique database name
export PATH=$ORACLE_HOME/bin:$PATH                      # Add Oracle binaries to PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib   # Library search path
export LANG=C                                           # Set locale to C
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8               # Set NLS language/territory/charset

生效配置:

source ~/.bash_profile                                  # Reload profile
echo $ORACLE_HOME                                       # Verify ORACLE_HOME is set correctly

📦 第三步:准备安装文件

3.1 上传并解压安装包

linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.zip 上传到 /home/oracle/oracle_install/ 目录:

cd /home/oracle/oracle_install                          # Enter install directory
unzip linux.x64_11gR2_database_1of2.zip                 # Unzip first volume
unzip linux.x64_11gR2_database_2of2.zip                 # Unzip second volume
# 解压后生成 database 目录,包含 runInstaller

3.2 准备响应文件

创建 /home/oracle/oracle_install/rsp/db_install-pq.rsp

vim /home/oracle/oracle_install/rsp/db_install-pq.rsp   # Create response file

内容如下(已修正所有关键参数):

# Oracle 11gR2 Silent Install Response File
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0

# Install type: Software only
oracle.install.option=INSTALL_DB_SWONLY

# Hostname (must match /etc/hosts)
ORACLE_HOSTNAME=db

# Unix group for Oracle inventory
UNIX_GROUP_NAME=oinstall

# Inventory directory
INVENTORY_LOCATION=/home/oracle/oraInventory

# Installation languages (English + Simplified Chinese)
SELECTED_LANGUAGES=en,zh_CN

# Oracle Home and Base directories
ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/home/oracle/app/oracle

# Edition: EE (Enterprise Edition)
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,oracle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0

# Admin groups
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba

# Single instance (leave empty)
oracle.install.db.CLUSTER_NODES=

# Database creation params (not used with INSTALL_DB_SWONLY)
oracle.install.db.config.starterdb.type=
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=8192
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true

# Unified password (change after installation)
oracle.install.db.config.starterdb.password.ALL=your_password_here

# Other settings
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.asm.diskGroup=

# Security updates (decline for silent install)
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true

# Proxy (leave empty)
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=

🚀 第四步:执行静默安装

su - oracle                                             # Switch to oracle user
cd /home/oracle/oracle_install/database                 # Enter database install directory
./runInstaller -silent -responseFile /home/oracle/oracle_install/rsp/db_install-pq.rsp -ignorePrereq
# Run silent installation with response file, skip prerequisite checks

安装过程大约需要 20-40 分钟,可通过日志监控进度:

tail -f /home/oracle/oraInventory/logs/installActions*.log   # Monitor installation progress

安装完成后

安装程序会提示以 root 用户执行两个脚本:

su -                                                 # Switch to root
/home/oracle/oraInventory/orainstRoot.sh             # Set inventory directory permissions
/home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh   # Configure Oracle environment

执行完成后,回到安装终端按 Enter 退出安装程序。


✅ 第五步:验证安装

su - oracle                                             # Switch to oracle user
sqlplus / as sysdba                                     # Connect as sysdba
# 应能连接到空闲实例 (Idle Instance)

📊 后续步骤

6.1 配置监听器 (netca)

netca -silent -responseFile /home/oracle/oracle_install/rsp/netca.rsp   # Configure listener silently

6.2 创建数据库 (DBCA)

准备 dbca.rsp 响应文件,然后执行:

dbca -silent -responseFile /home/oracle/oracle_install/rsp/dbca.rsp     # Create database silently

⚠️ 常见问题

问题 解决方案
runInstallerpermission denied 确保 oracle 用户对安装目录有执行权限
安装过程中 lib 相关错误 安装 32 位兼容库:yum install glibc.i686 libstdc++.i686
响应文件找不到 确认路径是否正确,使用绝对路径
root.sh 执行失败 检查 /etc/oratab 文件权限

📝 总结

通过静默安装模式,我们可以快速在无图形界面的 CentOS 7.9 服务器上完成 Oracle 11g 企业版的部署。核心步骤包括:

  1. ✅ 系统参数调优(内核参数、资源限制)
  2. ✅ 创建专用用户及目录
  3. ✅ 配置响应文件
  4. ✅ 执行静默安装
  5. ✅ 执行 root 脚本完成安装

整个过程虽然步骤较多,但一旦响应文件配置好,后续的批量部署就非常高效了。


📅 安装日期:2026-08-12
本文操作基于 CentOS 7.9 Minimal 和 Oracle 11.2.0.1.0 企业版,实际操作时请根据具体版本和环境调整参数。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐