本教程将采用 静默安装 的方式,这是生产环境中最推荐的方式,因为它可重复、可自动化,且避免了图形界面可能带来的问题。

重要提示:软件版本兼容性
在开始之前,请务必确认你的操作系统和 Oracle 数据库版本是兼容的,Oracle 官方提供了一份详细的兼容性矩阵文档,本教程基于以下环境:
- 操作系统: CentOS 7.9 (或 Red Hat Enterprise Linux 7.9)
- Oracle Database: Oracle Database 19c (19.3) Enterprise Edition
- 安装介质:
LINUX.X64_193000_db_home.zip
请务必根据你的实际情况调整路径和参数。
第一步:准备工作
这是整个安装过程中最关键的一步,准备工作做得好,安装过程会非常顺利。
服务器硬件要求
- 内存: 至少 2GB,推荐 4GB 或以上。
- 交换空间: 至少为内存的 2 倍,但不超过 8GB。
- 硬盘空间:
/tmp目录至少需要 1GB 的可用空间,数据库软件本身需要约 6GB,数据文件根据需求规划。
操作系统配置
a. 修改主机名

确保服务器有一个固定的、可解析的主机名。
# 查看当前主机名 hostname # 修改主机名 (改为 oracle-db) sudo hostnamectl set-hostname oracle-db # 将主机名和 IP 地址添加到 /etc/hosts 文件中 # 假设你的服务器 IP 是 192.168.1.100 echo "192.168.1.100 oracle-db" | sudo tee -a /etc/hosts
b. 关闭防火墙和 SELinux
Oracle 安装过程中需要开放多个端口,为了简化,我们暂时关闭防火墙和 SELinux。在生产环境中,应正确配置防火墙规则和 SELinux 策略,而不是直接关闭。
# 停止并禁用 firewalld sudo systemctl stop firewalld sudo systemctl disable firewalld # 临时关闭 SELinux (立即生效,重启后失效) sudo setenforce 0 # 永久关闭 SELinux (需要重启服务器) # 编辑 /etc/selinux/config 文件,将 SELINUX=enforcing 改为 SELINUX=disabled sudo vi /etc/selinux/config
c. 创建 Oracle 用户和组

# 创建 oinstall 和 dba 组 sudo groupadd oinstall sudo groupadd dba # 创建 oracle 用户,并将其加入 oinstall 和 dba 组 sudo useradd -g oinstall -G dba oracle # 为 oracle 用户设置密码 sudo passwd oracle
d. 配置内核参数
编辑 /etc/sysctl.conf 文件,添加以下内容:
sudo vi /etc/sysctl.conf
# Oracle Settings fs.file-max = 6815744 kernel.sem = 250 32000 100 128 kernel.shmall = 4194304 kernel.shmmax = 1073741824 kernel.shmmni = 4096 kernel.panic_on_oops = 1 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 net.ipv4.ip_local_port_range = 9000 65500 net.nf_conntrack_max = 1048576 fs.aio-max-nr = 32768
应用新的内核参数:
sudo sysctl -p
e. 配置系统限制
编辑 /etc/security/limits.conf 文件:
sudo vi /etc/security/limits.conf
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 oracle hard memlock 134217728 oracle soft memlock 134217728
f. 创建安装目录
我们将在 /opt 目录下创建 Oracle 的安装目录。
# 创建目录 sudo mkdir -p /opt/oracle/product/19c/dbhome_1 # 设置目录所有者 sudo chown -R oracle:oinstall /opt/oracle # 设置目录权限 sudo chmod -R 775 /opt/oracle
安装必要的依赖包
sudo yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
配置 Oracle 用户环境
以 oracle 用户登录,并配置其环境变量。
# 切换到 oracle 用户 su - oracle
编辑 .bash_profile 文件:
vi ~/.bash_profile
在文件末尾添加以下内容:
# Oracle Settings export ORACLE_BASE=/opt/oracle export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1 export ORACLE_SID=ORCLCDB # 全局数据库名 SID export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
使环境变量立即生效:
source ~/.bash_profile
第二步:下载和解压安装介质
- 下载软件: 从 Oracle 官网下载
LINUX.X64_193000_db_home.zip。 - 上传软件: 使用
scp、sftp等工具将上传到服务器的/tmp目录。 - 解压软件:
# 确保在 oracle 用户下 su - oracle # 进入 /tmp 目录 cd /tmp # 解压 unzip LINUX.X64_193000_db_home.zip # 将解压后的内容移动到 ORACLE_HOME mv database/* $ORACLE_HOME/
第三步:创建响应文件
静默安装的核心是 响应文件,它告诉安装程序如何进行安装,我们将创建两个响应文件:一个用于创建数据库,一个仅安装软件。
a. 创建数据库响应文件 (dbca.rsp)
cd $ORACLE_HOME/assistants/dbca
创建 dbca.rsp 文件:
vi dbca.rsp
并务必修改 GDBNAME, SYSPassword, SYSTEMPassword 等关键参数:
# 指定响应文件的类型
RESPONSEFILE_VERSION = "19.3"
# 指定创建数据库,而不是仅安装软件
OPERATION_TYPE = "createDatabase"
# 指定数据库名和 SID
GDBNAME = "ORCLCDB"
SID = "ORCLCDB"
# 指定模板、字符集、管理选项
TEMPLATES = { "General_Purpose.dbc" }
CHARSET = "AL32UTF8"
CREATE_AS_CDB = true
NATIONAL_CHARSET = "AL16UTF16"
# 指定数据库管理选项
MEMORY_PERCENTAGE = "40"
EM_EXPRESS_PORT = 5500
DATAFILEDESTINATION = "/opt/oracle/oradata"
RECOVERYAREADESTINATION = "/opt/oracle/fast_recovery_area"
STORAGE_TYPE = "FS"
# 指定 SYS, SYSTEM, SYSBACKUP, SYSDG, SYSKM 用户的密码
# 所有密码必须相同
SYSPASSWORD = "YourStrongPassword"
SYSTEMPASSWORD = "YourStrongPassword"
SYSBACKUPPASSWORD = "YourStrongPassword"
SYSDGPASSWORD = "YourStrongPassword"
SYSKMPPASSWORD = "YourStrongPassword"
b. 创建静默安装响应文件 (db_install.rsp)
回到 oracle 用户的家目录。
cd ~
创建 db_install.rsp 文件:
vi db_install.rsp
并务必修改 oracle.install.responseFileVersion, INVENTORY_LOCATION, ORACLE_BASE, ORACLE_HOME 等参数:
# 指定响应文件版本 oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 # 指定安装类型,只安装软件 oracle.install.option=INSTALL_DB_SWONLY # 指定安装的 Oracle 产品 ORACLE_HOSTNAME=oracle-db UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/opt/oraInventory ORACLE_BASE=/opt/oracle ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSBACKUPDBA_GROUP=dba oracle.install.db.OSDGDBA_GROUP=dba oracle.install.db.OSKMDBA_GROUP=dba oracle.install.db.OSRACDBA_GROUP=dba # 安全更新 DECLINE_SECURITY_UPDATES=true
第四步:执行静默安装
a. 运行安装程序
# 进入 $ORACLE_HOME 目录 cd $ORACLE_HOME # 以静默模式运行安装程序,使用我们创建的响应文件 ./runInstaller -silent -responseFile /home/oracle/db_install.rsp -ignorePrereq
b. 等待安装完成
安装过程会持续一段时间,屏幕上会显示安装进度,请耐心等待,直到看到以下成功信息:
...
The following configuration scripts need to be executed as the "root" user.
/opt/oraInventory/orainstRoot.sh
/opt/oracle/product/19c/dbhome_1/root.sh
...
c. 以 root 用户执行脚本
打开一个新的终端,root 用户登录,然后执行上面提示的两个脚本:
# 执行第一个脚本 sudo /opt/oraInventory/orainstRoot.sh # 执行第二个脚本 sudo /opt/oracle/product/19c/dbhome_1/root.sh
第五步:使用 DBCA 静默创建数据库
a. 运行 DBCA
# 进入 $ORACLE_HOME/bin 目录 cd $ORACLE_HOME/bin # 以静默模式运行 DBCA,使用我们创建的数据库响应文件 ./dbca -silent -createDatabase -responseFile /opt/oracle/assistants/dbca/dbca.rsp
b. 等待数据库创建完成
这个过程也会持续一段时间,完成后,你会看到类似下面的输出,并提示数据库已成功创建。
...
90% complete
95% complete
100% complete
Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log" for further details.
...
第六步:验证安装
a. 检查监听器状态
lsnrctl status
你应该能看到监听器正在运行,并监听了 1521 端口。
b. 连接到数据库
使用 sqlplus 连接到数据库。
# 以 sysdba 身份连接 sqlplus / as sysdba # 连接成功后,执行一些命令验证 SQL> select status from v$instance; STATUS ------------ OPEN SQL> exit
c. 检查 EM Express
在浏览器中访问 https://<your-server-ip>:5500/em,使用 SYS 或 SYSTEM 用户登录,即可访问 Oracle Enterprise Manager Express。
第七步:卸载 (可选)
如果你想卸载 Oracle,可以按照以下步骤操作:
-
停止数据库和监听器:
sqlplus / as sysdba SQL> shutdown immediate; SQL> exit; lsnrctl stop
-
使用 DBCA 删除数据库:
# 创建一个删除数据库的响应文件 dbca_del.rsp # 内容类似 dbca.rsp,但 OPERATION_TYPE = "deleteDatabase" # GDBNAME = "ORCLCDB" # 执行删除 dbca -silent -deleteDatabase -responseFile /home/oracle/dbca_del.rsp
-
使用 Universal Installer 卸载软件:
# 进入 $ORACLE_HOME/oui/bin 目录 cd $ORACLE_HOME/oui/bin # 运行卸载程序 ./runInstaller -silent -deinstall -removeHome ORACLE_HOME=$ORACLE_HOME -ignorePrereq
-
以 root 用户执行脚本: 卸载程序完成后,同样需要以 root 用户执行它提示的脚本。
-
手动清理: 删除
/opt/oracle目录和/etc/oratab等文件。
