【srvctl】 LD_ASSUME_KERNEL環境變數作祟導致srvctl命令無法使用
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 --
在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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RAC環境中修改系統時間可能導致SRVCTL命令失敗
- SRVCTL命令介紹
- SRVCTL 命令參考
- Oracle: srvctl 命令小結Oracle
- rac 命令 srvctl 報錯
- 執行srvctl命令報錯
- CRSCTL和SRVCTL的命令用法
- 【解惑】因xhost命令和DISPLAY環境變數操作不當導致無法啟動Oracle圖形化安裝介面變數Oracle
- RAC中的srvctl和crs命令
- oracle11gRAC之srvctl命令:Oracle
- 使用者.bash_profile環境變數配置錯誤導致ls vi命令不可用的解決辦法變數
- 【RAC】Oracle RAC12c+ srvctl操作命令變化(引數更嚴謹了)Oracle
- 10G RAC: srvctl 命令總結
- SRVCTL 命令詳細說明文件(譯)
- Windows Powershell & 環境變數;Powershell where命令無輸出Windows變數
- 使用srvctl管理RAC資料庫資料庫
- RAC常用開啟關閉命令 – SRVCTL用法
- RAC之srvctl 命令不能用的問題
- oracle 10g rac srvctl 命令總結Oracle 10g
- RAC: SRVCTL and VIPCA 命令報錯解決方法PCA
- zt:SRVCTL 命令詳細說明文件(譯)
- Oracle:srvctl 簡介Oracle
- Snappy 構建jdk的環境不對導致無法載入APPJDK
- java環境變數配置好了,就是無法載入主類Java變數
- 單個分割槽索引失效導致繫結變數查詢無法使用索引索引變數
- 在RAC 中解決 vipca 和 srvctl 無法執行的錯誤PCA
- RAC 11.2.0.3 維護命令(三) SRVCTL管理services
- Oracle RAC中Srvctl命令詳細說明(轉)Oracle
- 如何去掉crs服務和srvctl命令幫助
- 用srvctl modify nodeapps命令更改vip地址APP
- 3.1.1.4 使用 SRVCTL 啟動資料庫資料庫
- LInux下環境變數配置錯誤導致不能登入的及命令失效解決方案Linux變數
- ORA-16191 錯誤導致無法連線DATA GUARD環境
- 4.5.1.1 srvctl add asmASM
- 4.5.1.2 srvctl add databaseDatabase
- Oracle srvctl的小bugOracle
- win 命令列 設定環境變數命令列變數
- RAC常用開啟關閉命令 - CRSCTL和SRVCTL 用法