無可否認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進行查詢,感覺不到有什麼不同,至於效率還未測試。