Linux AS3.0 下安裝Oracle9.2.0.4

tolywang發表於2009-02-05

 

第一部分: Red Hat Enterprise Advanced Server 3.0 安裝
一. 軟體準備
1、 Red Hat Enterprise Linux Advanced Server 3.0的四個安裝檔案。
2、 如果everything 安裝,那麼不用另外安裝其他的包,如果使用Server Assistant
CD來安裝系統 , 可能有些服務或應用沒有被安裝到Linux系統中,需要手動重新安裝,比如我們使用DELL 安裝引導CD8.3 安裝後telnet 沒有被安裝到服務中,需要安裝第三張CD中的telnet-server-0.17-26.i386.rpm包和第二張CD中的telnet-0.17-26.i386.rpm 。
# rpm –ivh telnet-server-0.17-26.i386.rpm
# rpm –ivh telnet-0.17-26.i386.rpm 如果缺其他包,可以使用類似方法。
3、 安裝時swap分割槽設定為記憶體的二倍。不要採用DHCP設定主機名和IP地址,而是“手工設定"。否則會在安裝oracle的時候出現如下錯誤: Thrown when the IP address of a host cannot be determined 出現這個錯誤將使Oracle不能安裝成功。安裝RHAS3,可以燒錄到光碟安裝,也可以從硬碟安裝,從硬碟安裝RHAS3, 請參考: . 注意: Server上兩塊網路卡設定同一個網段的ip地址可能需要調整才能使用 。
二.Linux安裝設定 1、系統要求:記憶體最低256(我們基本是2G或4G),建議大於512M,硬碟空間至少4G,如果Oracle安裝檔案存在硬碟,建議5G(在安裝作業系統後的剩餘空間)。 可以檢視記憶體的大小,用到的命令是:grep MemTotal /proc/meminfo swap分割槽在安裝作業系統的時候就設定好了,為記憶體的2倍,當記憶體達到1G以上時,和記憶體大小相同就可以了啊。 看交換分割槽命令是: /sbin/swapon -s
2.其他系統盤大小分配按照具體的server的磁碟大小定義。一般設定:
/ (root) 2048M
/boot 256M
swap 記憶體的兩倍,這裡我們設定 2047 M .
/usr 5120M , 如果安裝9i RAC,可能需要擴大一些 。
/home 2048M
/tmp 2048M
/u01 RAID1中的其他部分給/u01, 用於oracle軟體的安裝和部分資料檔案的

存放 .
3、檢查是否安裝以下包: [quote:864939f94a]#su - root #rpm -qa|grep 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 -qa|grep openmotif21 openmotif21-2.1.30-8.i386 #rpm -qa|grep setarch setarch-1.3-1.i386 #rpm -qa|grep tcl tcl-8.3.5-92.i386 [/quote:864939f94a] 上面顯示的內容是已經安裝了具體的RPM包之後的結果。它們對應的軟體包是:[quote:864939f94a] , 注意包的依賴關係及安裝順序 。 #rpm –ivh compat-db-4.0.14-5.i386.rpm #rpm –ivh compat-gcc-7.3-2.96.122.i386.rpm
#rpm –ivh compat-libstdc++-devel-7.3-2.96.122.i386.rpm #rpm –ivh compat-gcc-c++-7.3-2.96.122.i386.rpm #rpm –ivh compat-libstdc++-7.3-2.96.122.i386.rpm #rpm –ivh openmotif21-2.1.30-8.i386.rpm #rpm –ivh setarch-1.3-1.i386.rpm #rpm –ivh tcl-8.3.5-92.i386.rpm 一般情況下,你的系統上的輸出結果和這個不同。如果個別包沒有安裝,把系統安裝光碟mount上,找到具體的軟體包(大多數在第三張光碟上),然後利用如下的命令來安裝相應的包: # rpm -ivh compat.....rpm 當然也可以用命令來掛載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++
4、設定核心引數: 這個版本的預設的glibc 很合適,免去了不少麻煩。 用grep MemTotal /proc/meminfo檢視記憶體總量 出現 MemTotal XXXXXKB,其中的XXXXX就是記憶體總量。 修改兩個檔案,如下: #vi /etc/sysctl.conf 加入: kernel.shmmax = 1024000000 ,一般為實體記憶體的一半,切換到位元組。要是超過這個值,在運行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
修改後運行sysctl -p 命令使得核心改變立即生效。 #vi /etc/security/limits.conf 加入: oracle hard nofile 65536 oracle soft nofile 65536 oracle hard nproc 16384 oracle soft nproc 16384
第二部分: Linux AS3.0 上安裝Oracle9.2.0.4
1、建立使用者、設定環境變量

建立使用者的命令是以root使用者運行的。 #groupadd oper
#groupadd dba #useradd -g dba –G oper oracle #passwd oracle 設定環境變量: 以oracle使用者登入, $ vi $HOME/.bash_profile 插入下面的內容 # .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:.
BASH_ENV=$HOME/.bashrc
export BASH_ENV PATH
unset USERNAME
# Set Oracle Environment
ORACLE_HOME=/u01/product/oracle;export ORACLE_HOME
ORACLE_SID=tpc;export ORACLE_SID
ORACLE_OWNER=oracle;export ORACLE_OWNER
ORACLE_BASE=/u01/product;export ORACLE_BASE
ORACLE_TERM=vt100;export ORACLE_TERM
#NLS_LANG='traditional chinese_taiwan'.ZHT16BIG5;export NLS_LANG
LD_LIBRARY_PATH=$ORACLE_HOME/lib;export LD_LIBRARY_PATH
set -u
PS1=`hostname`'$';export PS1
EDITOR=/bin/vi; export EDITOR
JAVA_HOME=/usr/local/java;export JAVA_HOME
ORA_NLS33=/u01/product/oracle/ocommon/nls/admin/data;export ORA_NLS33
CLASSPATH=/u01/product/oracle/jdbc/lib/classesl11.zip:/usr/local/java;
export DISPLAY=127.0.0.1:0.0
export LD_ASSUME_KERNEL=2.4.1

PATH=$ORACLE_HOME/bin:$JAVA_HOME/bin:$PATH:.;export PATH
alias ll='ls -l';
alias ls='ls --color';
alias his='history';
#. /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
#rq=`date`
#echo "please enter your name:"
#read name
# echo "hello $name, now time is $rq, welcome to linux AS3.0 system, please EXIT the system when you left,thank you. PCEG-IT-SYS.DBA TEL: 21686 "
#echo "#"
echo "please choose a oracle sid: 1):tpc default:tpc"
read ans
case $ans in
1)
ORACLE_SID=tpc; export ORACLE_SID;;
*)
ORACLE_SID=tpc; export ORACLE_SID;;
Esac
然後登出重新登入,用set|more檢視環境變量是否生效。
#chown -R oracle.dba /u01 #chmod 755 /u01
這時ORACLE_BASE的值就是/u01/product 。
2、開始安裝 從 下載三個安裝檔案, ship_9204_linux_disk1.cpio.gz ship_9204_linux_disk2.cpio.gz ship_9204_linux_disk3.cpio.gz 用zcat ship_9204_linux_disk1.cpio.gz|cpio -idmv zcat ship_9204_linux_disk2.cpio.gz|cpio -idmv zcat ship_9204_linux_disk3.cpio.gz|cpio -idmv 生成三個資料夾Disk1,Disk2,Disk3; 你也可以用gunzip ship_9204_linux_disk1.cpio.gz

cpio -idmv 進入Disk1目錄運行runInstaller之前,注意兩點: a、安裝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 從 下載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
s: 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使用者所在的組“dba” ,點“Next”,如果你是第一次安裝Oracle產品,則要你運行一個sh檔案。檔案是/tmp/orainstRoot.sh,我們開啟一個shell視窗,切換到root使用者,如下: su root sh /tmp/orainstRoot.sh 運行完畢我們返回Oracle安裝介面,點“Continue”; 選擇檔案存放的目錄,我們選擇預設值。然後“Next”; 安裝的產品是“Oracle9i Database 9.2.0.4.0”,點“Next”; 一般使用custom 安裝,選取所需要的元件,安裝。
不需要建立資料庫 。
出現安裝元件的選擇結果,這時點“Install”,開始安裝,複製檔案,進度條在一點一點的增加,當安裝並link完後,出現配置工具介面,agent服務不能配置成功,忽略不用管,在下面修復。DBCA,NETCA,HTTP都正確配置完畢哦。呵呵。下面開始修復錯誤。其實要是把各個介面抓取下來就更好了。
7、安裝p3238244_9204_LINUX.zip補丁 此補丁也是從 下下載,同時要下載一個opatch軟體包:p2617419_220_GENERIC.zip,它主要是用來修復agent服務不能啟動的錯誤。 過程如下:
su - oracle $ cp p2617419_210_GENERIC.zip /tmp $ cd /tmp $ unzip p2617419_210_GENERIC.zip $ export PATH=$PATH:/tmp/OPatch $ export PATH=$PATH:/sbin # the patch needs "fuser" which is located in /sbin $ unzip p3238244_9204_LINUX.zip

$ cd 3238244 $ opatch apply 補丁修復完成,需要relinked一個.mk檔案。 $ cd $ORACLE_HOME/network/lib $ make -f ins_oemagent.mk install 現在在運行agentctl start,看是不是可以成功運行agent服務了啊,可以用stop、status來停止此服務或者檢查服務的狀態。 在這個成功之後,居然不能啟動Oracle,說是不能找到初始化檔案,沒辦法,我用dbca先刪除了原來安裝時建立的庫,再重新建立了資料庫。
第三部分: Oracle9.2.0.4 升級到Oracle9.2.0.5 (如果覺得沒有必要,這一步可以忽略)
升級前需要認真考慮是否需要升級,因為不同版本的資料庫做Standby可能存在問題 。
1. 檢查oracle使用者下的環境變量,ORACLE_HOME, ORACLE_SID等 。
2. 在 下載9205 patch set , 檔名稱:p3501955_9205_LINUX.zip 。
3. 解壓檔案 # gunzip p3501955_9205_LINUX.zip
4. cpio -idmv <9205_lnx32_release.cpio
5. 關閉存在的實例及監聽器,agent (如:agentctl stop) 及其它的process .
6. 使用Oracle Universal Installer Release 10.1.0.2安裝patch set,如果Oracle Universal Installer was installed with the base release of Oracle9i,那麼需要建立以下的連結(我們直接安裝oracle9204,需要有這個連結):
$ cd $ORACLE_BASE/oui/bin/linux
$ ln –s libclntsh.so.9.0 libclntsh.so ,
然後到 patchset 的解壓目錄查詢runInstaller , $ cd /u01/packages/Disk1/ 下,如果是安裝9205 cluster manager patch set , 那麼需要運行/u01/packages/Disk1/oracm/runInstaller .
7. 開始安裝: $./runInstaller 開始看到歡迎介面,顯示File Locations screen 。 注意檢視是否是Oracle Universal Installer Release 10.1.0.2,點選 about Oracle Universal Installer 就可以看到了。

8. 還有file location 的page第一項是安裝產品的全路徑: /u01/packages/Disk1/stage/products.xml , 第二個空格填入oracle主目錄的名稱( OUIHome ) , 第三個空格填入oracle主目錄的全路徑 : /u01/product/oracle (按照 .bash_profile 中設定的)。
9. Next,如果是Oracle Universal Installer was installed with the base release of Oracle9i ,那麼我們需要首先安裝Oralce9.2.0.5 元件中的Oracle Universal Installer 10.1.0.2 , 然後再安裝oracle9205 database 元件 。安裝過程沒有任何錯誤出現,如果有,一定是前面做的有問題 。
第四部分: 利用DBCA建立資料庫
建立資料庫的時候在最後安裝部分可能報一些錯,比如 ORA-29807 , 這是Oracle的bug , 可以忽略掉,安裝完成後,在$ORACLE_HOME/rdbms/admin目錄下執行utlrp.sql ,用於修補ORA-29807錯誤 。
解釋:
ORA-29807: specified operator does not exist This is a known issue (bug 2925665). You can click on the "Ignore" button to continue. Once DBCA has completed database creation, remember to run the 'prvtxml.plb' script. from $ORACLE_HOME/rdbms/admin independently, as the user SYS. It is also advised to run the 'utlrp.sql' script. to ensure that there are no invalid objects in the database at this time.
參考文章 :

 

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

相關文章