linux之oracle9i安装

(Oracle9i Enterprise Edition Release 9.2.0.1.0)。现在把安装过程记录一下,以备日后参考。

 

----------------------------------------------------------------------------------------------------------------

 

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

   硬盘分区情况:
      Windows分区C、D、E,共有25GB。
      Linux Swap:1.5GB
      Linux Ext2:12GB 

   操作系统:radhat9(Linux Kernel 2.4.20-8)


   在网上看到的介绍Oracle如何安装的文章说,Oracle对Linux的Swap分区的要求至少要有内存的2倍,即512M大小,当然越大越好。最初在Linux7.1下使用Oracle817的时候,我的Swap分区大小一直是512M,在这次安装Oracle9i的过程中发现,当到了创建数据库阶段的时候,提示“out of  momery”的错误,安装过程被迫停止,估计是Swap有点小了,没有办法,又重新划分了磁盘空间,把Swap分区一下子增大到1.5GB,再次安装,果然安全的、顺利的、无误的通过。 ^_^ 

   Linux的文件分区最少需要7G。因为在Linux下安装Oracle的条件需求比较苛刻,所以在安装redhat Linux9的时候我选择是全部安装,这样在后面的Oracle9i安装中系统就不需要再安装这个包那个包了,省了很多的麻烦了,这个方法还是在redhat Linux7.1下安装Oracle817的时候学会的(在网上看到的文章中也有推荐说全部安装的)。redhat Linux9的全部安装大约需要4.5G的空间,而Oracle9i数据库大概需要2GB的空间(何致亿在他的文章中说数据库系统需要2 ~ 2.5 GB的空间),所以一共下来差不多要7GB。

   以上数据仅供参考,一句话,给Linux的分区空间越大越好,对Oracle的操作越有利。

 

----------------------------------------------------------------------------------------------------------------------

 

二、准备工作:
   
   1.Oracle 9i的获取
     Oracle920_for_Linux是我在 ftp://ftp.lib.tsinghua.edu.cn/ 这个站点上(清华的FTP服务器),花了一个晚上的时间来下载的,一共是3个压缩文件,名字分别为:
     
     lnx_920_disk1.cpio.gz   大小为527 MB (553,607,967 字节)
     lnx_920_disk2.cpio.gz   大小为561 MB (588,799,187 字节)
     lnx_920_disk3.cpio.gz   大小为421 MB (442,089,854 字节)
   
   3个文件共有1.47 GB (1,584,497,008 字节)。


  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包了(这个没有深入的研究,不知道说的对不对,但至少是我在自己的机子上没有再安装替换这些rpm包。还有的文章说网上提供免费下载的Red Hat9是一个不完全的版本,它本身并不带有相应版本的glibc安装包,需要对glibc进行安装替换,也许是我下载的redhat Linux9是“完全的”,所以我也没有对glibc进行过任何操作。*_^  当然在redhat Linux7X下进行安装的时候要另当别论)。

    另外,一些文章中介绍安装Oracle9i的时候需要选择JDK的版本进行安装,我也没有进行这方面的工作,是直接安装Oracle9i的(因为Oracle的安装程序是要有JDK支持的,估计redhat Linux9选择的是“全部安装”方式,development已经安装了。可能关于这一点,让曾经在redhat7x下安装过Oracle8i的朋友有点不解 *_* )。

 

 

-------------------------------------------------------------------------------------------------------------------

 

三、配置操作:

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

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

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

     kernel.shmmax = 536870912        
     kernel.shmmni = 4096             
     kernel.shmall = 2097152
     kernel.sem = 250 32000 100 128
     fs.file-max = 65536
     net.ipv4.ip_local_port_range = 1024 65000

    其中,kernel.shmmax是共享内存段最大尺寸,kernel.shmmni是共享内存段最小尺寸。进入目录/proc/sys/kernel,可分别用命令:
    #cat shmmax
    #cat shmmni
    #cat shmall 
 
   查看 kernel.shmmax 、kernel.shmmni、kernel.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的末尾并保存:
    oracle soft nofile 65536
    oracle hard nofile 65536
    oracle soft nproc 16384
    oracle hard nproc 16384

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

   当对/etc/sysctl.conf 文件和/etc/security/limits.conf文件修改并保存完毕后,请重新启动(reboot)redhat 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):
     
     #mkdir /opt/oracle9i 
     #mkdir /opt/oracle9i/product 
     #mkdir /opt/oracle9i/product/9.2.0 
     #chown –R oracle.oinstall /opt/oracle9i 
     #mkdir /var/opt/oracle9i 
     #chown oracle.dba /var/opt/oracle9i 
     #chmod 755 /var/opt/oracle9i

   3.设置环境变量
     以oracle用户身份登录,打开编辑/home/oracle/.bash_profile文件,在文件末尾添加如下数据行并保存:
     export LD_ASSUME_KERNEL=2.4.1  
     export ORACLE_BASE=/opt/oracle9i 
     export ORACLE_HOME=/opt/oracle9i/product/9.2.0 

    此时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个错误,我所看到的网上的文章中也都说到了,我在这里也描述一下:
    
    第一个错误是Linking阶段的,当安装进度到69%的时候出现的,Oracle Universal Installer提示关于这个文件“/soft/oracle/network/lib/ins_oemagent.mk”有问题,这时我们可以暂时不要去管它,选择“ignore”,将其忽略,等整个安装过程完成以后,再来解决这个问题。(我看了很多资料上都是这么干的,于是乎,我也这么干。唉,真搞不明白 :(  在RH7下安装Oracle8i的时候也是会出现很多个错误提示的。)

    第二错误也是Linking阶段,当安装进度到84%的时候出现的,Oracle Universal Installer提示“Error in invoking target install of makefile $ORACLE_HOME/ctx/lib/ins_ctx.mk”出现错误。
    这个时候就不要选择忽略了,可以修复这个错误,打开$ORACLE_HOME/ctx/lib/env_ctx.mk文件进行如下编辑,将光标定位到第1365行,也就是“INSO_LINK =”这一行,然后把“$(LDLIBFLAG)dl”这句加入到“INSO_LINK=-L$(CTXLIB)$ (LDLIBFLAG)m”的后面,修改后成为这个样子:

 INSO_LINK = -L$(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)dl 
      $(LDLIBFLAG)sc_ca $(LDLIBFLAG)sc_fa $(LDLIBFLAG)sc_ex 
      $(LDLIBFLAG)sc_da $(LDLIBFLAG)sc_ut $(LDLIBFLAG)sc_ch 
      $(LDLIBFLAG)sc_fi $(LLIBCTXHX) $(LDLIBFLAG)c 
      -Wl,-rpath,$(CTXHOME)lib $(CORELIBS) $(COMPEOBJS) 

    然后保存$ORACLE_HOME/ctx/lib/env_ctx.mk文件,回到错误提示窗口,按“retry”按钮即可继续安装。 

    当数据库建立完毕,等安装程序将所有文件复制到系统之后,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安装。

    最后一步是修复一下刚才的那个错误,即Linking阶段安装到69%的时候出现的“/soft/oracle/network/lib/ins_oemagent.mk”这个错误。

    以Oracle用户执行如下命令:
     
       #cd $ORACLE_HOME/network/lib
       #make -f ins_net_client.mk install
 
    然后编辑$ORACLE_HOME/ctx/lib/ins_ctx.mk 文件的第13-14行,由: 
    
       ctxhx: $(CTXHXOBJ)
              $(LINK) $(CTXHXOBJ) $(INSO_LINK)
    改为:
      ctxhx: $(CTXHXOBJ)
             $(LINK) -ldl $(CTXHXOBJ) $(INSO_LINK)
 
    保存$ORACLE_HOME/ctx/lib/ins_ctx.mk文件。

    然后执行如下命令:

      #make -f $ORACLE_HOME/ctx/lib/ins_ctx.mk install

    将错误修复完成。

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

   :)

---------------------------------------------------------------------------------------------------

五、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© 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 © 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 9i监听程序,操作如下:
  说明:Oracle的监听程序主要是为客户端的连接提供接口的。

 

 [oracle@Linux oracle]$ lsnrctl 

   LSNRCTL for Linux: Version 9.2.0.1.0 - Production on 26-FEB-2004 16:10:17 
   Copyright © 1991, 2002, Oracle Corporation. All rights reserved. 
   Welcome to LSNRCTL, type "help" for information.
 
   LSNRCTL> start
   Starting /opt/oracle9i/product/9.2.0/bin/tnslsnr: please wait...

   TNSLSNR for Linux: Version 9.2.0.1.0 - Production
   System parameter file is /opt/oracle9i/product/9.2.0/network/admin/listener.ora
   Log messages written to /opt/oracle9i/product/9.2.0/network/log/listener.log
   Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
   Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Linux)(PORT=1521)))

   Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
   STATUS of the LISTENER
   ------------------------
   Alias              LISTENER
   Version            TNSLSNR for Linux: Version 9.2.0.1.0 - Production
   Start Date         26-FEB-2004 15:28:23
   Uptime             0 days 0 hr. 0 min. 0 sec
   Trace Level        off
   Security           OFF
   SNMP               OFF
   Listener Parameter File   /opt/oracle9i/product/9.2.0/network/admin/listener.ora

   Listener Log File         /opt/oracle9i/product/9.2.0/network/log/listener.log

   Listening Endpoints Summary...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Linux)(PORT=1521)))
   Services Summary...
   Service "ORCL.SOFT" has 1 instance(s).
   Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service...
   Service "PLSExtProc" has 1 instance(s).
   Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
   The command completed successfully
   LSNRCTL>
  ――――――――――――――――――――――――――――――


  关闭Oracle 9i监听程序,操作如下:
  ――――――――――――――――――――――――――――――
   [oracle@Linux oracle]$ lsnrctl 

    LSNRCTL for Linux: Version 9.2.0.1.0 - Production on 26-FEB-2004 16:15:28 
    Copyright © 1991, 2002, Oracle Corporation. All rights reserved. 
    Welcome to LSNRCTL, type "help" for information.

    LSNRCTL> stop
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
    The command completed successfully 
    LSNRCTL>
  ――――――――――――――――――――――――――――――


   启动Oracle Web Server,操作如下:
   ――――――――――――――――――――――――――――――
    [oracle@Linux oracle]$cd $Oracle_HOME/Apache/Apache/bin 
    [oracle@Linux oracle]$./startJServ.sh
    /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, 操作如下: 
   [oracle@Linux oracle]$cd $Oracle_HOME/Apache/Apache/bin 
    [oracle@Linux oracle]$./stopJServ.sh
     /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相关命令,如下:
   ――――――――――――――――――――――――――――――
   [oracle@Linux oracle]$oemapp dbastudio
   [oracle@Linux oracle]$oemapp console 
   [oracle@Linux oracle]$oemapp txtmgr
   [oracle@Linux oracle]$oemapp ocmcli
   [oracle@Linux oracle]$oemapp lmviewer
   [oracle@Linux oracle]$oemapp ocm
   [oracle@Linux oracle]$oemapp esmsrv
   [oracle@Linux oracle]$oemapp opm
   [oracle@Linux oracle]$oemapp cpta
   [oracle@Linux oracle]$oemapp esm
   [oracle@Linux oracle]$oemapp jdbctest
   [oracle@Linux oracle]$oemapp oemutil
   [oracle@Linux oracle]$oemapp topsess
   [oracle@Linux oracle]$oemapp dataguard
   [oracle@Linux oracle]$oemapp worksheet
   [oracle@Linux oracle]$oemapp cp
   [oracle@Linux oracle]$oemapp sdoadvisor
   [oracle@Linux oracle]$oemapp pm 

 


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

 

六、补充说明:

    在网上看这样一句话,我摘抄下来:“请住记,Oracle9.2并不被Red Hat 9所认证的,而且这个结合也不是产品和环境配置所认可的。但是,作为一个工作站,它是完全稳定并可用的。” 当然了,具体情况,还得看各位的具体应用如何了。

    写这个东东的所有的参考文章和参考数字及各种数据均来自互联网,我谨代表我个人对免费提供这些材料的作者表示由衷的感谢。当然,您也可以对我写的这个东东进行转贴,但是希望您能保留文章的完整。^_^

   由于水平有限,所写难免有错误或疏漏之处,说的不对的地方请您多多指正。表示感谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值