CentOS安装Oracle数据库完整指南 (2026)

前言

Oracle Database 是全球最广泛使用的企业级关系型数据库之一,在金融、电信、制造等行业有着不可替代的地位。CentOS 作为稳定可靠的 Linux 发行版,是部署 Oracle 数据库的常见选择。本文将详细介绍在 CentOS 7/8 上安装 Oracle Database 的完整流程,涵盖环境准备、依赖安装、内核参数调优、数据库创建等关键步骤。

一、安装前的环境准备

1.1 系统要求

项目 最低要求 推荐配置
内存 2GB 8GB+
交换分区 2GB 与内存等量
磁盘空间 10GB 50GB+
CPU 2核 4核+

1.2 更新系统并安装依赖包

# CentOS 7
sudo yum update -y
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

CentOS 8 用户使用 dnf 替代 yum,并注意部分兼容包需要从 PowerTools 仓库启用。

1.3 创建 Oracle 用户和组

sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba oracle
sudo passwd oracle

二、内核参数与系统配置

2.1 修改内核参数

编辑 /etc/sysctl.conf,添加以下内容:

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

执行 sudo sysctl -p 使配置生效。

2.2 设置用户限制

编辑 /etc/security/limits.conf,添加:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

2.3 关闭 SELinux 和防火墙

sudo setenforce 0
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
sudo systemctl disable firewalld
sudo systemctl stop firewalld

生产环境建议配置防火墙规则而非直接关闭,仅开放 1521 等必要端口。

三、下载与解压 Oracle 安装包

  1. 前往 Oracle 官网下载对应版本的安装包(如 LINUX.X64_193000_db_home.zip)
  2. 创建安装目录并解压:
sudo mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
sudo chown -R oracle:oinstall /u01
# 将安装包上传后解压
unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.3.0/dbhome_1/

四、配置环境变量

切换到 oracle 用户,编辑 ~/.bash_profile

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

执行 source ~/.bash_profile 加载配置。

五、执行安装

5.1 静默安装(推荐服务器环境)

cp /u01/app/oracle/product/19.3.0/dbhome_1/install/response/db_install.rsp ~/db_install.rsp

编辑响应文件,修改关键参数:

oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oinstall

执行安装:

./runInstaller -silent -responseFile ~/db_install.rsp -ignorePrereq

5.2 执行 root 脚本

安装完成后,按提示以 root 用户执行:

sudo /u01/app/oraInventory/orainstRoot.sh
sudo /u01/app/oracle/product/19.3.0/dbhome_1/root.sh

六、创建数据库

使用 DBCA 静默建库:

dbca -silent -createDatabase \
  -templateName General_Purpose.dbc \
  -gdbName orcl \
  -sid orcl \
  -sysPassword YourSysPass123 \
  -systemPassword YourSysPass123 \
  -characterSet AL32UTF8 \
  -nationalCharacterSet AL16UTF16 \
  -datafileDestination /u01/app/oracle/oradata \
  -storageType FS \
  -memoryPercentage 40 \
  -emConfiguration NONE

七、验证安装

lsnrctl status
sqlplus / as sysdba
SQL> select status from v$instance;

应返回 OPEN 状态。

八、设置开机自启

# 编辑 /etc/oratab,将对应行的 N 改为 Y
orcl:/u01/app/oracle/product/19.3.0/dbhome_1:Y

创建 systemd 服务实现开机自动启动数据库实例和监听。

常见问题排查

  • ORA-00845: MEMORY_TARGET 失败:检查 /dev/shm 大小,确保大于 SGA 配置
  • 安装界面中文乱码:安装前执行 export LANG=en_US.UTF-8
  • 监听无法启动:检查 hostname 与 /etc/hosts 是否一致
  • 权限问题:确认 oracle 用户对 /u01 目录有完整权限

总结

在 CentOS 上安装 Oracle 数据库虽然步骤较多,但只要按照环境准备、内核调优、静默安装、建库验证的流程逐步操作,成功率很高。关键点在于依赖包齐全、内核参数正确、目录权限到位。建议在正式部署前先用虚拟机完整演练一遍流程。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注