CentOS 系统安装 Oracle 数据库实战指南
核心提示: 在 CentOS 环境下成功部署 Oracle 数据库,关键在于严谨的系统配置与精准的步骤执行,本文提供经过验证的详细流程。
安装前的关键准备工作

系统资源核查:
- 内存: 物理内存建议不低于 4GB,推荐 8GB 或更高,交换空间配置需遵循 Oracle 官方建议(通常物理内存 1-2 倍)。
- 磁盘空间:
/tmp目录:至少 1GB 可用空间。- Oracle 安装目录:根据版本不同,通常需要 10-20GB 或更多。
- 数据库文件存储:依据数据量规划,预留充足空间(建议独立分区如
/u01、/u02)。
- 操作系统: CentOS 7 或 CentOS 8 (需注意 Oracle 对特定小版本的认证支持),使用
cat /etc/redhat-release确认版本。
软件包依赖安装: 以 root 身份执行,安装必需组件包组及工具:
yum groupinstall "Development Tools" -y yum install 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 elfutils-libelf-devel -y
对于图形化安装界面,需确保桌面环境或 X11 转发配置正确。
内核参数优化: 编辑
/etc/sysctl.conf,加入或修改以下参数(数值依据服务器硬件调整):fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4294967295 # 通常建议为物理内存一半 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
执行
sysctl -p使配置生效。用户资源限制调整: 编辑
/etc/security/limits.conf,为 oracle 用户设置:
oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 16384 oracle hard nproc 16384 oracle soft stack 10240 oracle hard stack 32768 oracle hard memlock 134217728 oracle soft memlock 134217728
创建 Oracle 用户与组:
groupadd -g 54321 oinstall groupadd -g 54322 dba groupadd -g 54323 oper useradd -u 54321 -g oinstall -G dba,oper oracle passwd oracle # 设置强密码
规划与创建安装目录:
mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1 mkdir -p /u01/app/oraInventory chown -R oracle:oinstall /u01/app chmod -R 775 /u01/app
配置 Oracle 用户环境变量: 以 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:/usr/lib export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # 设置字符集
执行 Oracle 数据库软件安装
- 获取安装文件: 从 Oracle 官网下载对应版本的 Linux x86-64 安装包 (如
linuxx64_193000_db_home.zip),上传至服务器(如/tmp)。 - 解压安装文件:
su - oracle cd $ORACLE_HOME unzip /tmp/linuxx64_193000_db_home.zip
- 启动图形化安装:
export DISPLAY=<your_local_ip>:0.0 # 如使用 X11 转发 cd $ORACLE_HOME ./runInstaller
- 配置选项: 选择“仅安装数据库软件”,跳过数据库创建(后续单独执行更可控)。
- 安装类型: 选择“单实例数据库安装”。
- 语言: 选择所需语言(通常包含英文)。
- 安装位置: 确认
ORACLE_BASE和ORACLE_HOME路径正确。 - 操作系统组: 选择
oinstall(Primary),dba(OSDBA),oper(OSOPER)。
- 执行 root 脚本: 安装程序最后会提示以 root 身份执行两个脚本:
/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/19.3.0/dbhome_1/root.sh
按提示执行即可。
创建 Oracle 数据库实例

- 使用 DBCA (Database Configuration Assistant):
su - oracle dbca
- DBCA 创建向导:
- 选择操作: “创建数据库”。
- 数据库模板: 根据需求选择(如“一般用途或事务处理”)。
- 数据库标识: 输入全局数据库名 (如
orcl.yourdomain.com) 和 SID (如orcl)。 - 管理选项: 通常先不配置 EM Express 或云控制。
- 数据库凭据: 为 SYS, SYSTEM 等管理用户设置统一或单独的管理密码(务必使用强密码)。
- 存储位置: 指定数据库文件位置(如使用 ASM 或文件系统),确保路径有权限且空间足够。
- 恢复配置: 配置快速恢复区 (Fast Recovery Area) 位置和大小(重要!用于备份和恢复)。
- 根据需求选择是否安装示例 Schema 或自定义脚本。
- 初始化参数: 通常接受默认,或按需调整内存分配 (SGA, PGA)、进程数、字符集(必须与之前环境变量
NLS_LANG一致,如AL32UTF8)、连接模式等。 - 创建选项: 选择“创建数据库”,DBCA 将开始创建过程,耗时较长。
- 验证数据库状态:
sqlplus / as sysdba SQL> SELECT status, instance_name FROM v$instance; SQL> SELECT name, open_mode FROM v$database; SQL> exit
确认状态为
OPEN。
基础配置与连接测试
- 配置监听器 (LISTENER):
- DBCA 会自动创建监听器,检查状态:
lsnrctl status
- 若需手动配置或修改,使用
netca(Net Configuration Assistant) 或编辑$ORACLE_HOME/network/admin/listener.ora和tnsnames.ora。
- DBCA 会自动创建监听器,检查状态:
- 设置开机自启动 (可选但推荐):
- 创建
/etc/oratab条目(如果不存在):orcl:/u01/app/oracle/product/19.3.0/dbhome_1:Y # 最后一个 Y 表示随 dbstart 启动
- 创建系统服务文件(CentOS 7+ 使用 systemd),
/usr/lib/systemd/system/oracle-rdbms.service(内容需根据环境编写)。
- 创建
- 防火墙开放端口: 开放 Oracle 监听端口(默认 1521)及可能需要的 EM Express 端口(如 5500):
firewall-cmd --zone=public --add-port=1521/tcp --permanent firewall-cmd --zone=public --add-port=5500/tcp --permanent # 如果使用 EM Express firewall-cmd --reload
- 客户端连接测试: 使用 SQL*Plus、SQL Developer 或其他客户端工具,通过配置好的服务名 (Service Name) 或 SID 连接数据库。
个人观点 在CentOS上部署Oracle数据库确实需要投入时间和精力,尤其是前期系统参数配置和依赖检查环节,但按照本文的标准化流程操作,能够规避很多常见安装问题,建议生产环境安装前务必在测试服务器演练,重点关注磁盘规划、内存参数和字符集配置,Oracle数据库的稳定性与性能表现值得前期投入的细致部署工作。
经验提示:数据库创建阶段若因空间不足失败,清理后需手动删除
$ORACLE_BASE/cfgtoollogs/dbca中的残留日志才能重新运行 DBCA,使用df -h命令密切监控/tmp和数据库目录空间至关重要。

