首页 > 技术文章 > Oracle客户端简易连接报错ORA-12154,TNS-03505

jyzhao 2015-07-21 12:05 原文

环境:

服务端:RHEL6.5 + Oracle Server 11.2.0.4
客户端:Win2003 + Oracle Client 10.2.0.1

1. 问题现象

服务端安装好Oracle数据库,测试正常。 但在用户的客户端测试连接时,报错ORA-12154,TNS-03505 sqlplus system/oracle@192.168.10.10/xxsid
C:\Documents and Settings\Administrator>sqlplus system/oracle@192.168.10.10/xxsid

SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 7月 16 16:53:58 2015

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

ERROR:
ORA-12154: TNS: 无法解析指定的连接标识符


请输入用户名:

2. Troubleshooting

## tnsping测试: ## ``` C:\Documents and Settings\Administrator>tnsping 192.168.10.10

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 16-7月 -
2015 16:53:00

Copyright (c) 1997, 2005, Oracle. All rights reserved.

已使用的参数文件:
D:\oracle32\product\10.2.0\client_1\network\admin\sqlnet.ora

TNS-03505: 无法解析名称


## 查看已使用的参数文件sqlnet.ora ##

sqlnet.ora Network Configuration File: D:\oracle32\product\10.2.0\client_1\network\admin\sqlnet.ora

Generated by Oracle configuration tools.

This file is actually generated by netca. But if customers choose to

install "Software Only", this file wont exist and without the native

authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES)


发现NAMES.DIRECTORY_PATH的配置只允许TNSNAMES

<h1 id="3">  3. 解决问题 </h1>
注释掉sqlnet.ora中NAMES.DIRECTORY_PATH= (TNSNAMES)一行,
注释掉就会采用默认值(TNSNAMES,ONAMES,HOSTNAME),当然你也可以修改加上这些常用选项。
再次测试,问题解决。

C:\Documents and Settings\Administrator>sqlplus system/oracle@192.168.10.10/xxsid

SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 7月 16 16:54:08 2015

Copyright (c) 1982, 2005, Oracle. All rights reserved.

连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

如果没有特殊的安全需求或其他规范,建议还是不要随意更改sqlnet.ora文件的配置信息。

推荐阅读