【srvctl】 LD_ASSUME_KERNEL環境變數作祟導致srvctl命令無法使用

secooler發表於2010-10-19
1.問題現象
在oracle使用者下無法使用srvctl,報錯資訊如下。
RACDB1@rac1 /home/oracle$ srvctl status database -d RACDB
/oracle/app/oracle/product/10.2.0/db_1/jdk/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory

2.問題原因
導致該問題的原因是,在部署安裝RAC時僅將clusterware軟體目錄下srvctl命令中的LD_ASSUME_KERNEL環境變數進行了登出處理,資料庫軟體安裝目錄下的srvctl未做相應調整。因PATH環境變數設定順序,資料庫軟體的srvctl在前,導致未做調整的srvctl被呼叫。
RACDB1@rac1 /home/oracle$ which srvctl
/oracle/app/oracle/product/10.2.0/db_1/bin/srvctl

此處的srvctl未做調整。

3.問題處理
針對該問題由兩種處理方法。
1)第一種處理方法:將資料庫軟體目錄下srvctl中的LD_ASSUME_KERNEL環境變數登出掉。
(1)使用vi對srvctl進行編輯
RACDB1@rac1 /home/oracle$ vi /oracle/app/oracle/product/10.2.0/db_1/bin/srvctl

(2)登出掉檔案中的LD_ASSUME_KERNEL環境變數
可以兩種方法完成登出。
第一種方法:使用unset完成登出
#Remove this workaround when the bug 3937317 is fixed
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
unset LD_ASSUME_KERNEL

第二種方法:直接在有關LD_ASSUME_KERNEL變數的前面新增“#”號登出
#Remove this workaround when the bug 3937317 is fixed
#LD_ASSUME_KERNEL=2.4.19
#export LD_ASSUME_KERNEL

(3)驗證srvctl的可用性
RACDB1@rac1 /home/oracle$ which srvctl
/oracle/app/oracle/product/10.2.0/db_1/bin/srvctl
RACDB1@rac1 /home/oracle$ srvctl status database -d RACDB
Instance RACDB1 is running on node rac1
Instance RACDB2 is running on node rac2

此時,srvctl命令可以正常使用。

2)第二種處理方法:調整PATH環境變數的順序
既然CRS目錄下的srvctl工具已經在安裝clusterware時做過調整,我們也可以透過調整PATH環境變數順序,將CRS目錄下的srvctl命令置前,這樣可以保證最先得到可用的srvctl命令。
(1)調整PATH環境變數
RACDB1@rac1 /home/oracle$ export PATH=/oracle/app/crs/bin:$PATH
(2)驗證srvctl的可用性
RACDB1@rac1 /home/oracle$ which srvctl
/oracle/app/crs/bin/srvctl
RACDB1@rac1 /home/oracle$ srvctl status database -d RACDB
Instance RACDB1 is running on node rac1
Instance RACDB2 is running on node rac2

此時,srvctl命令可以正常使用。

建議採用第一種處理方法,保證所有出現srvctl的地方命令都是正確可用。

4.小結
避免發生文中問題的最根本有效的方法就是在部署完成RAC後,及時對srvctl的這個問題進行調整,防止給後期使用過程中帶來不必要的麻煩。

Good luck.

secooler
10.10.19

-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-676665/,如需轉載,請註明出處,否則將追究法律責任。

相關文章