在Linux下安装Oracle Database 9i 1

    Oracle9i 2000年10月在Oracle Open World上发布,为 Oracle 数据库、应用服务器和开发工具引进了许多新功能。Oracle9i是业界第一个完整、简单的用于互联网的新一代智能化的、协作各种应用的软件基础架构。


    Oracle9i 实际上是指 Oracle9i Database, Oracle9i Application Server 和Oracle9i Developer Suite的完整集成。随着软件逐渐开始转变为一种托管服务(hosted services), 具有Internet上的高伸缩性能的、智能化的、和可靠的Oracle9i 将成为高质量的电子商务服务实现的关键软件。本文将介绍Oracle Database 9i在Linux下的安装过程,如果你是有过安装Oracle的经验本安装过程可以权当快速安装手册;如果你以前从未在Linux下安装过Oracle数据库,那我们就从这篇文章开始熟悉Oracle的安装过程。
  
    系统要求:
  
    以下的系统要求适用于典型的Oracle安装和创建简单数据库的方式。
  
    内存:
  
    安装Oralce 9i软件至少需要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就是系统交换区的大小。
  
    光驱:
  
    如果你使用光盘安装Oracle9i则你的机子上需要8速以上的CDROM,如果你是下载了Oracle9i的包文件,则不需要使用的CDROM。
  
    硬盘空间:
  
    安装Oracle9i数据库至少要有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
  
    操作系统:
  
    Oracle公司官方公布的资料指出Oracle 9i只在安装SuSuSe 7.1, 内核 2.4.4 和glibc2.2的系统上测试通过,经过本人的测试,Oracle在Linux Mandrake release 8.0,内核2.4.3-20和glibc-2.2.2的版本上也可以顺利安装,本文将以Linux Mandrake8.0为例介绍Oracle9i的安装过程。
  
    虚拟x-windows软件:
  
    这个软件不是必要的!所谓虚拟x-windows软件指的是可在远程终端允许服务器x-windows的虚拟软件,现在流行的x-windows软件有exceed、x-win32等软件,如果你嫌在控制台安装Oracle系统麻烦,可以使用虚拟x-windows软件在远程终端在图形界面下安装oralce9i,本文将以x-win32 5.0为例介绍用虚拟x-windows安装Oracle9i的过程。
  
    JDK
  
    如果你要安装Oracle HTTP Server还需要用到blackdown的JDK1.3.1,请到以下地址下载ftp://ftp.progsoc.uts.edu.au/pub/Linux/java/JDK-1.3.0/i386/rc1/j2sdk-1.3.0-RC1-linux-i386.tar.bz2
  
    配置内核参数
  
    Oracle9i使用Linux的共享内存、交换区等资源进行工作,如果你的内核参数设置不能满足Oracle的要求,那在安装oracel9i或使用过程就会频频出现问题,因此配置系统内核的参数就显得尤为重要和关键了。
  
    内核参数的配置一般在/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 ?Cg dba ?Cp password ?Cd /Oracle ?Cs /bin/bash Oracle
  
    运行后系统创建了一个属于dba用户组的用户Oracle,密码为password,主目录为/Oracle使用bash
  
    这个用户将作为系统的安装和使用指定用户,因此要妥善保存好!
  
    创建安装点(mount point)
  
    Oracle9i的典型安装需要至少两个安装点:一个安装基本的运行程序,要求至少要有850M的硬盘空间;一个为存放数据库,至少要求有450M的硬盘空间。为了简化安装我们可以把运行程序和数据库装在同一个安装点下。
  
    在你的文件系统上找到有足够空间的分区,在分区下创建文件夹,我们假设这个文件夹为/Oracle。
  
    配置系统环境变量
  
    很多网友安装Oracle失败都是因为环境变量没有配置正确,环境变量的配置直接影响到以后Oracle9i的安装和配置,在配置的时候要尤为小心!
  
    配置x-windows变量
  
    确认Oracle9i在安装过程中是否使用本地x-windows安装还是远程虚拟x-windows安装,如果需要远程x-windows安装,则需要配置DISPLAY变量,这个变量用于告诉系统屏幕的图形将输出到什么位置,默认情况下是本机,如果你使用虚拟x-windows进行安装,则在这里指明远程终端的显示情况,比如你远程终端的IP地址是xxx.xxx.xxx.xxx则DISPLAY的变量应设为“xxx.xxx.xxx.xxx:0”后面的“:0”表示该终端的第一个显示器。
  
    确定安装临时目录
  
    前面我们提到过Oracle9i的安装需要一个临时的可写空间,我们在这里把/tmp作为临时的可写目录。如果你不是使用/tmp作为临时可写目录则需要配置相应的值TMPDIR=/path。
  
    配置Oracle的环境变量
  
    下面提供一个例子可以供大家参照使用
  
    export DISPLAY=”192.9.200.24:0.0″
  
    export BASH_ENV=$HOME/.bashrc
  
    Oracle_HOME=/Oracle/product/9.0.1; export Oracle_HOME
  
    Oracle_SID=Oracle; export Oracle_SID
  
    Oracle_TERM=xterm; export Oracle_TERM
  
    TNS_ADMIN=/home/Oracle/config/9.0.1; 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