虽然这个问题在很早以前就出现了,但我今天才第一次遇到。聊以记录,以便查阅。
测试了下,DBA组下不同成员登录ORACLE的情况,过程并不是十分顺利。
首先,DBA组成员ammny登录数据库:
[ammny@NCTEST etc]$ uname -a
Linux NCTEST 2.6.9-55.ELsmp #1 SMP Fri Apr 20 16:36:54 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
SQL> select * from v$version;
BANNER
---------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
[ammny@NCTEST ~]$ id
uid=505(ammny) gid=503(dba) groups=503(dba)
[ammny@NCTEST ~]$ sqlplus "/as sysdba"
-bash: sqlplus: command not found
[ammny@NCTEST ~]$
出现这种问题,一般都是由于环境变量引起的。于是配置ammny环境变量,与oracle用户的环境变量一致即可。
[ammny@NCTEST ~]$ vi .bash_profile
编辑.bash_profile文件,增加以下条目:
umask 022
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/oradata/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/; export ORACLE_HOME
ORACLE_SID=NC5X; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
编辑好之后保存。退出,同时,退出ammny用户,使用ammny用户重新登录一遍系统。
新鲜事又来了:
[ammny@NCTEST ~]$ sqlplus "/as sysdba"
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
这啥原因?原以为是环境变量配置错了,结果我完全的从oracle用户下的配置文件完完全全的copy过去,重启机器都问题依旧。查阅了相关资料,有人说用以下命令可以解决,可我试了试好像没有用:
chmod -R a+rX $ORACLE_HOME
当运行此命令时,提示没有权限,不成!
继续搜索,在OTN上看到,这是ORACLE 10g R2的一个BUG,版本号为4516865,从metalink上下载了相关的补丁4516865,将install目录下的changePerm.sh和restrict.lst解压到 $ORACLE_HOME/install目录下,之后进行如下操作:
[oracle@NCTEST install]$ ls
changePerm.sh restrict.lst
[oracle@NCTEST install]$ chmod 755 changePerm.sh
[oracle@NCTEST install]$ chmod 644 restrict.lst
[oracle@NCTEST install]$ ls -l
total 20
-rwxr-xr-x 1 oracle oinstall 10776 Feb 18 2006 changePerm.sh
-rw-r--r-- 1 oracle oinstall 7660 Feb 16 2006 restrict.lst
[oracle@NCTEST install]$ ./changePerm.sh
----------------------------------------------------------------------------
Disclaimer: The purpose of this script. is to relax permissions on some of the files in the database Oracle Home so that all clients can access them.
Please note that Oracle Corporation recommends using the most restrictive file permissions as possible for your given implementation. Running this script. should be done only after considering all security ramifications.
----------------------------------------------------------------------------
Do you wish to continue (y/n) [n]: y
Finished running the script. successfully
Please see /tmp/changePerm_err.log for errors and /tmp/changePerm.log for the log of events
到这一步,说明PATCH是安装上去了,注销ammny用户,重新登录系统,连接ORACLE,OK!
[ammny@NCTEST ~]$ sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 9 13:39:46 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL>
另外,有人说需要使用OPTACH打这个PATCH,我倒没有用到,也成功了。呵呵,或许是幸运吧。具体的补丁可以到Metalink上下载。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17253074/viewspace-608747/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/17253074/viewspace-608747/
本文记录了解决Oracle 10g中DBA组成员登录遇到的问题,包括环境变量配置错误导致的命令未找到及共享库加载失败等问题,并通过安装补丁成功解决了问题。
3万+

被折叠的 条评论
为什么被折叠?



