求救..ORA-12154: TNS:could not resolve the connect identifier specified~~搞了好久了没解决!

quechao123 2009-07-18 12:32:25
我装的是Oracle10G企业版。数据库也在本机。已将DMP成功导入数据库,但是当用PL\SQL登录时,出现ORA-12154错误。我也查了一些资料,但是好像都没什么效果。下面把相关设置和问题描述一下,希望你们帮我解决下。

1.环境变量。
查看了注册表,是正确的
ORACLE_HOME c:\oracle\product\10.1.0\Db_1

2.SQLPLUS
输入connect,然后按照提示输入用户名和密码后,显示Connected
但是输入connect user/password@orcl后,显示的也是ORA-12154错误,并出现Warning: You are no longer connected to ORACLE.

3.确定监听服务已经起来。
4.用户名和密码确定正确
5.我的tnsnames.ora文件内容如下:
# tnsnames.ora Network Configuration File: c:\oracle\product\10.1.0\Db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = XP-200907172259)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)


6.sqlnet.ora文件内容如下
# sqlnet.ora Network Configuration File: c:\oracle\product\10.1.0\Db_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)



7.listener.ora文件如下:

# listener.ora Network Configuration File: c:\oracle\product\10.1.0\Db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = c:\oracle\product\10.1.0\Db_1)
(PROGRAM = extproc)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = XP-200907172259)(PORT = 1521))
)
)
)




请帮我找出原因,这个问题搞的我快要吐了。。
谢谢!
...全文
39645 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
小小小小精灵 2012-10-09
  • 打赏
  • 举报
回复
我遇到同样的问题,求解啊,楼主是怎么解决的
五九改 2011-09-05
  • 打赏
  • 举报
回复
我也遇到了 原因是tnsnames.ora配置里面前面有空格
marven 2011-06-06
  • 打赏
  • 举报
回复
不论怎么说 最终肯定是tmsnames.ora这个文件的问题,要么是环境变量没有设置正确,导致找不到这个文件爱你,要么是里面的设置有误。
xieyicool 2009-12-14
  • 打赏
  • 举报
回复
我也遇到了这个问题,如16楼所讲,把TN文件转为UTF-8就可以了
萝卜切成肉丁 2009-12-11
  • 打赏
  • 举报
回复
我用UE做了一下格式转换ASCII 到 UTF-8然后就解决这个问题了。还是不明白为什么啊。
liuyi8903 2009-07-30
  • 打赏
  • 举报
回复
注意你的动态注册.
zhangwonderful 2009-07-22
  • 打赏
  • 举报
回复
SQLNET.AUTHENTICATION_SERVICES= (NTS)
改成:SQLNET.AUTHENTICATION_SERVICES= (NONE)
liuyi8903 2009-07-21
  • 打赏
  • 举报
回复
把tnsname重新创建一次,以避免有ctrl-M(^M)等类似于这样的字符.



你的机器名是?
mudonfield 2009-07-19
  • 打赏
  • 举报
回复
Linster.ora 文件可以备份一下删除,然后先起监听,再起数据库,10g可以自动注册上去.


Listener 和 Tnsname中也许有其他隐性字符,删除后用netca或netmgr重配,其中的Host尽量用本机IP地址配置.
quiettown 2009-07-18
  • 打赏
  • 举报
回复
邪了,用netca把服务名删除掉,lsnrctl stop,将tnsname.ora,listener.ora移到别处去,lsnrctl stop,shutdown immediate, startup, lsnrctl start, 再netca配个。。。
quechao123 2009-07-18
  • 打赏
  • 举报
回复
还是不行。。
inthirties 2009-07-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 quechao123 的回复:]
回inthirties~我运行了lsnrctl status~结果如下,请问该如何做?好像确实没有监听到这个实例~
Java code
Copyright (c)1991,2004, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XP-200907172259)(PORT=1521)))
STATUS of the LISTENER------------------------
Alias LISTENER
Version TNSLSNRfor32-bit Windows: Version10.1.0.2.0- Produ
ction
Start Date18-7月-200915:34:11
Uptime0 days0 hr.2 min.20 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File c:\oracle\product\10.1.0\Db_1\network\admin\listener.o
ra
Listener Log File c:\oracle\product\10.1.0\Db_1\network\log\listener.log

Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XP-200907172259)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XP-200907172259)(PORT=8080))(Present
ation=HTTP)(Session=RAW))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XP-200907172259)(PORT=2100))(Present
ation=FTP)(Session=RAW))
Services Summary...
Service"PLSExtProc" has1 instance(s).
Instance"PLSExtProc", status UNKNOWN, has1 handler(s)forthis service...
Service"orcl" has1 instance(s).
Instance"orcl", status READY, has1 handler(s)forthis service...
Service"orclXDB" has1 instance(s).
Instance"orcl", status READY, has1 handler(s)forthis service...
The command completed successfully

C:\Documents and Settings\Administrator>
[/Quote]

刚才没有看到你上面的回复,

这里你的lsnrctl status的反馈是实例已经注册上去了,是orcl.

看你后来的回复,好像是tnsname文件配置问题。

把tnsname.ora文件备份一下,然后删除掉,重新用net manager建一个新的tnsname试试。
quechao123 2009-07-18
  • 打赏
  • 举报
回复
回inthirties~我运行了lsnrctl status~结果如下,请问该如何做?好像确实没有监听到这个实例~

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XP-200907172259)(PORT=15
21)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 10.1.0.2.0 - Produ
ction
Start Date 18-7月 -2009 15:34:11
Uptime 0 days 0 hr. 2 min. 20 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File c:\oracle\product\10.1.0\Db_1\network\admin\listener.o
ra
Listener Log File c:\oracle\product\10.1.0\Db_1\network\log\listener.log

Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XP-200907172259)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XP-200907172259)(PORT=8080))(Present
ation=HTTP)(Session=RAW))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XP-200907172259)(PORT=2100))(Present
ation=FTP)(Session=RAW))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

C:\Documents and Settings\Administrator>
quechao123 2009-07-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 linhaiqiang 的回复:]
tnsnames.ora只留下面这段
# tnsnames.ora Network Configuration File: c:\oracle\product\10.1.0\Db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = XP-200907172259)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
其它不要
[/Quote]还是不行。。请看四楼~tnsping我觉得有问题~~
inthirties 2009-07-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 linhaiqiang 的回复:]
tnsnames.ora只留下面这段
# tnsnames.ora Network Configuration File: c:\oracle\product\10.1.0\Db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = XP-200907172259)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
其它不要
[/Quote]

运行lsnrctl status看看 实例注册的状态。

服务名不解析的错误,多是listener启动,但是没有根据你的tnsname找到实例。
linhaiqiang 2009-07-18
  • 打赏
  • 举报
回复
tnsnames.ora只留下面这段
# tnsnames.ora Network Configuration File: c:\oracle\product\10.1.0\Db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = XP-200907172259)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
其它不要
quechao123 2009-07-18
  • 打赏
  • 举报
回复
我TNSPING了下~内容如下~好像有问题~我刚接触Oracle~请问是怎么回事?


C:\Documents and Settings\Administrator>tnsping orcl
TNS Ping Utility for 32-bit Windows: Version 10.1.0.2.0 - Production on 18-7月 -
2009 14:48:53
Copyright (c) 1997, 2003, Oracle. All rights reserved.
Used parameter files:
c:\oracle\product\10.1.0\Db_1\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION =
TNS-12533: TNS:illegal ADDRESS parameters


show parameter ins的结果如下:

SQL> show parameter ins

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
active_instance_count integer
cluster_database_instances integer 1
instance_groups string
instance_name string orcl
instance_number integer 0
instance_type string RDBMS
open_links_per_instance integer 4
parallel_instance_group string
parallel_server_instances integer 1
SQL>





quiettown 2009-07-18
  • 打赏
  • 举报
回复
再可以看看lsnrctl status是否正常,如果都是正确的。。。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = c:\oracle\product\10.1.0\Db_1)
(PROGRAM = extproc)
)
)
修改为:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
#(SID_NAME = PLSExtProc)
(SID_NAME = orcl)
(ORACLE_HOME = c:\oracle\product\10.1.0\Db_1)
#(PROGRAM = extproc)
)
)
又如何,再不行的话,使用netca重建。。。
quiettown 2009-07-18
  • 打赏
  • 举报
回复
不知道TNSPING的结果怎么样儿,还是觉得是否服务名配置错误?sqlplus /as sysdba上去后show parameter ins实例名是什么呢?

3,490

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧