Installing Oracle 9iR2 on RHEL AS 3 Step-by-Step 作者: Fenng ------------------------------------- Installing Oracle 9iR2 on Red Hat Enterprise Linux Advanced Server 3 (RHEL 3) 全球最大的 Linux 廠商 Red Hat 公司 最近發布了Red Hat Enterprise Linux 3.該版本號稱有史以來最強大的開 源操作系統,也被視為是當前最為完整的 Linux 企業級解決方案.得到了包括 Oracle 在內的眾多重量級廠商的積極響 應, 很多產品在該平台上通過了認證.Oracle 9iR2自然也在此列. Oracle 9i+ RHEL3 會有什麼樣的效果?可能很多技 術人員都很感興趣.心動不如行動,不如馬上開始搭建自己的應用環 境,親身感受一下.
配置RedHat EL3 操作系統描述:Red Hat Enterprise Linux AS release 3 (Taroon) Kernel 2.4.21-4.EL on an i686 安裝操作系統之後,應該修改核心參數.執行如下參數: #echo "kernel.sem=\"250 32000 100 128\"" >> /etc/sysctl.conf #echo "kernel.shmmax=2147483648" >> /etc/sysctl.conf 第一條命令中的 250、32000、100、128 分別對應SEMMSL、SEMMNS、SEMOPM、SEMMNI這四個核心參數. 上面是典型的核心參數配置.您可能需要根據您的實際環境進行適當的變動. 關於這些核心參數的說明在Oracle的Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems 中有很詳細的說明.( http://download-west.oracle.com/docs/Html/A96167_01/toc.htm ) 然後,應該檢查一下上面的操作是否正確: # more /etc/sysctl.conf grep kernel.s kernel.sysrq = 0 kernel.shmmax=2147483648 kernel.sem="250 32000 100 128" #
檢查並安裝相關補丁 在這個版本的RHEL上安裝Oracle,必須要有幾個軟件包(參考 Metalink 上的 Oracle Note:252217.1) . 確認以下 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 #openmotif-2.2.2-16 即可 # rpm -qa grep setarch setarch-1.3-1 上面顯示的內容是在筆者已經安裝了具體的RPM包之後的結果.一般情況下,你的系統上的輸出結果和這個不同.如果個 別包沒有安裝,把系統安裝光盤mount上,找到具體的軟件包(大多數在第三張光盤上),然後利用如下的命令來安裝相應 的包: # rpm -ivh compat.....rpm 要額外注意的是,這些軟件包之間是有依賴性的,先後的順序要找好.否則會報告不能安裝的錯誤. 還需要將gcc、g++更換為2.96的版本. (參考 Metalink 上的 Oracle Note:252217.1 ) # 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/g++296 /usr/bin/g++ 如果報告找不到文件,請確認該軟件包是否安裝.
檢查環境變量 這個版本的默認的glibc 很合適.免去了不少麻煩. 登錄為oracle用戶 # su ? oracle $ cd $ vi .bash_profile #添加如下內容 #這個參數必須指定,否則Java安裝界面無法啟動 eXPort LD_ASSUME_KERNEL=2.4.1 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_HOME/prodUCt/9.2.0 export ORACLE_SID=DEMO export ORACLE_TERM=xterm 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_profile 使環境變量生效
對LD_ASSUME_KERNEL環境變量的說明: 這個參數實際上是為了避免Linux上的NPTL(Native POSIX Thread Library)和Oracle應用不兼容的問題. 設定 LD_ASSUME_KERNEL為2.4.1表示使用舊有的 "Linuxthreads with floating stacks" . (這裡有對 floating stacks的大體上的解釋. ) 從Metalink ( http://metalink.oracle.com/ 需要CSI )下載必須的補丁
需要的補丁: 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補丁所需要的. p3095277_9204_LINUX.zip大約有300多兆.如何快速下載Metalink上的補丁?請參考這個Link: http://www.ncn.cn/oracle/tips/oratip009.htm 後面的三個比較小.可以在 ITPub 下載: http://www.itpub.net/showthread.PHP?s=&threadid=171693&perpage=15&pagenumber=1 唉,又是補丁,安裝可算是比較費周折的了,不知道Oracle的工程師是不是每次安裝也會感到麻煩.
開始安裝9.2.0 運行runInstaller之前,需要打補丁3006854: 注意,必須以root身份運行. # unzip p3006854_9204_LINUX.zip 會在當前目錄下創建一個目錄,進入到該目錄中 # cd 3006854 # ./rhel3_pre_install.sh 如果報告如下錯誤: -bash: ./rhel3_pre_install.sh: Permission denied 修改一下權限就可以了 # chmod +x *.sh 然後就可以運行runInstaller安裝. 操作過程不再贅述. 但是relink 階段,會報告兩個錯誤:ins_oemagent.mk 和 ins_ctx.mk. 點 Ignore 忽略.要升級到9.2.0.4的版本才 可以修復這兩個Bug.
升級到9.2.0.4.0 安裝結束後,需要停掉Oracle的所有相關程序. 最好命令都執行完之後再用 ipcs 命令確認一下.然後就可以開始打補丁 升級了.
解包: $ unzip p3095277_9204_LINUX.zip $ cpio -icvd < 9204_lnx32_release.cpio 現在可以再次運行runInstaller,在OUI的界面中找到Patch的Stage文件,然後即可以進行升級. 注意: 首先要升級oui,否則不讓升級到9.2.0.4.而且,升級完oui以後,要退出oui然後再重新運行oui, 再升級到9.2.0.4.不退出 繼續升級會報告錯誤.升級過程中,仍然會出現ins_oemagent.mk錯誤,點 Ignore 忽略.我們將在下一個步驟中修復該 錯誤.
再次打補丁 升級過後,需要打補丁修復ins_oemagent.mk錯誤.
首先安裝 opatch. $ unzip p2617419_210_GENERIC.zip $ pwd /u01/install $ export PATH=$PATH:/u/install/3119415:/sbin
注意: 修改PATH時,除了要包括解壓出來的OPatch目錄外,還要包括/sbin目錄,這樣才可以找到 fuser命令.而fuser命令也是 該補丁過程所需要的. $ unzip p3119415_9204_LINUX.zip Archive: p3119415_9204_LINUX.zip creating: 3119415/ ...... inflating: 3119415/README.txt $ cd 3119415 $ opatch apply
運行dbca的問題. $ dbca 會正常出現圖形界面,然後可以選擇創建數據庫,但是最後一步莫名其妙的界面消失.在命令行出現如下錯誤: /oracle/product/9.2.0.1/bin/dbca: line 124: 27348 Killed $JRE_DIR/bin/jre -DORACLE_HOME= $OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASSPATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
要解決這個問題: $vi $ORACLE_HOME/bin/dbca #將下面列出的除第3 行外的其余行注釋掉. #if [ -f /etc/rac_on ]; then #Run DBCA $JRE_DIR/bin/jre ?native ?DORACLE_HOME=$OH…… #else #Run DBCA #$JRE_DIR/bin/jre ?DORACLE_HOME=$OH…… #fi
參考信息 Werner Puschitz 的 Installing Oracle9i on Red Hat Linux Pondka的 在RedHat EL AS 3上安裝Oracle9.2.0 Linux: Native POSIX Threading Library (NPTL) / ( http://people.redhat.com/drepper/nptl-design.pdf ) Google 新聞組上對 dbca 那個錯誤的解決辦法 Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems --------------------------------