Oracle 9i R2 on Linux 9.0

Installing Oracle 9i on Redhat 9.0 – Stanley::Thunder Zone::


S

S

tanley’s Website

tanley’s Website


Oracle 9i R2 on Linux 9.0

本頁(2003/07/12 v0.1)參考由 Guru Labs 所提供的文件 Installing
Oracle 9i R2 on Linux
以及 dbaclick.com
提供的 Installing
Oracle 9i R2 (9.2.0.1.0) on Red Hat 9

所製作比較詳細的個人心得,若您看英文沒障礙及安裝版本和上列網站相同可完全按照該網頁製作。這裡僅提供個人心得,若您有更好更詳細的見解及心得,或是在安裝過程發生和TZ不同的問題,不妨提供給TZ,讓TZ努力改善
及回覆,謝謝(此網頁由 TZ 辛苦測試並撰寫,若您要引用請先告知)。

OS – Linux RedHat 9.0 2.4.20-8 #1
DB – Oracle9i Database Release 2 Enterprise/Standard Edition for Linux Release 2
(9.2.0.1)
PS:
v9.2.0.2的版本裝不起來,好像是檔案無法執行,只好退而求其次。

Hardware – Intel xeon 2.4GHz X 2, 2GBRAM, SCSI Harddisk 36.4GB mirror

1.安裝 Linux
top
  OS部份到中山大學抓RedHat
9.0
的ISO檔,提供以下連結給大家參考:


shrike-i386-disc1.iso


shrike-i386-disc2.iso


shrike-i386-disc3.iso

至於如何安裝Linux作業系統,這裡TZ就不多說了,您可能比TZ還厲害
,但有一個要點就是若您想要在安裝 Oracle 後自動產生資料庫的話,請您規劃出一個至少3.5GB以上的空間給 Oracle
系統使用,若您對空間比較沒有概念的話,那就把某一個檔案系統劃大點就好了,反正現在的硬碟都超大。

   

2.

安裝
Java

top
  TZ是安裝 J2SE v 1.4.1_03 SDK,您可以到
Sun Microsystems下載,檔名為
j2sdk-1_4_1_03-linux-i586-rpm.bin,大約39M:

請記得將該檔案改變成可以執行的屬性:

#chmod 755
j2sdk-1_4_1_03-linux-i586-rpm.bin

它是自解壓縮檔,在Linux的命令提示號下 ,打入:


#./j2sdk-1_4_1_03-linux-i586-rpm.bin

執行後,它會顯示版權宣告,並出現下列訊息:

Do you agree to the above
license terms? [yes or no]
yes
Unpacking…
Checksumming…
0
0
Extracting…
UnZipSFX 5.40 of 28 November 1998, by Info-ZIP (Zip-Bugs@lists.wku.edu).
inflating: j2sdk-1_4_1_03-fcs-linux-i586.rpm
Done.
#

解壓後再做安裝命令如下:

#rpm -ivh
j2sdk-1_4_1_03-linux-i586-rpm

安裝後請檢視目錄 /usr/java 是否有產生 j2sdk1.4.1_03
這個目錄。
 


3.

安裝系統設定檔及系統變數設定

top
  您可以到 Guru Labs
下載已包裝好的系統設定檔,連結如下:


oraclerun9i-1.4-1.noarch.rpm
— an installable RPM file

oraclerun9i-1.4-1.src.rpm
— a source RPM file

oraclerun9i-1.4.tar.gz
— a tarball file

下載後,使用下列命令做安裝:

#rpm -Uvh /var/tmp/oraclerun9i-1.4-1.noarch.rpm

這個 rpm 檔安裝了幾個檔案,如下所示:

/etc/init.d/oracle
/etc/profile.d/oracle.csh
/etc/profile.d/oracle.sh
/etc/sysconfig/oracle

以上四個檔案要做點改變,在/etc/profile.d/oracle.sh
中找到下列兩行字:

ORACLE_HOME=/opt/oracle
ORACLE_SID=ora1

將等號後面的值改成您喜歡的設定值,另外在
/etc/profile.d/oracle.csh 中找到下列兩行字:


setenv ORACLE_HOME /opt/oracle
setenv ORACLE_SID ora1

一樣地,這些值請改成您喜歡的設定值,另外如果您和TZ一樣安裝在 RedHat 9.0 上,你需要在 Oracle.sh 中加入下列變數:

LD_ASSUME_KERNEL=2.4.1;
export LD_ASSUME_KERNEL

設定開機時 Kernel 的變數,把下列幾行新增到 /etc/sysctl.conf 中,如果你有更多的記憶體,再視您需要做修改:

kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

再新增下列幾行到 /etc/security/limits.conf 中:

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

如果您無法重開機,可以線上設定上列數值:

[root@RH90]# echo 250 32000 100 128 >
/proc/sys/kernel/sem
[root@RH90]# echo 536870912 > /proc/sys/kernel/shmmax
[root@RH90]# echo 4096 > /proc/sys/kernel/shmmni
[root@RH90]# echo 2097152 > /proc/sys/kernel/shmall
[root@RH90]# echo 65536 > /proc/sys/fs/file-max
[root@RH90]# echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

接下來是建立
ORACLE_HOME 的子目錄,指令如下(這裡的目錄請換成您上面設定的目錄):


# mkdir /opt/oracle

設定開機時啟動 Oracle,請在 /etc/sysconfig/oracle
找到下列該行,並修改如下:

START_ORACLE="yes"

註冊 oracle 為系統服務,並於每次開機後自動執行:

# service oracle
tunekernel

 


4.
準備安裝
top
  請先建立下列群組及帳號:


# groupadd dba ; groupadd oper ; groupadd
oinstall ; groupadd oraweb
# useradd -g oinstall -G dba oracle
# useradd -g oinstall -G oraweb orahttp

及建立下列目錄及存取權設定:

# chown
oracle:oinstall /opt/oracle
# mkdir /var/opt/oracle
# chown oracle:dba /var/opt/oracle
 

5. 安裝 Oracle Database
top
  請先到 Oracle 的網站下載下面三個檔案,並傳送到系統 /tmp
中,如果你是使用光碟安裝,建議你也是拷貝到硬碟中做安裝,並將目錄換成 Disk1,Disk2,Disk3,這樣可免除安裝期間跳出換片的視窗:


lnx_920_disk1.cpio.gz(553M)
lnx_920_disk2.cpio.gz(588M)
lnx_920_disk3.cpio.gz(443M)

請使用下面命令做解壓縮:

#cd /tmp
#for i in 1 2 3 ; do gunzip lnx_920_disk$i.cpio.gz ; done

你可以開一個目錄,專門放安裝檔案使用,要注意的是 Oracle
的安裝帳號必須有存取的權限:

# mkdir /home/orainst
# chown oracle /home/orainst
# su – oracle
$ cd /home/orainst
$ for i in 1 2 3 ; do cpio -idmv < /tmp/Linux9i_Disk$i.cpio ; done
$ chmod -R u=rwx,g=rwx .

接下來檢查環境變數,是否設定正常:

$ env | grep ORACLE

如果沒有的話,執行下列命令即可:

$ . /etc/profile.d/oracle.sh

接著就可以執行安裝程式,叫出 Universal Installer
2.2(如果無法顯示,請檢視 DISPLAY 變數是否設定正確):

$/home/orainst/Disk1/runInstaller

在安裝的過程中,您會遇到兩個錯誤:

1.安裝程式會跳出視窗,並告訴您 make ins_oemagent.mk
失敗,請您按[ignore],稍後會再做修正。
2.接下來會再出現另一個視窗,訊息為"Error in invoking target install of makefile $ORACLE_HOME/ctx/lib/ins_ctx.mk",請將該視窗留著,並執行下列命令:

[oracle@RH90 oracle]$
cd $ORACLE_HOME/install
[oracle@RH90 install]$ tail make.log

你會看到下列字樣:

gcc -o ctxhx
-L/opt/ora9/product/9.2/ctx/lib/ -L/opt/ora9/product/9.2/lib/
-L/opt/ora9/product/9.2/lib/stubs/ /opt/ora9/product/9.2/ctx/lib/ctxhx.o
-L/opt/ora9/product/9.2/ctx/lib/ -lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut
-lsc_ch -lsc_fi -lctxhx -lc -Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9
-lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9

請加入 -ldl 並切換到 cd $ORACLE_HOME/bin 下執行新指令:

[oracle@RH90
install]$ cd $ORACLE_HOME/bin
[oracle@RH90 bin]$ gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/
-L/opt/ora9/product/9.2/lib/ -L/opt/ora9/product/9.2/lib/stubs/
/opt/ora9/product/9.2/ctx/lib/ctxhx.o -L/opt/ora9/product/9.2/ctx/lib/
-lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut -lsc_ch -lsc_fi -lctxhx -lc
-Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9 -lcore9 -lnls9 -lcore9
-lnls9 -lxml9 -lcore9 -lunls9 -lnls9 -ldl

執行後再回到剛才跳出的錯誤視窗按[ignore],安裝會再繼續,並按照安裝程式的指示,直到完成建立新的資料庫及Net8設定。
 

6. 修正錯誤
top
  請執行下列指令:


[oracle@RH90 oracle]$ cd $ORACLE_HOME/network/lib
[oracle@RH90 lib]$ make -f ins_net_client.mk install

接下來編輯 $ORACLE_HOME/ctx/lib/ins_ctx.mk
中的第13~14行:

ctxhx: $(CTXHXOBJ)
$(LINK) $(CTXHXOBJ) $(INSO_LINK)

成為

ctxhx: $(CTXHXOBJ)
$(LINK) -ldl $(CTXHXOBJ) $(INSO_LINK)

然後再做一次下列指令:

[oracle@RH90 lib]$
make -f $ORACLE_HOME/ctx/lib/ins_ctx.mk install

現在您可以啟動 agents 了:

[oracle@RH90 lib]$
/opt/oracle/bin/agentctl start

 

7. 驗證您的系統
top
  啟動 OEM,請執行下列命令:

[oracle@RH90
oracle]$oemapp console

並新增資料庫名稱,若連上資料庫就可以了。另外在 /opt/oracle/root.sh
這個 shell script 會在下次安裝新的 Oracle 軟體時被覆蓋,請更名為新檔名做備份。

©2005

Thunder Zone

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

What is 11 + 4 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)