读书人

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

发布时间: 2012-03-06 20:47:55 作者: rapoo

ORA-12154: TNS: 无法解析指定的连接标识符
windows7 32bit+oracle 11g
数据库服务和侦听器服务已经启动:

lsnrctl status的输出如下:
LSNRCTL for 32-bit Windows: Version 11.2.0.1.0 - Production on 15-12月-2011 11:0
7:57

Copyright (c) 1991, 2010, Oracle. All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 11.2.0.1.0 - Produ
ction
启动日期 15-12月-2011 10:45:29
正常运行时间 0 天 0 小时 22 分 28 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 C:\oracle\product\11.2.0\dbhome_1\network\admin\listen
er.ora
监听程序日志文件 c:\oracle\diag\tnslsnr\ad999\listener\alert\log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ad999)(PORT=1521)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "orcl" 包含 1 个实例。
实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
服务 "orclXDB" 包含 1 个实例。
实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功

sqlnet.ora文件如下:
SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

listener.ora文件如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\oracle\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = AD999)(PORT = 1521))
)
)

ADR_BASE_LISTENER = C:\oracle


tnsnames.ora文件如下:
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = AD999)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)


tnsping测试正常:
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 15-12月-
2011 11:11:23

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

已使用的参数文件:
C:\oracle\product\11.2.0\dbhome_1\network\admin\sqlnet.ora


已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = AD999
)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))
OK (30 毫秒)

但无法用scott用户登录:
C:\Users\ask>sqlplus scott/1111111@orcl

SQL*Plus: Release 11.2.0.1.0 Production on 星期四 12月 15 11:11:42 2011

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

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


请输入用户名:



scott用户经测试能正常登录查询:
SQL> conn scott/1111111
已连接。
SQL> select * from dept;

DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON


windows7上的防火墙关闭也试过,故障现象一样。

why?

[解决办法]
请参考这篇博文:http://blog.csdn.net/luiseradl/article/details/7064916
------解决方案--------------------


把listener.ora文件中SID_NAME行各位如下:
(SID_NAME = ORCL)

[解决办法]
windows7 32bit +oracle 真是个杯具,上次帮朋友处理了一天,刚开始是因为某些安装组件出了问题,也出了这样的问题,重新卸载干净,要兼容模式安装,安装完就可以了,什么都可以连接了,TOAD就是不能连接,最后没有时间,叫他重新安装最新版的TOAD,也补知道解决了没有,至少SQL DEVELOP了可以用了
[解决办法]

读书人网 >oracle

热点推荐