Linux上安装oracle,因其过程之繁琐,报错率之高,成为了许多工程师的梦魇。前段时间因工作需要,分别在HP的PC服务器和小型机上装了几次oracle,其间的过程是生不如死啊,简直都快弄出人命了~如果自己没有一套完整的安装流程,光靠临时去百度的话,我想任何人都会有这样的问题:不断报错,不断卡壳,没完没了……最后还很有可能导致不得不重装系统。这些使得我不得不对自己的教训进行了总结,现总结出一份史上最详细的安装教程,供自己备忘,同时也分享给大家。
    本教程适用环境为32位的RHEL5系统和oracle11g R2。
1、在安装oracle之前,用命令检查必需的RPM软件包有没有安装
命令如下:
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio  libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel
如果RPM包安装完全的话会如图所示
p_w_picpath 
如果未安装完全会显示XXX is not installed,这个时候可以通过挂在RHEL5.4的光盘或镜像,在Server文件夹里寻找相应的RPM包安装。
2、建立oracle系统用户和安装目录
创建一个主组oracle和一个副组dba
groupadd oinstall
groupadd dba

创建oracle安装文件夹
mkdir -p /oracle
添加一个oracle用户, 根目录是 /oracle, 主的组是oinstall 副的组是dba
useradd -g oinstall -G dba -d /oracle oracle
拷贝包含环境变量的文件到安装目录下,这个之后会用到
cp /etc/skel/.bash_profile /oracle
cp /etc/skel/.bashrc /oracle
cp /etc/skel/.bash_logout /oracle

为oracle用户设置密码 123456
passwd oracle
设置安装目录用户权限
chown -R oracle:oinstall /oracle
检查 nobody 是否存在
id nobody
缺省存在的,会显示nobody的uid、gid和groups,默认都是99。如果不存在可以输入以下命令
/usr/sbin/useradd -g nobody
3、修改内核参数
vi /etc/sysctl.conf
在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 = 1048586
p_w_picpath 
4、设置oracle用户的shell limit
vi /etc/security/limits.conf
在limits.conf中加入以下内容,同样放在末尾,如图所示
oracle           soft    nproc   2047
oracle           hard    nproc  16384
oracle           soft    nofile   1024
oracle           hard    nofile  65536
p_w_picpath 
增加下面的内容到文件 /etc/pam.d/login 中,使shell limit生效
vi /etc/pam.d/login
session    required     pam_limits.so
p_w_picpath 
5、设置oracle 用户环境变量
首先切换到oracle用户下
su – oracle
vi .bash_profile

在隐藏的.bash_profile文件中,将原有的环境变量删除,加入以下环境变量,注意自己的根目录位置
ORACLE_BASE=/oracle
ORACLE_HOME=$ORACLE_BASE/oracle
ORACLE_SID=DATA
PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

p_w_picpath 
6、将oracle安装包解压后上传到linux中,准备开始安装
Oracle 11g Release 2 linux x86官方的安装包分两个文件,一个1.2G一个900+M,解压缩后会有一个database文件夹,把这个文件夹拷过去就可以了。具体过程不再描述。复制完成后,改变oracle用户访问安装包的权限
chown -R oracle:oinstall /usr/oracle_install/database
注销root用户,改用oracle用户登录,来的database文件夹下,开始安装
./runinstaller
p_w_picpath 
这里注意一下,如果是用root用户通过su切换到oracle用户的话,在“检查监视器”这一项可能无法通过,会显示以下警告

检查监视器: 监视器配置至少必须显示 256 种颜色
&gt;&gt;&gt; 无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了 DISPLAY 变量。 未通过 <&lt;&lt;&lt;

未通过某些要求检查。必须先满足这些要求,

然后才能继续安装,那时将重新检查这些要求。

是否继续? (y/n) [n] y

因此注销或重启后用oracle用户登录最为保险。
7、安装过程
这时候不出意外的话会弹出oracle 11g的图形安装界面,现在根据图形界面的提示一步一步安装吧
clip_p_w_picpath002[4]

这一步可填可不填,由于这里是实验,所以就不填了
clip_p_w_picpath004[4]
选择仅安装数据库软件,数据库实例可以放到安装完后再配置
clip_p_w_picpath006[4]
选择单实例数据库安装
clip_p_w_picpath008[4]
语言默认即可
clip_p_w_picpath010[4]
选择安装企业版,也可以根据个人需求来选择
clip_p_w_picpath012[4]
Oracle的安装目录,这里已经在环境变量中设置过了,默认即可
clip_p_w_picpath016[4]
这里会提示要创建一个清单目录,回到命令行下,输入以下命令,否则文件夹不存在会报错。
创建完文件夹后再点击下一步
mkdir /oraInventory
chown -R oracle:oinstall oraInventory
clip_p_w_picpath018[4]
设置不同组的数据库权限
clip_p_w_picpath020[4]
安装程序会检查物理内存和空间大小,由于虚拟机分的内存很小,所以oracle检查会提示失败,不过我们可以忽略它,在右上角打勾即可(真实的服务器内存非常大,一般不会出现此问题)
clip_p_w_picpath022[4]
检查一遍之前的配置,点“完成”开始正式安装
clip_p_w_picpath024[4]
clip_p_w_picpath026[4]
安装完毕, 提示执行两个脚本
./oraInventory/orainstRoot.sh
./oracle/oracle/root.sh

最后点finish,oracle安装完成!
8、开启oracle监听服务
首先在命令行上输入netca,会弹出一个对话框
clip_p_w_picpath028[4]
这里一直默认下一步就可以了,最后点“完成”结束
9、创建oracle数据库
回到命令行,输入dbca,会弹出以下会话框
clip_p_w_picpath030[4]
数据库名称和SID取DATA(注意要和环境变量中设置的SID一样)
clip_p_w_picpath032[4]
为不同用户设置统一口令,后期可以更改
clip_p_w_picpath034[4]
接着下一步,在第九步左右Character Sets 选择 Use Unicode(AL32UTF8)字符集
clip_p_w_picpath036
开始创建数据库,如无意外的话,进度条走完后数据库即创建完成。
10、测试数据库
注意必须使用oracle系统用户登录才能操作数据库,以及开启监听、控制台等功能。
[oracle@localhost ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Sat Dec 24 23:33:57 2011

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> conn /as sysdba   //连接数据库
Connected to an idle instance.   //oracle实例未开启
SQL> startup  
ORACLE instance started.

Total System Global Area  238530560 bytes
Fixed Size                  1335724 bytes
Variable Size             121638484 bytes
Database Buffers          113246208 bytes
Redo Buffers                2310144 bytes
Database mounted.
Database opened.
SQL> conn /as sysdba  
Connected.
SQL> create table testUser( id integer,name char(10));   //创建表

Table created.

SQL> insert into testUser values(0,'mike');   //创建记录

1 row created.

SQL> select * from testUser;

           ID NAME
---------- ----------
             0 mike
关闭数据库
SQL>  shutdown immediate
SQL>  quit

以上现象说明oracle已经安装成功,也可以通过web页面访问oracle数据库
首先在命令行输入emctl start dbconsole开启控制台服务
在浏览器上输入https://X.X.X.X:1158/em即可访问(X.X.X.X是服务器IP),用户名和口令即创建数据库时创建的用户名(SYS、SYSTEM等)。
clip_p_w_picpath002[10]

clip_p_w_picpath004[8]

至此oracle安装完成,希望通过此教程,我们都能够在安装的过程中少走弯路。呵呵,大家都这么忙,时间耗不起呵~