TNS-03505 名称无法解析
问题现象:
[Oracle@db01 admin]$ tnsping pri
TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 15-JUN-2015 21:57:52
Copyright (c) 1997, 2013, Oracle. All rights reserved.
Used parameter files:
TNS-03505: Failed to resolve name
[oracle@db01 admin]$ sqlplus system/oracle@pri
SQL*Plus: Release 11.2.0.4.0 Production on Mon Jun 15 21:58:48 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
Enter user-name: ^C
问题分析:
出现该问题的原因通常有两个:1、名称不存在 2、tns配置文件不存在。
问题处理:
1、首先检查tnsnames.ora的所有配置信息,一切正常没有任何问题。
[oracle@db01 admin]$ cat tnsname.ora
pri =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.50)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = woo)
)
)
2、检查tnsnames.ora的文件及文件所属用户及用户组
[oracle@db01 admin]$ ll tnsnames.ora
-rwxr--r-- 1 oracle oinstall 350 Jun 16 22:04 tnsname.ora
#从这里来看也是没有问题,文件是属于oinstall用户组,及其所有权限也是Oracle
3、那么这个时候我们选择跳过tnsnames.ora通过手工登陆进行验证数据库是否正常
[oracle@db01 admin]$ sqlplus system/oracle@192.168.1.50/woo
SQL*Plus: Release 11.2.0.4.0 Production on Tue Jun 16 22:34:40 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options
SQL> select name from v$database;
NAME
---------
WOO
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
woo OPEN
SQL>
#从这里我们可以看到,数据库肯定是没有问题的,那么下一步我们通过拿一个好的监听文件替换这个监听文件来处理该问题。
4、通过上传一个之前可用的监听配置文件进行对比
[oracle@db01 admin]$ ls
listener.ora samples shrept.lst sqlnet.ora tnsname.ora tnsnames.ora
[oracle@db01 admin]$ chmod u+x tnsnames.ora
[oracle@db01 admin]$ ll
total 24
-rwxr-xr-x 1 oracle oinstall 711 Jun 16 22:08 listener.ora
drwxr-xr-x 2 oracle oinstall 4096 Jun 11 21:56 samples
-rw-r--r-- 1 oracle oinstall 381 Dec 17 2012 shrept.lst
-rw-r--r-- 1 oracle oinstall 221 Jun 16 21:59 sqlnet.ora
-rwxr--r-- 1 oracle oinstall 350 Jun 16 22:31 tnsname.ora
-rwxr--r-- 1 oracle oinstall 350 Jun 16 22:04 tnsnames.ora ----这个是后面上传的
#通过对比,我发现之前手工些的那个文件名称不对,即使里面内容正确也无济于事。
5、通过修改替换监听文件,该问题得到解决:
[oracle@db01 admin]$ cat tnsname.ora > tnsnames.ora
[oracle@db01 admin]$ rm -rf tnsname.ora
[oracle@db01 admin]$ sqlplus system/oracle@pri
SQL*Plus: Release 11.2.0.4.0 Production on Tue Jun 16 23:02:15 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options
SQL> select name from v$database;
NAME
---------
WOO
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
woo OPEN
SQL>
SQL> host ls -rtl
total 20
-rw-r--r-- 1 oracle oinstall 381 Dec 17 2012 shrept.lst
drwxr-xr-x 2 oracle oinstall 4096 Jun 11 21:56 samples
-rw-r--r-- 1 oracle oinstall 221 Jun 16 21:59 sqlnet.ora
-rwxr-xr-x 1 oracle oinstall 711 Jun 16 22:08 listener.ora
-rwxr--r-- 1 oracle oinstall 350 Jun 16 23:02 tnsnames.ora