CentOS 7.9 静默安装 Oracle 11gR2 企业版全记录
📌 前言
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.zip 和 linux.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
⚠️ 常见问题
| 问题 | 解决方案 |
|---|---|
runInstaller 报 permission denied |
确保 oracle 用户对安装目录有执行权限 |
安装过程中 lib 相关错误 |
安装 32 位兼容库:yum install glibc.i686 libstdc++.i686 |
| 响应文件找不到 | 确认路径是否正确,使用绝对路径 |
| root.sh 执行失败 | 检查 /etc/oratab 文件权限 |
📝 总结
通过静默安装模式,我们可以快速在无图形界面的 CentOS 7.9 服务器上完成 Oracle 11g 企业版的部署。核心步骤包括:
- ✅ 系统参数调优(内核参数、资源限制)
- ✅ 创建专用用户及目录
- ✅ 配置响应文件
- ✅ 执行静默安装
- ✅ 执行 root 脚本完成安装
整个过程虽然步骤较多,但一旦响应文件配置好,后续的批量部署就非常高效了。
📅 安装日期:2026-08-12
本文操作基于 CentOS 7.9 Minimal 和 Oracle 11.2.0.1.0 企业版,实际操作时请根据具体版本和环境调整参数。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)