作者:laozei
在RedHat7.3上成功安装Oracle Database 9iR2已经有一段日子了。当时,RedHat7.3刚刚出来,Oracle9iR2也是“初出茅庐”,无论是中文网站还是英文网站都没有关于两者相结合的资料,英文网站还好些,至少有基于RedHat7.2/7.1安装oracle9i的资料,中文网站上则只充斥着RedHat6.x+oracle8.x。俺只好自己摸索,还好,经过一个多星期奋战,“理论与实践相结合”,终于结出果实--安装成功了。。。累死俺了。。。从来没有安装一个东西这么久过,太打击俺的自信心了:)相信有不少人与俺有相似的经历,为了让后来者少走些弯路,少浪费点时间(有一周的时间干什么不行呀,看碟、打游戏、泡MM、睡觉。。。哈哈),俺就把安装的过程给“演示”一遍吧。。。不过,俺没有那么多的精力,也没有那么好的条件,更没有那么好的文采,所以俺本着“GPL的原则”从网上COPY了一份“在Linux下安装Oracle Database 9i”(原文见:http://www.ccidnet.com/tech/guide/2001/11/20/58_3761.html)进行修改而成此文。。。原文中有些错误,本文也顺便给予了纠正。原文中的图片是oracle9i版的,与本文要“讲述”的oracle9iR2版不太一样,不过也相差不大,意思都差不多,您就将就着看吧:),好了,别睡了,开始了。。。。
Oracle9i Database Release 2 简称oracle9ir2(俺自己简称的,非官方:))2002年X月X日发布,为岂今为止的最新版。oracle9iR2 实际上是指 oracle9ir2 Database, oracle9ir2 Application Server 和oracle9ir2 Developer Suite的完整集成,不过,在这儿俺把它作为了oracle database release 2的简称了,希望您不要误会(误会了也没事,多看几遍本文就“清醒”了:))。本文将介绍oracle Database 9ir2(又改成正确的称呼了,呵呵)在RedHat7.3下的安装过程,如果你有过安装oracle的经验,本安装过程可以权当快速安装手册;如果你以前从未在RedHat7.3(或Linux)下安装过oracle数据库,那我们就从这篇文章开始熟悉oracle的安装过程。
系统要求:
以下的系统要求适用于典型的oracle安装和创建简单数据库的方式。
内存:
安装Oralce 9iR2软件至少需要512M内存,用以下命令可以查看主机内存大小:
grep MemTotal /proc/meminfo
MemTotal: 900252 kB
900252kB就是你系统的内存大小。
交换区:
交换区的大小一般要求是内存的两倍,至少要求达到400M以上,当然是越大越好,用以下的命令可以查看系统交换区的大小:
/sbin/swapon -s
Filename Type Size Used Priority
/dev/sda6 partition 105221 686976 -1
其中105221就是系统交换区的大小。
光驱:
如果你使用光盘安装oracle9iR2则你的机子上需要8速以上的CDROM,如果你是下载了oracle9iR2的包文件(相信大部分人都是下载的),则不需要使用的CDROM。
硬盘空间:
安装oracle9iR2数据库至少要有2.5GB以上的剩余空间。
临时硬盘空间:
oracle安装程序在安装过程中需要400M以上的临时硬盘空间,建议使用/tmp文件夹作为临时时文件夹,如果/tmp文件没有足够的硬盘(好象一般情况下会有),可以新创建一个文件夹作为安装的临时目录,之后设置环境变量TEMP和TMPDIR指向相应的位置,例如:
使用bash(基本上都是用的这个)
mkdir /home/temp
TEMP=/home/temp ; export TEMP
TMPDIR=/home/temp ; export TMPDIR
使用csh
mkdir /home/temp
setenv TEMP /home/temp
setenv TMPDIR /home/temp
操作系统:
本文将以RedHat7.3为例介绍oracle9iR2的安装过程。注意:请在安装RedHat7.3的时候选择英文安装方式,不要选择中文,否则在安装oracle的时候会遇到乱码。X-Windows是必需的。如果您不知道哪些东西是安装ORACLE的时候需要的,那么,您不妨选择全部安装。
虚拟x-windows软件:
这个软件不是必要的!所谓虚拟x-windows软件指的是可在远程终端允许服务器x-windows的虚拟软件,现在流行的x-windows软件有exceed、x-win32等软件,如果你嫌在控制台安装oracle系统麻烦,可以使用虚拟x-windows软件在远程终端在图形界面下安装oralce9i,本文将以x-win32 5.0为例介绍用虚拟x-windows安装oracle9i的过程。(其实你也可以用VNC进行远程控制来安装,其原理与用虚拟x-windows软件不太一样,不需要用虚拟x-windows软件那样需要进行环境变量的特殊设置,和直接在本机安装是一样的)
配置内核参数
oracle9iR2使用RedHat7.3的共享内存、交换区等资源进行工作,如果你的内核参数设置不能满足oracle的要求,那在安装oracel9iR2或使用过程就会频频出现问题,因此配置系统内核的参数就显得尤为重要和关键了。
内核参数的配置一般在/proc文件夹下配置:
1. 以root用户允许以下命令;
2. 进入目录/proc/sys/kernel;
3. 用cat命令或more命令查看semaphore当前参数的值:
cat sem
命令运行后将会出现如下的结果:
250 32000 32 128
其中, 250 是参数SEMMSL的值,32000是参数SEMMNS的值, 32是参数SEMOPM的值,而128则是参数SEMMNI的值。
4. 用以下的命令可以对上述参数进行修改(实际安装过程中发现,这一步可以省略)
echo SEMMSL_value SEMMNS_value SEMOPM_value SEMMNI_value sem
其中SEMMSL_value、SEMMNS_value、SEMOPM_value、SEMMNI_value分别用相应的值进行替换,并且这些值的顺序不能调换
5. 设置共享内存大小,共享内存大小一般设为物理内存的一半,在这里我们假设物理内存为512M则共享内存的值4294967295以此类推,如果你的物理内存是1G则这里的值则是8589934590:
echo 4294967295 shmmax
(至少从我的安装经历来说,这一步是必须的,否则会出问题)
添加用户
oracle在安装和使用中需要用特定用户(非root用户),按照oracle的标准说明是需要添加三个专门用户和用户组,为了简便大家的安装和使用我们把oracle的安装和使用归到一个特定用户来完成。
首先创建oracle用户组,我们架设这个用户组命名为dba:
以root用户登陆系统;
运行groupadd dba命令添加dba用户组;
添加oracle用户:
以root用户登陆系统;运行如下命令:
useradd ?g dba ?p password ?d /oracle ?s /bin/bash oracle
运行后系统创建了一个属于dba用户组的用户oracle,密码为password,主目录为/oracle使用bash
这个用户将作为系统的安装和使用指定用户,因此要妥善保存好!
创建安装点(mount point)
oracle9ir2的典型安装需要至少两个安装点:一个安装基本的运行程序,要求至少要有850M的硬盘空间;一个为存放数据库,至少要求有450M的硬盘空间。为了简化安装我们可以把运行程序和数据库装在同一个安装点下。
在你的文件系统上找到有足够空间的分区,在分区下创建文件夹,我们假设这个文件夹为/oracle。
配置系统环境变量
很多网友安装oracle失败都是因为环境变量没有配置正确,环境变量的配置直接影响到以后oracle9ir2的安装和配置,在配置的时候要尤为小心!
配置x-windows变量
确认oracle9i在安装过程中是否使用本地x-windows安装还是远程虚拟x-windows安装,如果需要远程x-windows安装(虚拟x-windows方式,非VNC),则需要配置DISPLAY变量,这个变量用于告诉系统屏幕的图形将输出到什么位置,默认情况下是本机,如果你使用虚拟x-windows进行安装,则在这里指明远程终端的显示情况,比如你远程终端的IP地址是xxx.xxx.xxx.xxx则DISPLAY的变量应设为“xxx.xxx.xxx.xxx:0”后面的“:0”表示该终端的第一个显示器。
确定安装临时目录
前面我们提到过oracle9ir2的安装需要一个临时的可写空间,我们在这里把/tmp作为临时的可写目录。如果你不是使用/tmp作为临时可写目录则需要配置相应的值TMPDIR=/path。
配置oracle的环境变量
下面提供一个例子可以供大家参照使用
export DISPLAY="192.9.200.24:0.0"
export BASH_ENV=$HOME/.bashrc
ORACLE_HOME=/oracle/product/9.2.0; export ORACLE_HOME
ORACLE_SID=oracle; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
TNS_ADMIN=/oracle/config/9.2.0; export TNS_ADMIN
NLS_LANG=american_america.ZHS16GBK; export NLS_LANG
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
LD_LIBRARY_PATH=$ORACLE_HOME/lib;export LD_LIBRARY_PATH
PATH=$PATH:/bin:/usr/bin:/usr/sbin:/etc:/opt/bin:/usr/ccs/bin:/usr/openwin
PATH=$PATH:/opt/local/bin:/opt/NSCPnav/bin:$ORACLE_HOME/bin
PATH=$PATH:/usr/local/samba/bin:/usr/ucb:
export PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
TMPDIR=/tmp;export TMPDIR
umask 022
其中:
ORACLE_HOME为系统软件的安装目录;
ORACLE_SID 为数据库的SID,这里可以自行设置;
NLS_LANG 为数据库的字符集,为了保证数据库能够输出输入数据库,我们需要在这里把字符集设为american_america.ZHS16GBK