最近有个项目实施需要用非 oracle安装用户,也非oracle组成员使用10203binary,结果出现了一些error,接着也得到了一些解决方法。
或许对其他同学有用,拿来share一下。
1.当用非oracle或组用户(设这个用户为nonoracle)使用10203的sqlplus时,得到如下error:
ld.so.1: oracle: fatal: <$ORACLE_HOME>/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_HOME>
(由于仅仅是提升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博客 ” ,链接:https://blog.itpub.net/15415488/viewspace-608313/
,如需转载,请注明出处,否则将追究法律责任。