RHEL3-U4-i386-AS_Oracle9.2.0.4

why566發表於2008-11-17

Red Hat Linux AS3 下安裝 ORACLE9.2.0.4

--------------------------------------------------------------------------------
Installing Oracle 9iR2 on Red Hat Enterprise Linux Advanced Server 3 (RHEL 3)

Red Hat Enterprise Linux AS release 3 (Taroon) Kernel 2.4.21-4.EL on an i686

--確認以下rpm包都已經安裝:

# rpm -qa | grep compat
compat-db-4.0.14-5
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


# rpm -qa | grep openmotif
openmotif-2.2.2-16 //有這一項輸出即可
openmotif-devel-2.2.2-16

# rpm -qa | grep setarch
setarch-1.3-1

su - root
# mv /usr/bin/gcc   /usr/bin/gcc323  --如果沒有gcc這個檔案,請不要執行此命令
# mv /usr/bin/g++296   /usr/bin/g++  --如果沒有gcc這個檔案,請不要執行此命令
# ln –s /usr/bin/gcc296 /usr/bin/gcc 
# ln –s /usr/bin/g++296 /usr/bin/g++

--修改 /etc/sysctl.conf 這個檔案,加入以下的語句:

kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
執行/sbin/sysctl -p使修改生效

--編輯etc/security/limits.conf:

oracle hard nofile 65536
oracle soft nofile 65536
oracle hard nproc 16384
oracle soft nproc 16384

檢查環境變數
這個版本的預設的glibc 很合適,免去了不少麻煩。

--建立oracle使用者組和檔案目錄

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle 或 usermod -g oinstall -G dba oracle //已經存在的話
passwd oracle

mkdir -p /oracle/app/oracle
mkdir -p /oradata
chown -R oracle:oinstall /oracle/app/oracle /oradata
chmod -R 775 /oracle/app/oracle /oradata

--登入為oracle使用者:

# su - oracle
$ cd
$ vi .bash_profile

#新增如下內容

#這個引數必須指定,否則Java安裝介面無法啟動

export LD_ASSUME_KERNEL=2.4.1
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORACLE_SID=ora9i
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
export PATH=$PATH:$ORACLE_HOME/bin
export THREADS_FLAG=native   
然後執行

$ source .bash_profile
使環境變數生效

對LD_ASSUME_KERNEL環境變數的說明:

這個引數實際上是為了避免Linux上的 NPTL (Native POSIX Thread Library) 和Oracle應用不相容的問題. 設定 LD_ASSUME_KERNEL為2.4.1表示使用舊有的 "Linuxthreads with floating stacks" .
從Metalink (
需要CSI )下載必須的補丁。

需要的補丁:
直接安裝oracle9204
p3006854_9204_LINUX.zip 安裝前就要打好的補丁(AS4 這個版本以經打完了)
p2617419_210_GENERIC.zip 安裝後要打的(這只是一個伴隨補丁,只要設定它的環境變數)
p3238244_9204_LINUX.zip 安裝後要打的9204的補丁,解決Agent問題.

--先解壓壓縮檔案

gunzip ship_9204_linux_disk1.cpio.gz
gunzip ship_9204_linux_disk2.cpio.gz
gunzip ship_9204_linux_disk3.cpio.gz

cpio -idmv cpio -idmv cpio -idmv

--執行(僅安裝軟體,稍後建立庫):
export DISPLAY=:0.0
# source .bash_profile
# ./runInstaller
--打補丁
oracle使用者:
# unzip p2617419_210_GENERIC.zip
cd /home/oracle/Opatch
export PATH=$PATH:/home/oracle/OPatch:/sbin

root使用者:
# unzip p3238244_9204_LINUX.zip
# cd 3238244
# export ORACLE_BASE=/oracle/app/oracle
# export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
# opatch apply 或 opatch apply -no_inventory
$ su - oracle
$ find $ORACLE_HOME -name "*.mk" | xargs grep -l dbsnmp
/opt/oracle/product/9.2/network/lib/ins_oemagent.mk
/opt/oracle/product/9.2/network/lib/env_oemagent.mk
$ cd $ORACLE_HOME/network/lib
$ make -f ins_oemagent.mk install
$ agentctl start

------------------------------------------------------------------------------------------------------------------------
如果開始安裝的是oracle9201
p3006854_9204_LINUX.zip 在執行 runInstaller 之前打,(AS4 這個版本以經打完了)
p3095277_9204_LINUX.zip 9.2.0.4.0的升級補丁包.
p2617419_210_GENERIC.zip 打3119415補丁所需要的補丁.
p3119415_9204_LINUX.zip 在升級到9.2.0.4.0之後打.解決Agent問題

執行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 -idmv < 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:/u01/install/OPatch:/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
此外,有的系統上由於locale的問題,可能會出現亂碼,出現這種情況,請進行類似如下的操作:

$ locale
LANG=en_US.UTF-8
LC_CTYPE=zh_CN.GB18030 //類似輸出會導致問題
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
$ export LC_CTYPE=en_US.UTF-8

$ locale
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 //調整為UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
--------------------------------------------------------------------------------------------------------------------------

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7478833/viewspace-496111/,如需轉載,請註明出處,否則將追究法律責任。