Redhat9.0是一個非常好的Linux發行版本,具有良好的中文支持和豐富的應用軟件,令包括筆者在內的好多Linux用家愛不釋手。但由於Redhat9.0采用的GCC版本比較高,造成了一定的兼容性問題。使得包括Oracle9.2和IBM DB2等大型數據庫軟件在Redhat9.0上不能順利安裝。
經過一段時間的摸索和反復查找 資料。筆者終於總結除了Oracle9.2在Redhat9.0上的安裝方法,在此給大家參考。
首先需要安裝Redhat9.0,如果您不是非常有經驗的用戶,請選擇完整安裝。
安裝前的准備工作
建立一個用戶和組,Oracle 往往要求建立兩個組,一個負責安裝,另一個負責管理,但很多老資格的DBA都認為建立一個組就足夠了。以root用戶運行下列命令:
groupadd oracle
useradd oracle -g dba
passwd oracle
Oracle安裝的位置應遵守OFA( Optimal Flexible Architecture )規范,但在我的機器上,由於空間有限,所以將ORACLE_HOME設定為/soft/oracle,並要確保oracle用戶對這個目錄可寫。
安裝和運行Oracle需要配置內核參數,我的電腦具有512M內存。在 /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
修改後運行sysctl -p 命令使得內核改變立即生效。
還需要在/etc/security/limits.conf 文件增加如下內容:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
配置Oracle 的環境變量如下:
export ORACLE_HOME=/soft/oracle
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_SID=or9i
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/soft/oracle/lib:$LD_LIBRARY_PATH
export PATH=/$ORACLE_HOME/bin:$PATH
最好將上邊的環境變量寫入/home/oracle/.bash_profile 中,使得oracle 每次登錄時都帶有這些環境變量。
開始安裝
我采用在硬盤安裝的方式,直接執行LANG=和./runInstaller,將出現下面的界面(圖一)
圖一
點擊Next 鍵,進入下一步,直至出現圖二
圖二
輸入Unix 的組名"dba",下一步後,根據提示,需要打開一個新窗口,執行
su - root
/tmp/orainstRoot.sh
一直按"next "鍵,當看到(圖三)
圖三
選擇"Software Only",我們將在以後建立數據庫。
運行了一會以後,出現了"ins_oemagent.mk"的錯誤提示,如下(圖四)
圖四
這時我們可以暫時選擇"ignore",安裝完成以後再來解決這個問題.
接下來又會出現"ins_ctx.mk"的問題,如圖五
圖五
現在編輯 $ORACLE_HOME/ctx/lib/env_ctx.mk文件,在 "INSO_LINK =" 行(第1365行)加入 "$(LDLIBFLAG)dl"
修改後如下:
INSO_LINK = -L$(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)dl $(LDLIBFLAG)
sc_ca $(LDLIBFLAG)sc_fa $(LDLIBFLAG)sc_ex $(LDLIBFLAG)sc_da
$(LDLIBFLAG)sc_ut $(LDLIBFLAG)sc_ch $(LDLIBFLAG)sc_fi
$(LLIBCTXHX) $(LDLIBFLAG)c -Wl,-rpath,$(CTXHOME)
lib $(CORELIBS) $(COMPEOBJS)
按"retry"鍵即可繼續。
最後,還需要根據提示,用root用戶執行一次 $ORACLE_HOME/root.sh,Oracle 軟件就初步安裝完了。
安裝完成以後的工作
我們回頭來解決上邊的那個ins_oemagent.mk問題。以Oracle用戶執行:
cd $ORACLE_HOME/network/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)
然後執行
make -f $ORACLE_HOME/ctx/lib/ins_ctx.mk install
現在,Oracle 軟件已經完全安裝成功,你可以用dbca命令來建立數據庫,或者執行其他DBA命令。
總結
類似Oracle 和IBM DB2之類的大型數據庫的安裝,往往都比較復雜,在安裝之前一般都需要調整內核參數。配置環境變量等,安裝過程中也經常有這樣那樣的問題。建議非熟練用戶在安裝前一定要仔細閱讀軟件自帶的PDF文檔,並在網上參考其他用戶的經驗。在目前,一般大型數據庫都在Unix平台上工作,做為一個優秀的DBA,不僅要有Oracle知識,還應該而且必需掌握一定的Unix知識。