無可否認FreeBSD是最優秀的操作系統之一,但缺少大型商業數據庫的支持阻礙了FreeBSD走向高端和企業應用,Oracle作為數據庫的領頭雁,如果能夠在FreeBSD上安家,則是我等FreeBSD FANS的一個鼓舞。經過兩天的努力並參考了一個俄文網站的關於在FreeBSD上安裝ORACLE8i的介紹,成功地在FreeBSD5.2上安裝的 Oracle9i。以下是安裝手記。
一 內核配置
# Add for Oracle
options NBUF=2048
options MAXDSIZ="(1024UL*1024*1024)"
options MAXSSIZ="(1024UL*1024*1024)"
options DFLDSIZ="(1024UL*1024*1024)"
#
options SYSVSHM
options SHMMAXPGS=65536
options SHMMIN=2
options SHMMNI=256
options SHMSEG=256
#
options SYSVSEM
options SEMMAP=512
options SEMMNI=512
options SEMUME=512
options SEMMNS=1024
options SEMMNU=512
options SEMMSL=256
options SEMOPM=256
#
options SYSVMSG #SYSV-stylmessage queues
options MSGMNB=8192
options MSGMNI=256
options MSGSEG=8192
options MSGSSZ=16
options MSGTQL=128
# Add end
另外將maxusers設為512,我在定制內核時選擇的是ULE調度器,現在ULE已經是默認的調度器了。
二 系統配置
1 SWAP分區大小為1G,RAM256M,Oracle_HOME要求有5G以上空間。
2 安裝Linux仿真環境。
必須安裝linux_base-7.1和linux_devtools-7.1兩個PKGS,但我在安裝時發現從ports已經無法安裝devtools -7.1了,所以被迫從一個安裝了RH7.3的機器中根據兩個ports的介紹將整個RH7.3系統CP到了FreeBSD中,如果需要我可以將這個目錄?樹打好一個tar包提供給和位。無論你如何構建/compat/Linux目錄樹,必須保證在?掄真環境中有ar,as,ld,nm,tr,cpp, chmod,g++,printf,find,chgrp,chown等程序。
3 調整Linux仿真環境
a 在/compat/Linux/etc中建立mtab到/etc/fstab的鏈接
ln -s /etc/fstab /compat/Linux/etc/mtab
b 在/compat/Linux/bin中建立到awk,sed,chown的鏈接
ln -s /compat/linux/usr/bin/awk /compat/Linux/bin/awk
ln -s /compat/linux/usr/bin/sed /compat/Linux/bin/sed
ln -s /usr/sbin/chown /compat/Linux/bin/chown
以上配置是為了滿足Oracle9i在安裝時的一些腳本的要求,我所知道的在運行root.sh時用到以上的配置,但也可以在運行前修改這個腳本,我安裝時用的是後??,不知是不是這個原因導致了後面會講的一個錯誤。
c 在/compat/Linux/bin中建立arch可執行文件
內容為:
#!/compat/Linux/bin/bash
echo i686 #根據你的機器是i586還是i486
打上可執行標記:
chmod +x arch
4 打開linux仿真支持,修改rc.conf文件也可以kldload Linux模塊
enable_Linux="YES"
5 mount Linux proc文件系統
mkdir /compat/Linux/proc
mount -t linproc /dev/device /compat/Linux/proc
第二步可以放入/etc/fstab文件中在開機時自動截入
6 添加Oracle用戶組和用戶
pw groupadd -n dba -g 94
pw groupadd -n oinstall -g 95
pw useradd -n oracle -u 94 -c "Oracle Daemon" -d /home/Oracle -s
/compat/Linux/bin/bash -g dba -G oinstall,wheel
7 配置Oracle用戶環境
mkdir /home/Oracle
chown oracle:dba /home/Oracle
cd /home/Oracle
編輯.profile配置Oracle用戶環境:
PATH=/compat/linux/bin:/compat/linux/sbin:compat/Linux/usr/bin:/compat/
Linux/usr/sbin:/home/Oracle/920/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/
local/sbin:/usr/local/bin:/usr/X11R6/bin; export PATH
ORACLE_BASE=/home/oracle; export Oracle_BASE
#下面一個是安裝Oracle的目錄
ORACLE_HOME=/home/oracle/920; export Oracle_HOME
LD_LIBRARY_PATH=$Oracle_HOME/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
ORACLE_SID=ORCL; export Oracle_SID
ORA_NLS33=$Oracle_HOME/ocommon/nls/admin/data; export ORA_NLS33
export DISPLAY=:0
三 安裝准備
下載Oracle9i(9.2.0) for Linux的三個文件在一個足夠大小(>2G)空間解壓縮最後得到三個目錄:Disk1,Disk2,Disk3。
四 安裝
1 以Oracle用戶登錄
2 進入X
startx
3 在X中打開一個終端窗口,在窗口中運行安裝程序
cd /path/Disk1
./runInstaller
安裝程序開始運行,出現界面後按提示選擇進行安裝,這與安裝典型的
Windows程序一樣,安裝時默認的臨時文件在/tmp目錄中,此時進入/tmp可看見Oracle9i的安裝目錄和一些臨時文件。
4 安裝時的必須的手工干預
a 在剛開始安裝會有一個窗口提示運行一個腳本,這時可在另一個終端窗口中先以root身份在/compat/Linux/etc中創建一個名為oraInst.loc的文件並將屬主設為Oracle
cd /compat/Linux/etc
touch oraInst.loc
chown Oracle:dba oraInst.loc
然後以Oracle身份運行腳本,之後繼續安裝。
b 在安裝部分完成後在連接數據庫的過程中有一個錯誤出現(與ins_ctx.mk有關),此時可選忽略,不會引響數據庫的基本功能,但在Agent配置時會出錯,其它正常。我不知道是否每一次安裝都會有這個錯誤,也不知道是什麼原因造成了這個錯誤。
c 最後一個無需手工干預的地方在數據庫配置以前要以root身份運行$Oracle_HOME/root.sh,此時觀察其輸出,不能有任何錯誤,如果有則是因為什麼程序找不到造成的,可以修改這個腳本將指定所提示的程序的正確路徑就可以了。
5 安裝後根據需要進行數據庫配置,這與Windows中是一樣的。
五 安裝後啟動數據庫
1 重啟系統
2 以Oracle身份登錄
3 啟動數據庫
在初次啟動數據庫時,要先將initORCL.ora這個文件(在你指定的全局數據名所在的目錄下的pfile目錄中)復制到$ Oracle_HOME/dbs目錄中,並在dbs目錄中將oraPW.(全局名)的一個文件復制一份名為oraPW,然後就可以正常啟動數據庫了。
六 總結
從使用來看,直接在機器上使用sqlplus進行查詢,感覺不到有什麼不同,至於效率還未測試。不足之處請各位批評,並請高手修正安裝中的錯誤。
謝謝。