兩小時搞定RHAS 3.0上的Oracle 9i的安裝
2024-08-29 13:35:31
供稿:網友
 
             
  參考文檔:http://www.puschitz.com/InstallingOracle9i.sHtml 
另外還參考了一篇csdn上的安裝文檔,在此一并表示感謝! 
聲明:本文可任意轉載,但請保留上述信息 
                                                                                            ========================================================================== 
Oracle是世界上使用最廣泛的數據庫,它可以運行在各種計算機上;也是當前最優秀的關系型數據庫。以前,一至無緣接觸。這兩天,正好有空。就在自己的計算機上裝了一遍,領略了一番她的魅力! 
一、預備工作 
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補丁所需要的.[/quote:db788a2c24] 
這幾個補丁文件都可以在Google上搜索到,其中p3095277_9204_LINUX.zip這個補丁有300多M,我在網上搜到了一個國內的下載站,速度有30多K/秒。另外三個,在itpub有人打包上傳了。http://www.itpub.net/showthread.php?s=&threadid=171693&perpage=15&pagenumber=1 
3.修改內核參數 
[quote:db788a2c24]#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.檢查設置 
[quote:db788a2c24]# more /etc/sysctl.conf  grep kernel.s 
kernel.sysrq = 0 
kernel.shmmax=2147483648 
kernel.sem="250 32000 100 128"[/quote:db788a2c24] 
5.檢查安裝所需的rpm包是否齊全,確認以下rpm包都已經安裝(假如你安裝時選擇了軟件開發,那么基本上下面所列的包都已經安裝了,假如沒有安裝,大部分在第三張光盤上,安裝時注重一下順序) 
[quote:db788a2c24] # 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的版本。 
                         [quote:db788a2c24]# 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 #讓配置文件生效[/quote:db788a2c24] 
8.設置swap和臨時文件夾 
oracle對內存和swap要求比較高,Oracle 建議 Oracle 9i 服務器至少需要 512M 內存,兩倍內存或不少于 400M 的交換 (swap) 空間。假如你沒有足夠的交換空間或內存,在數據庫創建過程中,你的 Oracle 服務器將變得非常遲鈍。 我的內存只有256M,512M的swap。在此,我新增了1000M的swap。 
[quote:db788a2c24]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 目錄。 
[quote:db788a2c24]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.解包 
[quote:db788a2c24]cpio -idmv < lnx_920_disk1.cpio 
cpio -idmv < lnx_920_disk2.cpio 
cpio -idmv < lnx_920_disk3.cpio[/quote:db788a2c24] 
會生成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[/quote:db788a2c24] 
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] 
這個地方有一個問題需