当前位置:首页 > 问答 > 正文

Oracle数据库 Linux运维 CentOS系统下Oracle 11g安装详细教程

🔥 2025最新实战 | CentOS系统下Oracle 11g安装保姆级教程(附避坑指南)

最新动态 📢
据2025年7月数据库技术社区消息,Oracle 11g虽已停止主流支持,但在金融、政务等传统领域仍占据30%以上市场份额,特别提醒:CentOS 7用户需注意glibc版本兼容性问题,本文已更新解决方案!


🛠️ 准备工作(别急着安装!)

硬件配置建议

  • 内存:最小2GB(生产环境建议8G+,别问为什么卡)
  • 磁盘:/u01目录至少20GB(数据文件另算)
  • 交换分区:内存1.5倍(实测低于这个值安装会报警)

软件包全家桶
用root执行这条救命命令👇

yum install -y binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common gcc gcc-c++ libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh ksh

💡 避坑提示

  • 如果报pdksh找不到,改用ksh(Oracle官方文档这个坑踩了十年)
  • CentOS 8用户需额外安装compat-libstdc++-33的EPEL源版本

🐧 系统配置(这些参数错了会哭)

修改内核参数
编辑/etc/sysctl.conf,加入以下灵魂配置:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 2147483648
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生效后,建议重启(血泪教训:有人没重启导致内存分配异常)

用户和目录创建

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01

环境变量配置
在oracle用户的~/.bash_profile尾部追加:

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

💾 安装实战(手把手截图级指导)

Step 1. 上传安装包
将以下文件传到/tmp目录:

Oracle数据库 Linux运维 CentOS系统下Oracle 11g安装详细教程

  • linux.x64_11gR2_database_1of2.zip
  • linux.x64_11gR2_database_2of2.zip

Step 2. 解压并启动安装

unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
cd database
./runInstaller

🚨 必看异常处理
如果出现[INS-13001]错误,执行:

export CV_ASSUME_DISTID=RHEL7  # CentOS7专用魔法咒语

Step 3. 图形界面操作指南

  1. 取消邮箱通知(除非你想每天收广告)
  2. 选择"仅安装数据库软件"(配置实例后面单独做更稳)
  3. 语言选择英文+简体中文(纯中文可能乱码)
  4. 使用默认的"企业版"安装

Step 4. 执行root脚本
安装最后会提示:

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh

⚠️ 注意第二个脚本可能报/etc/oratab错误,直接回车忽略即可


🎯 数据库配置(这才是重头戏)

创建监听器
切换到oracle用户执行:

netca

选择默认配置即可(手贱改端口会引发连环车祸)

Oracle数据库 Linux运维 CentOS系统下Oracle 11g安装详细教程

建库实战命令

dbca

关键选项:

  • 选择"创建数据库"
  • 模板选"一般用途"
  • SID保持ORCL(改名字需同步改环境变量)
  • 字符集必须选AL32UTF8(除非你想处理乱码到崩溃)
  • 示例schema建议勾选(练手用)

启动测试

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

看到OPEN就开香槟吧!🍾


🔍 常见翻车现场

Q1: 安装时提示libXp.so.6缺失?

yum install libXp.x86_64 -y  # 这个依赖项文档从来不写

Q2: dbca卡在44%不动?
删除/tmp下的.oracleCVU*临时文件,可能是权限问题

Q3: sqlplus连接报ORA-12541
检查监听是否启动:

Oracle数据库 Linux运维 CentOS系统下Oracle 11g安装详细教程

lsnrctl status
# 如果没起来
lsnrctl start

📊 安装后必做优化

  1. 关闭审计(除非有合规要求)

    ALTER SYSTEM SET audit_trail=none SCOPE=spfile;
  2. 调整内存

    ALTER SYSTEM SET sga_target=2G SCOPE=spfile;
    ALTER SYSTEM SET pga_aggregate_target=1G SCOPE=spfile;
  3. 设置自动备份
    用rman配置每日全备(数据丢了别来找我😏)


🏁 最终检查清单

ps -ef | grep ora_ 看到至少30个进程
sqlplus system/密码@orcl 能正常登录
df -h 确认归档目录有足够空间

如果全部通过,恭喜你晋级Oracle初级DBA!🎉 建议立即做个快照备份,别问我为什么强调这个...(来自一个重装了5次的老司机的忠告)

发表评论