Oracle 数据库静默安装详解

Oracle 数据库静默安装详解

适用版本:Oracle Database 19c / 23ai 文档版本:v1.0 / 2026-07


1. 概述

静默安装适用于自动化[1]:

优势

  • 无 GUI
  • 自动化
  • 重复
  • CI/CD

详细见:Oracle Linux 安装与配置


2. 准备

2.1 软件

# DB 软件
ls -l LINUX.X64_193000_db_home.zip

# GI 软件
ls -l LINUX.X64_193000_grid_home.zip

2.2 用户

# 预安装
dnf install -y oracle-database-preinstall-19c

# 已创建 oracle / grid 用户
id oracle
id grid

2.3 目录

mkdir -p ******
chown -R oracle:oinstall /u01
chmod -R 775 /u01

3. 解压

su - oracle
cd $ORACLE_HOME
unzip /tmp/LINUX.X64_193000_db_home.zip

4. 响应文件

4.1 db_install.rsp

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.root.config.executeRootScript=false

4.2 关键参数

oracle.install.option:
- INSTALL_DB_SWONLY:仅软件
- INSTALL_DB_AND_CONFIG:软件 + 建库
- CONFIGURE_DB:仅配置

oracle.install.db.InstallEdition:
- EE:企业版
- SE2:标准版

5. 仅软件安装

5.1 安装

cd $ORACLE_HOME
./runInstaller -silent -responseFile /tmp/db_install.rsp

5.2 root 脚本

su -
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh

5.3 应用 RU

cd $ORACLE_HOME
./runInstaller -silent -responseFile /tmp/db_install.rsp -applyRU /tmp/ru/32545008

详细见:Oracle 补丁应用与 PSU


6. 软件 + 建库

6.1 响应文件

oracle.install.option=INSTALL_DB_AND_CONFIG
oracle.install.db.DBConfigType=SI
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=4096
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.password.SYS=Oracle123
oracle.install.db.config.starterdb.password.SYSTEM=Oracle123
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/u01/app/oracle/oradata
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/u01/app/oracle/fast_recovery_area
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.managementOption=DEFAULT
oracle.install.db.config.starterdb.omsPort=0
oracle.install.db.config.starterdb.enableRecovery=true

6.2 安装

./runInstaller -silent -responseFile /tmp/db_install.rsp

7. DBCA 建库

7.1 响应

# DBCA 静默
dbca -silent -createDatabase \
  -templateName General_Purpose.dbc \
  -gdbName orcl \
  -sid orcl \
  -createAsContainerDatabase true \
  -numberOfPDBs 1 \
  -pdbName orclpdb \
  -pdbAdminPassword Oracle123 \
  -sysPassword Oracle123 \
  -systemPassword Oracle123 \
  -storageType FS \
  -datafileDestination /u01/app/oracle/oradata \
  -recoveryAreaDestination /u01/app/oracle/fast_recovery_area \
  -recoveryAreaSize 10240 \
  -characterSet AL32UTF8 \
  -nationalCharacterSet AL16UTF16 \
  -listeners LISTENER \
  -totalMemory 4096 \
  -databaseType OLTP \
  -emConfiguration NONE

详细见:Oracle 数据库创建 DBCA

7.2 响应文件

# dbca.rsp
templateName=General_Purpose.dbc
gdbName=orcl
sid=orcl
createAsContainerDatabase=true
numberOfPDBs=1
pdbName=orclpdb
pdbAdminPassword=******
sysPassword=******
systemPassword=******
storageType=FS
datafileDestination=/u01/app/oracle/oradata
recoveryAreaDestination=/u01/app/oracle/fast_recovery_area
characterSet=AL32UTF8
totalMemory=4096
databaseType=OLTP

dbca -silent -createDatabase -responseFile /tmp/dbca.rsp

8. NetCA 配置

8.1 静默

netca -silent -responseFile /u01/app/oracle/product/19.0.0/dbhome_1/assistants/netca/netca.rsp

8.2 手动

# listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oradb1)(PORT = 1521))
    )
  )

# tnsnames.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oradb1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

详细见:Oracle 网络配置与监听器


9. RAC 安装

9.1 GI 静默

./gridSetup.sh -silent -responseFile /tmp/grid_install.rsp

详细见:Oracle GI 19c 安装详解

9.2 RAC DB

./runInstaller -silent -responseFile /tmp/db_install.rsp

dbca -silent -createDatabase \
  -templateName General_Purpose.dbc \
  -gdbName orcl \
  -sid orcl \
  -databaseConfigType RAC \
  -nodelist rac1,rac2 \
  -createAsContainerDatabase true \
  -numberOfPDBs 1 \
  -pdbName orclpdb \
  -pdbAdminPassword Oracle123 \
  -sysPassword Oracle123 \
  -systemPassword Oracle123 \
  -storageType ASM \
  -diskGroupName +DATA \
  -recoveryGroupName +FRA \
  -characterSet AL32UTF8 \
  -totalMemory 4096

详细见:Oracle RAC 部署实战


10. 验证

10.1 软件

$ORACLE_HOME/OPatch/opatch lsinventory
$ORACLE_HOME/bin/sqlplus -V

10.2 数据库

sqlplus / as sysdba
SQL> SELECT name, open_mode FROM v$database;
SQL> SELECT name, open_mode FROM v$pdbs;

11. 日志

11.1 安装日志

ls -lt /u01/app/oraInventory/logs/
# InstallAction*.log

11.2 DBCA 日志

ls -lt $ORACLE_BASE/cfgtoollogs/dbca/

11.3 查看

tail -f /u01/app/oraInventory/logs/InstallActions*.log

12. 卸载

12.1 deinstall

cd $ORACLE_HOME/deinstall
./deinstall -silent -checkonly /tmp/deinstall.rsp

./deinstall -silent -paramfile /tmp/deinstall.rsp

13. 常见坑与排错

13.1 ORA-00600

- 内部错误
- 查日志
- 联系 Oracle Support

13.2 内核参数

- 预安装包
- sysctl -p
******

### 13.3 依赖缺失

```bash
dnf install -y oracle-database-preinstall-19c

13.4 内存不足

- 减小 totalMemory
- 增大物理内存

14. 自动化脚本

14.1 一键安装

#!/bin/bash
# install_oracle.sh
set -e

# 1. 配置系统
bash 01_setup_os.sh

# 2. 预安装
dnf install -y oracle-database-preinstall-19c

# 3. 解压
su - oracle -c "cd \$ORACLE_HOME && unzip /tmp/LINUX.X64_193000_db_home.zip"

# 4. 安装
su - oracle -c "cd \$ORACLE_HOME && ./runInstaller -silent -responseFile /tmp/db_install.rsp"

# 5. root 脚本
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh

# 6. 建库
su - oracle -c "dbca -silent -createDatabase -responseFile /tmp/dbca.rsp"

# 7. 验证
su - oracle -c "sqlplus / as sysdba <<EOF
SELECT name, open_mode FROM v\$database;
EXIT
EOF"

15. 最佳实践

  1. 预安装包:简化
  2. 静默:自动化
  3. 响应文件:版本控制
  4. root 脚本:手动执行
  5. 日志检查:及时
  6. RU 最新:稳定
  7. 验证:完整
  8. 自动化脚本:重复
  9. 文档化:流程
  10. 测试:可行

16. 参考资料

[1] Oracle Database Installation Guide 19c for Linux, “Installing Oracle Database Using Response Files” https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/installing-database-software-using-response-files.html