Redhat4安装Oracle10注意事项

引言:那些年我们一起踩过的安装坑
2013 年的企业级开发环境中,Oracle 数据库几乎是”标配”。而 Red Hat Enterprise Linux 则是 Oracle 官方推荐和支持的最佳平台。然而,在 Linux 上手动安装 Oracle 绝不是一件轻松的事情 —— 从系统环境配置到依赖包安装,从内核参数调整到环境变量设置,每一个环节都可能成为绊脚石。
我至今还记得第一次独立在 Red Hat 上安装 Oracle 10g 的场景。整整花了一天的时间,期间遇到了包依赖冲突、内核参数不匹配、监听器启动失败等各种问题。每次以为快要成功的时候,总有一个新的错误跳出来。但也正是这些踩坑的经历,让我对 Linux 系统管理和 Oracle 数据库有了更深的理解。
这篇笔记记录了我在 Red Hat 上安装 Oracle 10g 的完整过程和所有注意事项。如果你也面临着同样的任务,希望这份指南能帮你少走弯路。
第一部分:安装前的环境检查
在正式开始安装之前,全面的环境检查是成功的关键。很多安装失败的原因,其实都可以在这个阶段被发现和解决。
1. 硬件要求
安装 Oracle 10g 对硬件有明确的要求,不满足这些条件可能会导致安装过程出错或数据库运行不稳定:
| 检查项 | 最低要求 | 说明 |
|---|---|---|
| Swap 分区 | 不低于 2G | 内存不足时系统使用的交换空间 |
| SELinux 状态 | disabled | 安全增强型 Linux,安装 Oracle 时必须关闭 |
| 物理内存 | 不低于 512M | Oracle 数据库运行的基础内存需求 |
检查命令:
1 | # 检查 swap 分区 |
2. 系统要求
推荐使用 Red Hat Enterprise Linux 5 默认安装。虽然本文标题写的是 Red Hat 4,但实际验证过程中 RHEL 5 的兼容性更好。
第二部分:数据库软件准备
3.1 软件下载
根据实际环境从 Oracle 官方网站下载相应的数据库安装包:
http://www.oracle.com/technology/software/products/database/index.html
注意:下载时需要选择与操作系统架构(32位/64位)对应的版本。
3.2 解包
1 | unzip 10201_database_linux32.zip |
解包完成后,将 database 目录拷贝到 /opt 目录下,以便 oracle 用户安装使用:
1 | cp -r database /opt/ |

第三部分:Red Hat 系统配置(核心环节)
这一部分是整个安装过程中最关键、最容易出错的环节。请严格按照顺序执行每一步。
4.1 安装缺失的依赖包
Oracle 安装需要大量的系统依赖包。首先检查已安装的包:
1 | rpm -q gcc make binutils openmotif setarch compat-db compat-gcc compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel |
如果采用默认安装方式,通常会提示以下包缺失:
- openmotif
- compat-db
- compat-gcc
- compat-gcc-c++
- compat-libstdc++
- compat-libstdc++-devel
4.1.1 挂载安装光盘
1 | # 在 /mnt 下创建 cdrom 目录 |
4.1.2 按顺序安装缺失的包
重要:由于缺失的包之间有严格的依赖关系,必须按照以下顺序安装:
1 | rpm -Uvh compat-db-4* |
安装完成后,可能仍然提示以下包没有安装,但这不影响后续使用:
1 | package compat-gcc is not installed |
4.2 配置内核参数
编辑 /etc/sysctl.conf 文件:
1 | vi /etc/sysctl.conf |
添加或修改以下内容:
1 | kernel.shmall = 2097152 |
使设置立即生效:
1 | /sbin/sysctl -p |
解读:这些内核参数主要控制共享内存、信号量和网络缓冲区的大小。Oracle 在运行时需要大量的共享内存资源,如果这些参数设置过小,数据库可能无法正常启动。
4.3 配置系统资源限制
编辑 /etc/security/limits.conf 文件:
1 | vi /etc/security/limits.conf |
添加以下内容:
1 | * soft nproc 2047 |
解读:
nproc限制最大进程数nofile限制最大打开文件数- Oracle 在运行时会创建大量进程和打开大量文件,这些限制必须适当放宽
4.4 配置 PAM 限制
编辑 /etc/pam.d/login 文件:
1 | vi /etc/pam.d/login |
添加以下内容:
1 | session required /lib/security/pam_limits.so |
这确保上面 limits.conf 中的设置能够生效。
4.5 禁用 SELinux
编辑 /etc/selinux/config 文件:
1 | vi /etc/selinux/config |
修改为:
1 | # This file controls the state of SELinux on the system. |

为什么必须禁用 SELinux? SELinux 的安全策略会阻止 Oracle 进程访问某些系统资源,导致安装或运行异常。虽然从安全角度来看这不是最佳实践,但在 Oracle 10g 的安装场景中,关闭 SELinux 是官方推荐的做法。
4.6 添加 Oracle 用户和组
1 | groupadd oinstall |
说明:
oinstall组:用于 Oracle 软件的安装dba组:拥有数据库管理权限oper组:用于数据库操作权限
4.7 创建安装目录并设置权限
1 | mkdir -p /u01/app/oracle/product/10.2.0/db_1 |
4.8 添加 X Window 访问控制
1 | xhost + machine-name |
Oracle 安装程序基于图形界面,需要通过 X Window 系统显示安装向导。
4.9 设置主机名和 IP 映射(极其重要)
编辑 /etc/hosts 文件:
1 | vi /etc/hosts |
删除原有内容,添加以下两行:
1 | 127.0.0.1 localhost |
踩坑警告:这是整个安装过程中最容易忽略但也最致命的一步!
如果不添加 127.0.0.1 localhost 这一行,安装后会出现以下严重问题:
- 数据库可以打开,但通过
http://ip:1158/em访问控制台时,发现数据库和监听器均无法启动 - 以管理员帐号进入 EM,页面提示
Network Adapter error - 通过命令
lsnrctl start启动监听器时,会报以下错误:
1 | LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 17-OCT-2007 15:35:07 |
我第一次安装时就因为没有正确配置 hosts 文件,导致监听器无法启动,排查了很久才找到原因。这个教训让我深刻认识到:在 Linux 环境中,网络配置和主机名映射是基础设施中的基础设施。
4.10 修改 Red Hat 版本标识
Oracle 10g 安装程序会检查操作系统版本。如果版本不匹配,安装程序会拒绝继续。因此需要”伪装”系统版本:
1 | vi /etc/redhat-release |
将:
1 | Red Hat Enterprise Linux Server release 5 (Tikanga) |
替换为:
1 | redhat-4 |
安装完成后再改回来。
4.11 配置 Oracle 环境变量
切换到 oracle 用户:
1 | su - oracle |
添加以下内容:
1 | # Oracle Settings |
使环境变量生效:
1 | source ~/.bash_profile |

第四部分:执行安装
4.13 启动安装程序
以 oracle 用户登录系统,打开终端,将当前位置定位到 database 目录中:
1 | unset LANG |
注意:使用 unset LANG 是为了避免中文乱码导致安装界面显示异常。
如果之前的依赖包都按要求安装完成,安装过程应该会很顺利。如果安装进度在 63% 左右出现错误(如提示遇到问题需要重试、忽略等),一般就是系统要求的包没有安装完全。此时需要仔细检查第 4.1 步中的所有包是否都已正确安装。
第五部分:安装后的启动与维护
启动数据库
安装完成后重启机器,登录 oracle 用户,打开终端:
1 | # 登录数据库 |
访问控制台:http://ip:1158/em
4.14 恢复 Red Hat 版本标识
1 | vi /etc/redhat-release |
将内容改回原来的:
1 | Red Hat Enterprise Linux Server release 5 (Tikanga) |
4.15 设置开机自动启动
编辑 /etc/oratab 文件:
1 | vi /etc/oratab |
将最后一行的 N 改为 Y:
1 | orcl:/u01/app/oracle/product/10.2.0/db_1:Y |
常见问题排查手册
问题 1:网络检查不通过
解决方案:修改 /etc/hosts 文件,确保第一行是 127.0.0.1 localhost。
问题 2:依赖包缺失
按顺序安装以下包:
1 | libXp-1.0.0-8.i386.rpm |
问题 3:中文乱码
解决方案:设置英文环境进行安装:
1 | export LC_ALL=en_US |
在安装过程中选择高级安装,并将数据库语言选为中文,字符集选择 GBK。
问题 4:数据库关闭后无法重新启动
原因:安装之后启动方式使用的是 spfile,关闭后启动时利用的是 init<SID>.ora 参数文件。
解决方案:
从 ORACLE_HOME/admin/数据库实例名/ 目录下找到类似 init.ora2009xxxx 的文件,重命名后放到 ORACLE_HOME/dbs/ 目录下。
可以不安装的包
1 | package compat-gcc is not installed |
必须安装的包
1 | gcc-3.4.6-9 |
写在最后:从安装过程中学到的
回顾整个 Oracle 安装过程,我最大的感受是:企业级软件的安装不仅仅是”下一步、下一步、完成”那么简单。每一个参数、每一个配置项的背后,都有其存在的原因和意义。
- 内核参数控制着系统资源的分配上限
- 依赖包提供了 Oracle 运行所需的底层库函数
- hosts 配置影响着网络通信的正常与否
- 环境变量决定了 Oracle 进程的运行路径和行为方式
理解了这些”为什么”,以后再遇到安装问题时,就不再是盲目地搜索和试错,而是能够有针对性地分析和解决。
这篇笔记记录于 2013 年 11 月,是我在 Red Hat 上安装 Oracle 10g 的完整总结。虽然这些技术在今天看来已经有些”古老”,但其中体现的系统管理思想和排错方法论,至今仍然适用。技术在变,但解决问题的思维方式是永恒的。








