ITPub博客

首页 > Linux操作系统 > Linux操作系统 > DBA组不同成员使用sqlplus登录的一个小问题

DBA组不同成员使用sqlplus登录的一个小问题

原创 Linux操作系统 作者:傲似寒冰 时间:2009-07-09 14:36:06 0 删除 编辑

虽然这个问题在很早以前就出现了,但我今天才第一次遇到。聊以记录,以便查阅。

测试了下,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/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-04-09

  • 博文量
    18
  • 访问量
    64930