RHAS 3.0上的Oracle 9i的安裝
2024-08-29 13:29:46
供稿:網友
 
rhas 3.0上的oracle 9i的安裝
原文來自 :好好先生 llmmysun 修改后發布
參考文檔:http://www.puschitz.com/installingoracle9i.shtml 
另外還參考了一篇csdn上的安裝文檔,在此一并表示感謝! 
聲明:本文可任意轉載,但請保留上述信息 
    oracle是世界上使用最廣泛的數據庫,它可以運行在各種計算機上;也是當前最優秀的關系型數據庫。以前,一至無緣接觸。這兩天,正好有空。就在自己的計算機上裝了一遍,領略了一番她的魅力!
    一、準備工作 
     rpm -aq |grep compat*
--以下的包是必須安裝的
gcc 
cpp 
glibc-devel 
compat-libstdc++ 
glibc-kernheaders 
binutils 
--檢查這些包是否已經安裝
rpm -q gcc cpp compat-libstdc++ glibc-devel glibc-kernheaders binutils 
     1.下載oracle 9i for linux的源碼包(一共有三個cpio.gz的文件:lnx_920_disk1.cpio.gz,lnx_920_disk2.cpio.gz,lnx_920_disk3.cpio.gz) 
     2.下載補丁。至少需要四個補丁文件: 
    [quote:db788a2c24]p3095277_9204_linux.zip 9.2.0.4.0的升級補丁包. 
      p3006854_9204_linux.zip 在運行 runinstaller 之前打.   --保證正常啟動圖形界面
      p3119415_9204_linux.zip 在升級到9.2.0.4.0之后打.    
      p2617419_210_generic.zip 打3119415補丁所需要的.    --oracle opatch 工具,是一個perl程序
      這幾個補丁文件都可以在google上搜索到,其中p3095277_9204_linux.zip這個補丁有300多m,我在網上搜到了一個國內的下載站,速度有30多k/秒。另外三個,在itpub有人打包上傳了。http://www.itpub.net/showthread.php?s=&threadid=171693&perpage=15&pagenumber=1 
                                                                                 
     3.修改內核參數 
    echo "kernel.sem="250 32000 100 128"" >> /etc/sysctl.conf 
      #echo "kernel.shmmax=2147483648" >> /etc/sysctl.conf[/quote:db788a2c24]  
                                                                                                                
     第一條命令中的 250、32000、100、128 分別對應semmsl、semmns、semopm、semmni這四個核心參數。 
     上面是典型的核心參數配置.您可能需要根據您的實際環境進行適當的變動. 
     4.檢查設置 
    more /etc/sysctl.conf | grep kernel.s 
        kernel.sysrq = 0 
        kernel.shmmax=2147483648 
        kernel.sem="250 32000 100 128"[/quote:db788a2c24] 
     5.檢查安裝所需的rpm包是否齊全,確認以下rpm包都已經安裝(如果你安裝時選擇了軟件開發,那么基本上下面所列的包都已經安裝了,如果沒有安裝,大部分在第三張光盤上,安裝時注意一下順序) 
   rpm -qa | grep compat 
        compat-gcc-7.3-2.96.122 
        compat-libstdc++-devel-7.3-2.96.122 
        compat-gcc-c++-7.3-2.96.122 
        compat-libstdc++-7.3-2.96.122 
        compat-glibc-7.x-2.2.4.32.5 
        compat-db-4.0.14-5 
                                                                                                                   # rpm -qa | grep openmotif 
        openmotif-2.2.2-16 
        openmotif-devel-2.2.2-16 
                                                                                                                  # rpm -qa | grep setarch 
        setarch-1.3-1[/quote:db788a2c24] 
                                                                                                             
     6.把gcc,g++更換為2.96的版本。 
 mv /usr/bin/gcc /usr/bin/gcc323 
# ln -s /usr/bin/gcc296 /usr/bin/gcc  
# mv   /usr/bin/g++ /usr/bin/g++323    
# ln -s /usr/bin/gcc296 /usr/bin/gcc 
[/quote:db788a2c24] 
                                                                                                                
     7.設置用戶及環境變量、安裝目標路徑 
     a.增加用戶和組 
       [quote:db788a2c24]groupadd dba          # 創建數據庫管理員組 
       groupadd oinstall     # 創建oracle文件的所有組 
       useradd -c "oracle software owner" -g oinstall -g dba oracle #創建oracle用戶 
       passwd oracle         #設置oracle用戶的密碼[/quote:db788a2c24] 
     b.創建安裝目標路徑 
       [quote:db788a2c24]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[/quote:db788a2c24] 
     c.設置環境變量 
      [quote:db788a2c24]su  - oracle 
      vi .bash_profile加入下面的內容 
      export ld_assume_kernel=2.4.1 #這個參數必須指定,否則java安裝界面無法啟動,這個參數實際上是為了避免linux上的nptl(native posix thread library)和oracle應用不兼容的問題. 
     # oracle environment 
     export oracle_base=/opt/oracle 
     export oracle_home=/opt/oracle/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                                                                                                                 
    然后執行 
    $ source .bash_profe #讓配置文件生效
                                                                                                                
    8.設置swap和臨時文件夾 
     oracle對內存和swap要求比較高,oracle 建議 oracle 9i  服務器至少需要 512m 內存,兩倍內存或不少于 400m 的交換 (swap) 空間。如果你沒有足夠的交換空間或內存,在數據庫創建過程中,你的 oracle 服務器將變得非常遲鈍。 我的內存只有256m,512m的swap。在此,我新增了1000m的swap。 
    su – root 
    dd if=/dev/zero of=tmpswap bs=100m count=10 
    chmod 600 tmpswap 
    mkswap tmpswap 
    swapon tmpswap[/quote:db788a2c24] 
                                                                                                                
    另外,oracle的安裝至少需要400m的/tmp臨時空間。如果你/tmp下的空間不夠,可以可以臨時在另一個文件系統中建立一個/tmp 目錄。 
                                                                                                                
   su – root 
   mkdir //tmp 
   chown root.root //tmp 
   chmod 1777 //tmp 
   export temp=/ # used by oracle 
   export tmpdir=/ # used by linux programs[/quote:db788a2c24] 
  當安裝完 oracle 之后,關閉 oracle 并刪除臨時目錄: 
  [quote:db788a2c24]su – root 
  rmdir //tmp 
  unset temp 
  unset tmpdir[/quote:db788a2c24] 
                                                                                                                
   oracle 磁盤空間 (sizing oracle disk space) 
  僅安裝數據庫軟件,大約需要2.5g 的磁盤空間。如果執行一個標準的數據庫安裝而不是自定義安裝,則大約需要3.5g空間。 
                                                                                                                
   9.解包安裝文件。 
    把下載的文件拷貝到/tmp中。最好以root身份來解壓,否則可能會報錯。 
    a.解壓 
    gunzip lnx_920_disk1.cpio.gz lnx_920_disk2.cpio.gz lnx_920_disk3.cpio.gz linux9i_disk3.cpio.gz 
    b.解包 
   cpio -idmv < lnx_920_disk1.cpio 
   cpio -idmv < lnx_920_disk2.cpio 
   cpio -idmv < lnx_920_disk3.cpio
    會生成disk1,disk2,disk3三個文件夾, 好了,準備工作告一段落。萬事俱備,只久安裝了! 
   二、安裝 
    1.打第一個補丁。 
    運行runinstaller之前,需要打補丁3006854: 注意,必須以root身份運行. 
                                                                                                                
   [quote:db788a2c24]# unzip p3006854_9204_linux.zip[/quote:db788a2c24] 
   會在當前目錄下創建一個目錄,進入到該目錄中 
   [quote:db788a2c24] # cd 3006854 
    #chmod +x *.sh 
    # ./rhel3_pre_install.sh
    2.以root身份執行xhost + 
     如果以oracle身份執行,會出現提示不能連接到display 0.0之類的錯誤。 
    3.運行runinstall(激動人心的時刻到了!) 
     su - oracle 
     /tmp/disk1/runinstaller (有文章說不要進入到disk1的文件夾中再執行./runinstaller,否則會找不到其它的盤。我沒有實驗那樣是否不行。) 
      根據提示往下面安裝,中間會提示你,有一個地方要組名,輸入oinstall, 
     另一個地方添數據庫名和sid,請均填入orcl。 還會提示你用root身份執行一個腳本,按ctrl+shift+n新開一個終端窗口, 然后執行/tmp/的一個.sh文件。 
     另外,relink 階段,會報告兩個錯誤:ins_oemagent.mk 和 ins_ctx.mk. 點 ignore忽略,安裝后升級到9.2.0.4的版本來消除這個bug. 
    4.升級 
   解包: 
   unzip p3095277_9204_linux.zip 
   cpio -icvd < 9204_lnx32_release.cpio 這個地方最好還以root身份解包,否則可能還會提示你權限不夠。                                                                                                                 
   現在可以再次運行runinstaller,要先升級oui(最后一個選項)否則不讓升級到9.2.0.4.而且,升級完oui以后,要退出oui然后再重新運行oui, 再升級到9.2.0.4.不退出繼續升級會報告錯誤.升級過程中,仍然會出現ins_oemagent.mk錯誤,點 ignore 忽略(可以通過下面的補丁解決)。然后還會提示你用root身份來執行一個/opt中的一個腳本,你同樣開一個終端,用root身份來執行就可以了。 
   5.打補丁 
   [quote:db788a2c24]su - oracle 
$ unzip p3119415_9204_linux.zip 
$ cd 3119415 
$ export path=$path:/tmp/opatch 
$ export path=$path:/sbin        # the patch needs "fuser" which is located in /sbin 
$ which opatch 
/tmp/opatch/opatch 
$ opatch apply 
[/quote:db788a2c24] 
   這個地方有一個問題需要注意,直接用oracle身份解壓可能提示權限不夠,用root身份解壓,然后用oracle身份來執行還會提示你權限不夠,你用root解壓然后執行chmod 777 3119415,然后su - oracle;/tmp/opatch/opatch apply就ok了。 
   好了,大功告成了!  運行dbca命令來創建數據庫,還有文檔上說這個時候可能會出錯,要修改dbca文件來解決,我沒有遇到這個問題,如果你遇到了可以上google上找相關文檔,來解決這個問題。 
   三、清掃戰場及實驗 
     1.刪除臨時文件(這些臨時文件將近3g,不用我再說刪除的意義了吧?) 
       [quote:db788a2c24]cd /tmp 
       rm -rf *[/quote:db788a2c24] 
    2.改回gcc,g++的版本,否則在以后編譯安裝其他軟件時可能會有問題 
      [quote:db788a2c24]# mv /usr/bin/gcc323 /usr/bin/gcc 
      # mv /usr/bin/g++323 /usr/bin/g++[/quote:db788a2c24] 
    3.連接一下數據庫,檢查一下自己的勞動成果吧! 
      [quote:db788a2c24]su - oracle 
      oracle$ sqlplus /nolog 
      sql> connect / as sysdba 
      sql> startup   
附:
sqlplus  /nolog
connect  /  as sysdba
startup nomount
1.
create database ivps
maxinstances 1
maxloghistory 1
maxlogfiles 7
maxlogmembers 3
maxdatafiles 100
datafile '/home/oracle/oradata/ivps/system01.dbf' size 500m reuse autoextend on next  10240k maxsize unlimited
extent management local
default temporary tablespace temp tempfile '/home/oracle/oradata/ivps/temp01.dbf' size 512m reuse autoextend on next  640k maxsize unlimited
undo tablespace "undotbs" datafile '/home/oracle/oradata/ivps/undotbs01.dbf' size 1024m reuse autoextend on next  5120k maxsize unlimited
character set zhs16gbk
national character set al16utf16
logfile group 1 ('/home/oracle/oradata/ivps/redo01.log') size 20480k,
group 2 ('/home/oracle/oradata/ivps/redo02.log') size 20480k,
group 3 ('/home/oracle/oradata/ivps/redo03.log') size 20480k,
group 4 ('/home/oracle/oradata/ivps/redo04.log') size 20480k,
group 5 ('/home/oracle/oradata/ivps/redo05.log') size 20480k,
group 6 ('/home/oracle/oradata/ivps/redo06.log') size 20480k;
2.
create tablespace "indx" logging datafile '/home/oracle/oradata/ivps/indx01.dbf' size 1024m reuse autoextend on next  1280k maxsize unlimited extent management local segment space management  auto ;
create tablespace "users" logging datafile '/home/oracle/oradata/ivps/users01.dbf' size 250m reuse autoextend on next  1280k maxsize unlimited extent management local segment space management  auto ;
create tablespace "tools" logging datafile '/home/oracle/oradata/ivps/tools01.dbf' size 50m reuse autoextend on next  320k maxsize unlimited extent management local segment space management  auto ;
3.
connect sys/change_on_install as sysdba
@/home/oracle/product/92/rdbms/admin/catalog.sql;
@/home/oracle/product/92/rdbms/admin/catproc.sql;
connect system/manager
@/home/oracle/product/92/sqlplus/admin/pupbld.sql;