问题现象:
在执行sqlplus / as sysdba 登陆数据库的时候报ORA-12545错误,如下:
[Oracle@source ~]$ sqlplus / as sysdba
ORA-12545:Connect failed because targethost or object does not exist
问题分析:
从报错信息上来看,这个问题应该是个简单且常见的问题,通常都会是由于SID不正确,主机指向不对和在SQLNET.ora中关闭了本地验证,均会报如上错误,但是通过检查,都是没有问题的,如下:
问题解决思路一:
首先我们应当检查上面提到的那几项,结果都没有问题,但是就是死活登不上去:
[oracle@source ~]$ cat /etc/hosts
# Do not remove the following line, orvarious programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.7.20 source
192.168.7.21 target
[oracle@source ~]$ echo $ORACLE_SID
woo
[oracle@source ~]$ cat/DBSoft/product/11.2.4/db_1/network/admin/listener.ora
# listener.ora Network Configuration File:/DBSoft/product/11.2.4/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.20)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /DBSoft
[oracle@source ~]$ cat/DBSoft/product/11.2.4/db_1/network/admin/sqlnet.ora
# sqlnet.ora Network Configuration File:/DBSoft/product/11.2.4/db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
ADR_BASE = /DBSoft
解决问题思路二:
从上并未发现什么有价值的信息,随即检查alert告警日志文件,发下如下报错:
[oracle@source~]$tail -50 $ORACLE_BASE/diag/Woo/woo/alert_woo.log |grep ORA-
ORA-07274: spdcr: access error, access to oracledenied.
从这个错误信息上来看非常陌生,随即上互联网查找有没有解决办法看到askmaclean的blog中有一篇文档对此有介绍,但是环境不一样,实在不行也就死马当活马医了,随即展开问题的解决:
问题解决步骤:
从askmaclean博客中可以看出可能是由于$ORACLE_HOME/bin目录中的oracle文件状态不对导致该问题的发生,我对此问题的解决步骤如下:
1、查看$ORACLE_HOME/bin/ 目录中的oracle这个文件,可以发现没有
[oracle@source ~]$ ll$ORACLE_HOME/bin/oracle
ls: /DBSoft/product/11.2.4/db_1/bin/oracle:No such file or directory
2、随即从其它正常节点将此文件拷贝到该目录中
[oracle@target ~]$scp$ORACLE_HOME/bin/oracle source: $ORACLE_HOME/bin/
3、再次查看该文件及相关权限,可以看出都是对的
[oracle@source ~]$ ll$ORACLE_HOME/bin/oracle
-rwsr-s--x 1 oracle oinstall 239627073Sep 2 22:38/DBSoft/product/11.2.4/db_1/bin/oracle
4、再次登陆sqlplus,成功,问题解决。
[oracle@source ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production onWed Sep 3 00:12:54 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise EditionRelease 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Miningand Real Application Testing options
SQL>
: