非oracle安裝使用者/組成員使用10203遇到的問題和解決

viadeazhu發表於2009-07-04


最近有個專案實施需要用非 oracle安裝使用者,也非oracle組成員使用10203binary,結果出現了一些error,接著也得到了一些解決方法。
或許對其他同學有用,拿來share一下。


1.當用非oracle或組使用者(設這個使用者為nonoracle)使用10203的sqlplus時,得到如下error:
ld.so.1: oracle: fatal: /lib/libskgxp10.so: Permission denied

這裡的lib有可能是其他的,其原因在於One bug of 10203 or “relink all” was not done correctly when installing ORACLE。
導致了$ORACLE_HOME/lib下的library許可權對other使用者沒有合適的讀或執行許可權。
解決方法是:
cd $ORACLE_HOME/install
changePerm.sh -o
(由於僅僅是提升oracle的許可權,所以可以線上改)

2.解決以上問題後,繼續sqlplus,得到下面error:
ERROR:
ORA-09925: Unable to create audit trail file
SVR4 Error: 13: Permission denied
Additional information: 9925
ORA-01031: insufficient privileges

顧名思義,我發現audit_trail目錄nonoracle使用者沒有寫許可權,
於是chmod o+w . chmod o+x .  

3.於是接著sqlplus,出現第三種error:
ERROR:
ORA-01034: ORACLE not available
ORA-27121: unable to determine size of shared memory segment
SVR4 Error: 13: Permission denied

google和metalink後,發現原因在於$ORACLE_HOME/bin/oracle is not set ‘setuid’
$> cd $ORACLE_HOME/bin
$> ls -altr oracle

-rwxr-x--x   1 xxx 125773224 Jan 24  2008 oracle

解決方法:
chmod 6751 oracle (這一部也可以線上改)
$> ls -altr oracle

-rwsr-s--x   1 xxx 125773224 Jan 24  2008 oracle


經過這三步troubleshooting之後,我終於可以用其他使用者訪問oracle的sqlplus了。
其實第二步可以省略掉,因為當我直接進行第三步setuid之後,就不需要用nonoracle使用者在audit_trail有寫許可權了,因為這時nonoracle使用者產生的audit檔案是由oracle使用者產生了。但是,如果作為troubleshooting的步驟,還是需要第二步解決後我才看到第三步的問題所在。


除開這三種error外,我也有同事遇到第四種error:
Error 6 initializing SQL*Plus
Message file sp1.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory

note 356850.1有解決辦法:
chmod -R 755 $ORACLE_HOME/sqlplus

但之後又遇到第五種error:
Error 5 initializing SQL*Plus
NLS initialization error

他索性:
chmod -R 755 $ORACLE_HOME/nls/data
之後終於可以連線sqlplus了。

當你意圖使用其他使用者oracle sqlplus時,如果遇到以上5種error,可以作為參考。

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

相關文章