1.Linux 兼容 其實在 FreeBSD 下安裝 Oracle 9i ,實質上是在 Linux 下安裝。不過是由 FreeBSD 提供一個兼容環境而已。 應該說 FreeBSD 提供的 Linux 環境已經足夠好了,但是我們還是需要做點工作: 建立 /compat/ linux /etc/m" name="description" />
1. Linux兼容
其實在FreeBSD下安裝Oracle9i,實質上是在Linux下安裝。不過是由FreeBSD提供一個兼容環境而已。
應該說FreeBSD提供的Linux環境已經足夠好了,但是我們還是需要做點工作:
建立/compat/linux/etc/mtab
#cat /etc/fstab | grep -v '^#' | grep -v cd9660 | grep -v proc | grep -v swap | grep -v devfs > /compat/linux/etc/mtab
他生成的內容是:
/dev/ad0s2a / ufs rw 1 1
/dev/ad1s1 /u01 ufs rw 1 1
我生成的內容是:
/dev/ad0s1a / ufs rw 1 1
/dev/ad0s1e /tmp ufs rw 2 2
/dev/ad0s1f /usr ufs rw 2 2
/dev/ad0s1d /var ufs rw 2 2
創建鏈接
#ln -s /usr/bin/awk /compat/linux/bin/awk
#ln -s /usr/bin/sed /compat/linux/bin/sed
#ln -s /usr/bin/chown /compat/linux/bin/chown
創建/compat/linux/bin/arch
#cat > /compat/linux/bin/arch
#!/compat/linux/bin/bash
echo i686
^D
然后給它執行權
#chmod +x /compat/linux/bin/arch
如果你愿意,給它也來個鏈接也是不錯的
#ln -s /compat/linux/bin/arch /bin/arch
2. 修改KERNEL
#cd /usr/src/sys/i386/conf
#cp GENERIC ORACLE
#cat >> ORACLE
options SEMMAP=128
options SEMMNI=128
options SEMMNS=32000
options SEMOPM=250
options SEMMSL=250
options SHMMAXPGS=65536
options SHMMAX=1073741824
options SHMMNI=4096
options SHMSEG=4096
options MAXDSIZ=”(1024*1024*1024)”
options MAXSSIZ=”(1024*1024*1024)”
options DFLDSIZ=”(1024*1024*1024)”
^D
*注,好象高手們都比較喜歡純命令行,連個VI也不舍得用。
#config ORACLE
#cd ../compile/ORACLE
#make depend install
#reboot
如果你象我一樣還沒編譯過內核,可能會出現如下提示:
You must build a kernel first
這時,只需要執行:
就是這句:#make depend install改成:
#make depend
#make
#make install就OK了。
3. 設置Oracle的用戶環境變量
昨天安裝時只是創建了oracle用戶,對組并沒有細分?,F在也補上吧。應該是個好習慣。
#cat >> /etc/group
oraoper:*:97:oracle
oradb:*:98:oracle
oracle:*:99: #這句因為加oracle用戶時自動加了,所以我并沒有寫。
^D
#adduser就略過了
#mkdir -p /home/oracle同上
#chown -R oracle:oracle /home/oracle這句好象我當時沒有執行,加上
接下來是關鍵了
#cat > /home/oracle/.profile
ORACLE_HOME=/usr/opt/ora9i/product/9.2.0.1.0
ORACLE_SID=ORACLE
PATH=$ORACLE_HOME/bin:$PATH
PS1='oracle-freebsd> '
export ORACLE_HOME ORACLE_SID PATH PS1
^D
如果你沒有DNS,需用要在hosts文件里加上
#echo “<your IP address> <hostname>” >> /etc/hosts
準備好了,現在可以進行安裝了。
cd /usr/local/ora9i/Disk1「我把安裝包解到這里了」
#xhost +local:oracle #給oracle用戶本地訪問X的權利
#su – oracle
#export DISPLAY=:0
#cd /usr/local/ora9i/Disk1
#./runInstaller
我在運行runInstaller時出現了一個錯誤:
ELF binary type=”0” not known.
./runInstaller:1:Syntax error:”(“unexpected.
經過google+測試,可以運行#kldload linux來解決『這個應該在內核編譯時指定選項來搞定吧,有時間試一下?!?/p>
果然可以安裝了,選擇Custom方式,只安裝Oracle 9i Database,安裝過程出現15處錯誤,全部ignore了。網上有很多人說他們在Linux上安裝時也出現這樣的錯誤,諸如:
Error in invoking target ctx_on of make file:
/usr/opt/ora9i/product/9.2.0.1.0/rdbms/lib/ins_rdbms.mk
不過還好,全部安裝完畢。
結尾的時候運行Net Assistant出錯,Agent時出錯,創建數據庫時出錯。(是我echo i586的錯誤)
運行sqlplus時,提示:libclntsh.so找不到
果然在lib里沒有它,
按Brian C. Ledbetter所說需要:
#LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
我一開始采用的是在安裝文件里「安裝文件在/usr/local/ora9i」執行
find . -name 'libclnt*' -print
結果發現在
./Components/oracle.swd.oui/2.2.0.12.0/DataFiles/Expanded/bin/linux/libclntsh.so[.9.0]
sqlplus終于可以運行了,不過還是有錯誤:
oracle-freebsd> sqlplus /nolog
....
SQL> connect / as sysdba
TNS: lost contact
留給第四天吧。