如何可以在RHAS3上成功安裝Oracle9204
2024-08-29 13:36:45
供稿:網友
 
             
  1、下載軟件
  從網上下載redhat EnterPRise linux Advanced Server3的四個安裝文件,安裝時swap分區設置為內存的二倍。不要采用DHCP設置主機名和ip地址,而是“手工設置”。否則會在安裝Oracle的時候出現如下錯誤:
                                                                                              Thrown when the IP address of a host cannot be determined
  出現這個錯誤將使Oracle不能安裝成功。安裝RHAS3,可以刻錄到光盤安裝,也可以從硬盤安裝,從硬盤安裝RHAS3,請參考:[url]http://bbs.chinaunix.net/forum/viewtopic.php?p=2416942#2416942[/url]
  
  2、系統要求
  系統要求:內存最低256(我的就是這么大),建議512M,硬盤空間4G,假如Oracle安裝文件存在硬盤,建議5G(在安裝操作系統后的剩余空間)。
  可以查看內存的大小,用到的命令是:grep MemTotal /proc/meminfo
  swap分區在安裝操作系統的時候就設定好了,為內存的2倍,當內存達到1G以上時,和內存大小相同就可以了啊。相看交換分區命令是:/sbin/swapon -s
  
  3、檢查是否安裝以下包:
  #su - root
  #rpm -qagrep compat
  compat-db-4.0.14-5.i386
  compat-gcc-7.3-2.96.122.i386
  compat-gcc-c++-7.3-2.96.122.i386
  compat-libstdc++-7.3-2.96.122.i386
  compat-libstdc++-devel-7.3-2.96.122.i386
  #rpm -qagrep openmotif21
  openmotif21-2.1.30-8.i386
  #rpm -qagrep setarch
  setarch-1.3-1.i386
  #rpm -qagrep tcl
  tcl-8.3.5-92.i386
  
  上面顯示的內容是在筆者已經安裝了具體的RPM包之后的結果。它們對應的軟件包是:
  compat-db-4.0.14-5.i386.rpm
  compat-gcc-7.3-2.96.122.i386.rpm
  compat-gcc-c++-7.3-2.96.122.i386.rpm
  compat-libstdc++-7.3-2.96.122.i386.rpm
  compat-libstdc++-devel-7.3-2.96.122.i386.rpm
  openmotif21-2.1.30-8.i386.rpm
  setarch-1.3-1.i386.rpm
  tcl-8.3.5-92.i386.rpm
  
  一般情況下,你的系統上的輸出結果和這個不同。假如個別包沒有安裝,把系統安裝光盤mount上,找到具體的軟件包(大多數在第三張光盤上),然后利用如下的命令來安裝相應的包:
  # rpm -ivh compat.....rpm
  因為我沒有把RHAS3刻錄到光盤,所以我用下面的命令來掛載iso文件
  mount -o loop /mnt/e/rhas3/rhel-3-i386-as-disc3.iso /mnt/cdrom
  要額外注重的是,這些軟件包之間是有依靠性的,先后的順序要找好。否則會報告不能安裝的錯誤。在安裝軟件包的時候,假如出現軟件包的依靠性,就先安裝有有依靠的包。我相信大家會看明白軟件包之間的依靠性的。
  還需要將gcc、g++更換為2.96的版本.
  方法如下:
  #su - root
  mv /usr/bin/gcc /usr/bin/gcc323
  ln -s /usr/bin/gcc296 /usr/bin/gcc
  mv /usr/bin/g++ /usr/bin/g++323   # if g++ doesn't exist, then gcc-c++ was not installed(這里是注釋哦)
  ln -s /usr/bin/g++296 /usr/bin/g++
  
  
  3、設置內核參數:
  這個版本的默認的glibc 很合適,免去了不少麻煩。
  用grep MemTotal /proc/meminfo查看內存總量
  出現 MemTotal XXXXXKB,其中的XXXXX就是內存總量。
                         
  修改兩個文件,如下:
  
  #vi /etc/sysctl.conf
  加入:
  kernel.shmmax = xxxxx*1024*2(為內存的2倍,切換到字節。要是超過這個值,在運行dbca時會出現Ora-27123:Unable to attach to shared memeroy segment)
  kernel.shmmni=4096
  kernel.shmall=2097152
  kernel.sem=250 32000 100 128
  fs.file-max=65536
  net.ipv4.ip_local_port_range=1024 65000
  #vi /etc/security/limits.conf
  加入:
  oracle hard nofile 65536
  oracle soft nofile 65536
  oracle hard nproc 16384
  oracle soft nproc 16384
  
  4、建立用戶、設置環境變量
  建立用戶的命令是以root用戶運行的。
  #groupadd oinstall
  #groupadd dba
  #useradd -g oinstall -G dba oracle
  #passwd oracle
  
  設置環境變量:
  以oracle用戶登錄,
  vi $HOME/.bash_profile
  插入下面的內容
  # Set the LD_ASSUME_KERNEL environment variable only for Red Hat 9 and
  # for Red Hat Enterprise Linux Advanced Server 3 (RHEL AS 3) !!
  # Use the "Linuxthreads with floating stacks" implementation instead of NPTL:
  eXPort LD_ASSUME_KERNEL=2.4.1
  
  # Oracle Environment
  export ORACLE_BASE=/home/oracle
  export ORACLE_HOME=$ORACLE_BASE/prodUCt/9.2.0
  export ORACLE_SID=test
  export ORACLE_TERM=xterm
  # export TNS_ADMIN= Set if sqlnet.ora, tnsnames.ora, etc. are not in $ORACLE_HOME/network/admin
  export NLS_LANG=AMERICAN;
  export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
  LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
  export LD_LIBRARY_PATH
  
  # Set shell search paths
  export PATH=$PATH:$ORACLE_HOME/bin
  
  然后注銷重新登錄,用setmore查看環境變量是否生效。因為我把Oracle安裝在了oracle用戶主目錄下,所以我的ORACLE_BASE值為/home/oracle,當然你也可以安裝到指定的目錄,如下:
  #su - root
  #mkdir /opt/oracle
  #mkdir /opt/oracle/product
  #mkdir /opt/oracle/product/9.2.0
  #chown -R oracle.oinstall /opt/oracle
  
  #mkdir /var/opt/oracle
  #chown oracle.dba /var/opt/oracle
  #chmod 755 /var/opt/oracle
  
  這時ORACLE_BASE的值就是/opt/oracle。
  
  5、開始安裝
  從[url]http://www.oracle.com[/url]下載三個安裝文件,
  ship_9204_linux_disk1.cpio.gz
  ship_9204_linux_disk2.cpio.gz
  ship_9204_linux_disk3.cpio.gz
  用zcat ship_9204_linux_disk1.cpio.gzcpio -idmv
  zcat ship_9204_linux_disk2.cpio.gzcpio -idmv
  zcat ship_9204_linux_disk3.cpio.gzcpio -idmv
  生成三個文件夾Disk1,Disk2,Disk3;
  你也可以用gunzip ship_9204_linux_disk1.cpio.gz
  cpio -idmv   這樣的命令來生成三個目錄,可以用下面的命令刻錄到光盤,也可以保存在硬盤。
  mkisofs -r Disk1  cdrecord -v --eject dev=0,0,0 speed=15 -
  mkisofs -r Disk2  cdrecord -v --eject dev=0,0,0 speed=15 -
  mkisofs -r Disk3  cdrecord -v --eject dev=0,0,0 speed=15 -
  
  進入Disk1目錄運行runInstaller之前,注重兩點:
  a、export LANG=en_us(否則安裝界面出來就會出現“□”,因為Oracle9i不支持中文界面。
                         )
  b、安裝p3006854_9204_LINUX.zip補丁,否則會出現如下錯誤:
  Error occurred during initialization of VM
  Unable to load native library: /tmp/OraInstall2003-10-25_03-14-57PM/jre/lib/i386/libjava.so:
  symbol __libc_wait, version GLIBC_2.0 not defined in file libc.so.6 with link time reference
  
  從[url]http://metalink.oracle.com[/url]下載p3006854_9204_LINUX.zip補丁。安裝此補丁的方法:
  su - root
  # unzip p3006854_9204_LINUX.zip
  Archive: p3006854_9204_LINUX.zip
  creating: 3006854/
  inflating: 3006854/rhel3_pre_install.sh
  inflating: 3006854/README.txt
  
  # cd 3006854
  # sh rhel3_pre_install.sh
  Applying patch...
  Patch successfully applied
  #
  注重:假如運行 rhel3_pre_install.sh出現下面的錯誤
  rhel3_pre_install.sh: line 36: gcc: command not found
  是因為你忘了安裝gcc,同樣要是出現下面的錯誤:
  # ls
  ls: error while loading shared libraries: /etc/libcwait.so: cannot open shared object file: No such file or Directory
  # rm /etc/ld.so.preload
  rm: error while loading shared libraries: /etc/libcwait.so: cannot open shared object file: No such file or directory
  #
  請不要退出bash,用下面的方法來修復(我開始碰到,后來沒有碰到了,可能是因為我把gcc降級到了296吧)
  # echo "" > /etc/ld.so.preload
  rm /etc/ld.so.preload
  And start over again.
  
  現在運行./runInstaller &(必須進入到Disk1目錄,或者從光盤運行,從光盤安裝不要進入/mnt/cdrom后運行runInstaller,而是這樣運行./mnt/cdrom/runInstaller)
  呵呵,興奮了吧,期待以久的GUI界面終于出來了啊。這是歡迎界面。顯示了Oracle安裝的源文件所在目錄,還有要安裝到的產品目錄。我們點“Next”;
  接著出現的下一個界面是Inventory路徑,我們點“Next”;
  現在要求用戶輸入UNIX組名,我們用Oracle用戶所在的組“oinstall”,然后點“Next”,假如你是第一次安裝Oracle產品,則要你運行一個sh文件。文件是/tmp/orainstRoot.sh,我們打開一個shell窗口,切換到root用