redhat Linux9下安装Oracle9204详细说明

本文详细介绍了在Redhat Linux9系统上安装Oracle9.2.0.4的步骤,包括系统配置、环境变量设置、Oracle用户的创建、磁盘空间规划和安装过程,以及解决安装中遇到的问题。安装完成后,文章还展示了如何启动和管理Oracle数据库实例和监听程序。

redhat Linux9下安装Oracle9204

一、基本情况介绍:
   
我的机器配置情况:
      CPU
P4 1.5G
     
内存: 256M
      硬盘:
40GB

   
硬盘分区情况:

      Windows
分区CDE,共有25GB
      Linux Swap
1.5GB
      Linux Ext2
12GB

   
操作系统:radhat9Linux Kernel 2.4.20-8


二、准备工作:
   
   1.Oracle 9i
的获取
     Oracle9204_for_Linux
是我在oracle官方网站上下载的,一共是3个压缩文件,名字分别为(注明,我的服务器是64位的,大家可以根据服务器配置下载相应的安装文件):
     
     amd64_db_9204_Disk1.cpio.gz  
大小为413 MB
     amd64_db_9204_Disk2.cpio.gz  
大小为
565 MB
     amd64_db_9204_Disk3.cpio.gz  
大小为
326 MB

  2.
备注信息

   
看到网上的文章介绍,一般说是为考虑兼容性的问题,在安装前都需要对redhat系统进行安装或替换一些rpm包,还要确定rpm包的依赖关系,

   
如:
      glibc-2.3.2-5.i686.rpm
      glibc-common-2.3.2-5.i386.rpm
      glibc-devel-2.3.2-5.i386.rpm
   
等。

   
我认为前面只要是选择了redhat Linux9的全部安装,不要再安装或替换这些rpm包了(redhat Linux9X以下版本没有试过)。

   
另外,在安装oracle不需要安装Java虚拟机(jre)或者(jdk),因为oracle9i自身就有一个(jre),redhat9.0系统也有一个(jre))。

三、配置操作

   
既然省却了前面那么一大堆烦人的预安装操作,那么下面就来进行一些实质的操作,从这里起,算是正式进入了Oracle9i的安装过程。

    1.
设置内核参数,调节信号灯及共享内存:
      Oracle9i
使用Linux的共享内存、交换区等资源进行工作,如果系统的的内核参数设置不能满足Oracle的需求,那么在安装或使用过程就会出现各种问题,因此建议配置或修改这些系统内核的参数。

   
打开/etc/sysctl.conf 文件,将下列数据写入到sysctl.conf的末尾并保存:

  1.      kernel.shmmax = 4294967295 (这个参数如果太小,在最后创建数据库时会报内存的错误)        
  2.      kernel.shmmni = 4096             
  3.      kernel.shmall = 2097152
  4.      kernel.sem = 250 32000 100 128
  5.      fs.file-max = 65536
  6.      net.ipv4.ip_local_port_range = 1024 65000



    其中,kernel.shmmax是共享内存段最大尺寸,kernel.shmmni是共享内存段最小尺寸。进入目录/proc/sys/kernel,可分别用命令:

    #cat shmmax
    #cat shmmni
    #cat shmall
 
   
查看 kernel.shmmax kernel.shmmnikernel.shmall的数值。

 
我在一篇文章看到kernel.shmmax的计算方法为:
      kernel.shmmax = 1024*1024*RAM(M)/2 (
至少)

   
用命令:
      #cat sem
 
   
可以查看kernel.sem的数值。其中, 250 是参数SEMMSL的值,32000是参数SEMMNS的值, 100是参数SEMOPM的值,而128则是参数SEMMNI的值。


   
接下来,打开/etc/security/limits.conf文件,将下列数据添加到 limits.conf的末尾并保存:

  1.     oracle soft nofile 65536
  2.     oracle hard nofile 65536
  3.     oracle soft nproc 16384
  4.     oracle hard nproc 16384


   
这是设置Oracle对文件的要求。

   
当对/etc/sysctl.conf 文件和/etc/security/limits.conf文件修改并保存完毕后,请重新启动(rebootredhat Linux9系统,这样设置的这些参数才能生效。

   
如果此时进入到/proc/sys/kernel路径,用上述的命令再次查看,就会看到设置的参数已经生效。


   2.
创建Oracle用户帐号和安装目录
     
如有以前安装过Oracle 8i for Linux的经验,应该知道在安装Oracle之前须先在Linux操作系统下新增一个名为oracle的用户,以及一个oracle DBA所专用的群组。Oracle在安装和使用中需要用特定用户(非root用户),按照Oracle的标准说明是需要添加三个专门用户和用户组。为了简单方便安装,我们建立两个组,一个负责安装,另一个负责管理,并把Oracle的安装和使用归到一个特定用户来完成。

     
root用户登录,进行如下操作,建立两个组(dba组与oinstall组)和一个Oracle用户,操作命令如下:
      #groupadd dba
      #groupadd oinstall
      #useradd –g oinstall –G dba oracle
      #passwd oracle
     
设置oracle的密码。
   
    Oracle
安装的位置应遵守OFA( Optimal Flexible Architecture )规范。Oracle9i的典型安装需要至少两个安装点:一个安装基本的运行程序,一个为存放数据库,并要确保oracle用户对这两个目录具有可写的权限。

   
运行下面的命令,创建Oracle的安装点(mount point)
     

  1.      #mkdir /opt/oracle9i 
  2.      #mkdir /opt/oracle9i/product 
  3.      #mkdir /opt/oracle9i/product/9.2.0 
  4.      #chown –R oracle.oinstall /opt/oracle9i (这一段必需要,否则安装会报无法创建文件的错误)
  5.      #mkdir /var/opt/oracle9i 
  6.      #chown oracle.dba /var/opt/oracle9i 
  7.      #chmod 755 /var/opt/oracle9i


   3.设置环境变量

     
oracle用户身份登录,打开编辑/home/oracle/.bash_profile文件,在文件末尾添加如下数据行并保存:

  1.      export LD_ASSUME_KERNEL=2.4.1  
  2.      export ORACLE_BASE=/opt/oracle9i 
  3.      export ORACLE_HOME=/opt/oracle9i/product/9.2.0 
  4.      export ORACLE_SID= ORCL (数据库SID,可以修改,建议字母要大写)
  5.      export ORACLE_TERM=xterm 
  6.      export TNS_ADMIN=$ORACLE_HOME/network/admin 
  7.      #export LANG=en_US(这一段我试过加上ORACLE安装界面还是乱码,而且整个字体变得异常难看.)
  8.      export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data 
  9.      LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib 
  10.      LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib 
  11.      export LD_LIBRARY_PATH 
  12.      export PATH=$PATH:$ORACLE_HOME/bin 
  13.    CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib 
  14.      CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib 
  15.      export CLASSPATH 
  16.      #export DISPLAY=hostIP:0.0  



     
这样oracle用户每次登录时都带有这些环境变量。

     
其中:ORACLE_HOME为系统软件的安装目录,ORACLE_SID 为数据库的SID,这里可以自行设置。
     
最后一句“export DISPLAY=hostIP: 0.0” ,在网上一些介绍安装Oracle的文章中提到过,我曾尝试加上它,但是以oracle身份登录的时候,会出现hostIP的错误提示,并且无法正常登录,我查了一些资料也没有解决(我对Linux知之有限,如果您知道原因所在请您告诉我:jrq@educast.com.cn,谢谢),所以在环境变量中将其注释掉了,所幸的是这并不影响Oracle9i的安装。

   
友情提示^_^:此处的环境变量的配置工作尤其重要。很多在Linux下安装Oracle失败的原因都是因为环境变量没有配置正确,环境变量的配置直接影响到下面Oracle9i的安装和配置。所以提醒您在设置环境变量的时候多留神。

   
编辑并保存/home/oracle/.bash_profile文件后,建议先注销退出oracle用户,然后再以oracle用户身份重新登录,这样可以测试一下配置的环境变量是否出错(例如在上面提到的hostIP的错误)。

   
接下来就可以进行Oracle9.2.0 for Linux 的安装工作了。
   
 
四、安装过程:

   1.
对安装文件进行解压

     
root用户登录,新建目录/setup,Oracle9204_for_Linux 3个压缩文件:
         
     amd64_db_9204_Disk1.cpio.gz  
大小为413 MB
     amd64_db_9204_Disk2.cpio.gz  
大小为
565 MB
     amd64_db_9204_Disk3.cpio.gz  
大小为
326 MB

     
复制到目录/setup中。(如果您没有建立/setup目录,请您最好建立一个 &_&


     
进入到/setup目录,对这3个文件进行解压缩,操作命令如下:
        #cd /setup
        #gunzip amd64_db_9204_Disk1.cpio.gz
        #gunzip amd64_db_9204_Disk2.cpio.gz
        #gunzip amd64_db_9204_Disk3.cpio.gz

   
等解压完成后便生成3个如下名字的文件:
       
       amd64_db_9204_Disk1.cpio
       amd64_db_9204_Disk2.cpio
       amd64_db_9204_Disk3.cpio

   
然后再解开cpio文件包,执行如下操作命令
       
        #cpio -idmv < amd64_db_9204_Disk1.cpio
        #cpio -idmv < amd64_db_9204_Disk 2.cpio
        #cpio -idmv < amd64_db_9204_Disk 3.cpio  

   
等三个文件包全部解压完毕后,生成3个安装文件夹,名称分别为Disk1Disk2Disk3。然后注销退出root用户,以oracle用户登录进行安装。


   2.
安装过程
   
     
oracle用户登录,进行安装。进入到/setup/Disk1目录,执行如下命令:
   
       #cd /setup/Disk1
       #./runInstaller

     
运行等一会后,就会出现Oracle Universal InstallerOUI)的图形界面,

提示:以前的版本我安装时有出现乱码的情况,9204的版本未出乱码的问题。

接下来和WIN下安装差不多,按照提示一步步点击“Next”安装即可。


   
可惜,安装的时候我没有把安装过程的界面截取成图片保存下来,也懒的再重新安装了,所以无法用图片做进一步的描述。下面就用文字做一些描述和说明,如有什么表达不清楚的地方,还请谅解。:(

   
前几步保持默认设置,当遇到输入“Unix Group Name”的时候,输入组名“dba”,点击下一步


   
此时Oracle Universal Installer会生成一个建立Oracle Inventory所用的orainstRoot.sh文件,弹出一个提示框,需要用root身份来执行这个/orainstRoot.sh文件,此时可以再开启一个新的终端窗口(Terminal),按照提示窗口所写的目录路径来以root用户来执行orainstRoot.sh。等执行完毕后再回到提示窗口,按下“Continue”按钮继续安装。
 
   
当遇到要输入全局数据库名(Global Database Name)和数据库SID”的窗口时,会发现数据库的SID已经按照环境变量中的设置的ORACLE_SID=YOUR_SID显示出来了。只需要把全局数据库名输入即可。

   
接下来的安装均按照默认设置来进行。

   
当遇到设置数据库的字符集的窗体时,不要选择默认的数据库字符类型。字符集(Character Set)是建立Oracle数据库时最重要的一项设定,如果设定的不正确,很可能造成在使用中无法正常存取中文数据。在这里我们最好选择第三个选项的下拉框,选择Simplifiled Chinese ZHS16GBK这个很重要,一定要看清楚了),按Next进入下一步。

   
Oracle Universal Installer开始复制安装文件之前,会显示要安装的Oracle9i产品摘要,在确认无误后按下“Install”按钮就会开始安装了,这将是一个较长时间的过程,当然了,这和你机器的配置、运算速度和内存空间大小等都有关系。

   
因为我的安装程序是在硬盘上的,所以没有象从光盘安装时候的那些麻烦(具体的从光盘安装的操作,请在网络查阅相关资料吧。^_^ 其实我也没有从光盘安装的经验 ^_^ )。

   
在接下来的安装过程中会出现2个错误,我也查了很多资料,错误各不同,估计是和版本有关,我在这里选择的是全部跳过,当时也担心装了后不能启动服务,还好一切正常。
   
   
当数据库建立完毕,等安装程序将所有文件复制到系统之后,Oracle Universal Installer还会弹出一个提示信息窗口要求以root身分执行运行root.sh程序 root.sh位于 ORACLE_HOME 所指向的目录下。这个时候要再开启一个新的终端窗口(Terminal),以oracle用户的身份登录进去,运行以下的命令操作命令如下:
 
    #su root
    #cd /opt/oracle9i/product/ 9.2.0
    #./root.sh

   
运行后系统会提示如下信息:
    Running Oracle9 root.sh script...
    /nThe following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME= /opt/Oracle9i/product/9.2.0

    Enter the full pathname of the local bin directory: [/usr/local/bin]

   
这里填写默认的目录即:/opt/oracle9i/product/9.2.0/bin即可。


   
等这里执行完毕后,如果一切正常,OUI会出现“The Installation Of Oracle9i Database Was successful.”的提示信息,此时说明Oracle920数据库在redhat Linux9上安装成功了!可真不容易啊!  *_^

   
如果此时还需要进行其它内容的安装,按下“Next Install”按钮可进行安装,否则,请按下“Exit”按钮退出OUI安装。


   
到此为止,Oracle920数据库在redhat Linux9上已经完全安装成功了。

然后开始建库,当建库到46%时会出现共享内存问题,
     
  ORA-27123: unable to attach to shared memory segment
     
这时需要给内核指定内存,可以:
     
  echo 4294967295 >/proc/sys/kernel/shmmax(如遇到错误执行这一段也可以安装成功(
     
或者
     
  编辑/etc/sysctl.conf
     
  kernel.shmmax=4294967295
     
这样就可以数据库的安装。

五、Oracel9i的使用

 
安装完Oracle数据库后会自动启动,下面可以进行一下实际的操作。
 
oracle用户身份登陆数据库,可一个终端窗口(Terminal),进行如下的操作:


     [oracle@Linux oracle]$ sqlplus "/ as sysdba"//
sysdba用户登陆数据库

   
出现如下字符提示:

   ――――――――――――――――――――――――――――――
   SQL*Plus: Release 9.2.0.1.0 - Production on Thu Feb 26 15:53:31 2004
   Copyright(c) 1982,2002, Oracle Corporation. All rights reserved.

   Connected to:
   Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
   With the Partitioning OLAP and Oracle Data Mining options
   JServer Release 9.2.0.1.0 – Production

   SQL>
   ――――――――――――――――――――――――――――――
   
   
运行shudown命令关闭数据库,操作如下:
   ――――――――――――――――――――――――――――――
   SQL> shutdown
   Database closed.
   Database dismounted.
   ORACLE instance shut down.
   SQL>  
   ――――――――――――――――――――――――――――――

   
启动Oracle 9i 数据库,操作如下:
   ――――――――――――――――――――――――――――――
   [oracle@Linux oracle]$ sqlplus "/ as sysdba"

   SQL*Plus: Release 9.2.0.1.0 - Production on Thu Feb 26 16:00:59 2004
   Copyright (c) 1982,2002, Oracle Corporation. All rights reserved.
   Connected to an idle instance.

   SQL> startup

   Oracle instance started.

   Total System Global Area 235999352 bytes
   Fixed Size                  450680 bytes
   Variable Size            201326592 bytes
   Database Buffers          33554432 bytes
   Redo Buffers                667648 bytes
   Database mounted.
   Database opened.
   SQL>
 ――――――――――――――――――――――――――――――
启动企业管理器工具操作如下:

 [oracle@Linux oracle]$ oemapp console

 ――――――――――――――――――――――――――――――
 
启动Oracle 9i监听程序,操作如下
:
 
说明:Oracle的监听程序主要是为客户端的连接提供接口的。

  ――――――――――――――――――――――――――――――

  1.    [oracle@Linux oracle]$ lsnrctl 
  2.    LSNRCTL for Linux: Version 9.2.0.1.0 - Production on 26-FEB-2004 16:10:17 
  3.    Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. 
  4.    Welcome to LSNRCTL, type "help" for information.
  5.    LSNRCTL> start
  6.    Starting /opt/oracle9i/product/9.2.0/bin/tnslsnr: please wait...
  7.    TNSLSNR for Linux: Version 9.2.0.1.0 - Production
  8.    System parameter file is /opt/oracle9i/product/9.2.0/network/admin/listener.ora
  9.    Log messages written to /opt/oracle9i/product/9.2.0/network/log/listener.log
  10.    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
  11.    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Linux)(PORT=1521)))
  12.    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
  13.    STATUS of the LISTENER
  14.    ------------------------
  15.    Alias              LISTENER
  16.    Version            TNSLSNR for Linux: Version 9.2.0.1.0 - Production
  17.    Start Date         26-FEB-2004 15:28:23
  18.    Uptime             0 days 0 hr. 0 min. 0 sec
  19.    Trace Level        off
  20.    Security           OFF
  21.    SNMP               OFF
  22.    Listener Parameter File   /opt/oracle9i/product/9.2.0/network/admin/listener.ora
  23.    Listener Log File         /opt/oracle9i/product/9.2.0/network/log/listener.log
  24.    Listening Endpoints Summary...
  25.     (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
  26.     (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Linux)(PORT=1521)))
  27.    Services Summary...
  28.    Service "ORCL.SOFT" has 1 instance(s).
  29.    Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service...
  30.    Service "PLSExtProc" has 1 instance(s).
  31.    Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
  32.    The command completed successfully
  33.    LSNRCTL>


  ――――――――――――――――――――――――――――――


 
关闭Oracle 9i监听程序,操作如下:
  ――――――――――――――――――――――――――――――

  1.    [oracle@Linux oracle]$ lsnrctl 
  2.     LSNRCTL for Linux: Version 9.2.0.1.0 - Production on 26-FEB-2004 16:15:28 
  3.     Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. 
  4.     Welcome to LSNRCTL, type "help" for information.
  5.     LSNRCTL> stop
  6.     Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
  7.     The command completed successfully 
  8.     LSNRCTL>


  ――――――――――――――――――――――――――――――


   启动Oracle Web Server,操作如下
:
   ――――――――――――――――――――――――――――――

  1.     [oracle@Linux oracle]$cd $Oracle_HOME/Apache/Apache/bin 
  2.     [oracle@Linux oracle]$./startJServ.sh
  3.     /opt/oracle9i/product/9.2.0/Apache/Apache/bin/apachectl start: httpd started 

    ――――――――――――――――――――――――――――――


   启动Oracle Web Server后默认的端口号是7777,在客户端的浏览器地址栏中输入

     
     
http://xxx.xx.xxx.xxx:7777/

   
其中,xxx.xx.xxx.xxx代表IP地址,或用网络机器名也可。如果浏览器出现 ORACLE HTTP Server的页面,则说明Oracle Web Server运行正常。


   
关闭Oracle Web Server, 操作如下:
   ――――――――――――――――――――――――――――――

  1.     [oracle@Linux oracle]$cd $Oracle_HOME/Apache/Apache/bin 
  2.     [oracle@Linux oracle]$./stopJServ.sh
  3.      /opt/oracle9i/product/9.2.0/Apache/Apache/bin/apachectl stop: httpd stopped


   ――――――――――――――――――――――――――――――

   启动Database Configuration Assistant,操作命令如下:

   ――――――――――――――――――――――――――――――
    [oracle@Linux oracle]$dbca&
   ――――――――――――――――――――――――――――――

   
启动Oracle Net Configuration Assistant,操作命令如下:
   ――――――――――――――――――――――――――――――
    [oracle@Linux oracle]$netca&
   ――――――――――――――――――――――――――――――

   
启动Enterprise Manager Configuration Assistant,操作命令如下:
   ――――――――――――――――――――――――――――――
    [oracle@Linux oracle]$emca&
   ――――――――――――――――――――――――――――――



   oemapp
相关命令,如下:
   ――――――――――――――――――――――――――――――

  1.    [oracle@Linux oracle]$oemapp dbastudio
  2.    [oracle@Linux oracle]$oemapp console 
  3.    [oracle@Linux oracle]$oemapp txtmgr
  4.    [oracle@Linux oracle]$oemapp ocmcli
  5.    [oracle@Linux oracle]$oemapp lmviewer
  6.    [oracle@Linux oracle]$oemapp ocm
  7.    [oracle@Linux oracle]$oemapp esmsrv
  8.    [oracle@Linux oracle]$oemapp opm
  9.    [oracle@Linux oracle]$oemapp cpta
  10.    [oracle@Linux oracle]$oemapp esm
  11.    [oracle@Linux oracle]$oemapp jdbctest
  12.    [oracle@Linux oracle]$oemapp oemutil
  13.    [oracle@Linux oracle]$oemapp topsess
  14.    [oracle@Linux oracle]$oemapp dataguard
  15.    [oracle@Linux oracle]$oemapp worksheet
  16.    [oracle@Linux oracle]$oemapp cp
  17.    [oracle@Linux oracle]$oemapp sdoadvisor
  18.    [oracle@Linux oracle]$oemapp pm 


   ――――――――――――――――――――――――――――――

 
六、自启动设置

 

Linux中设置系统启动时自动启动Oracle服务

这个配置在我的另一篇文章中有专门的说明。http://blog.youkuaiyun.com/zhouyunjie/archive/2008/11/18/3326785.aspx

1创建文件dbStart.sh文件,脚本如下

  1. su - oracle <<EOF 
  2. lsnrctl start 
  3. sqlplus /nolog <<EOF 
  4. conn / as sysdba 
  5. startup 
  6. EOF 
  7. exit 
  8. EOF

2、将dbStart.sh文件复制到/root下(这个目录可以为任意目录)

3、编辑/etc/rc.d/rc.local

     在最后一行加入下面脚本:

/root/dbStart.sh

 

4。重新启动系统,检查Oracle是否已经自动启动了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值