ORA-12560:TNS:协议适配器错误

ChinaITOldMan 2017-12-21 02:40:40
本机windows安装上安装了Oracle11g,在cmd命令行下可以用sqlplus system/Oracle11g@10.10.1.10:1521/orcl11g 登录本机Oracle数据库,但是用cmd命令行下输入sqlplus,再输入system用户与正确的密码就提示“ORA-12560:TNS:协议适配器错误”

谢谢指点!
...全文
857 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
dnmyg2003 2017-12-26
  • 打赏
  • 举报
回复
应该是环境变量的问题吧。 你看看环境变量是否正确, 机器是否装有两个oracle
minsic78 2017-12-22
  • 打赏
  • 举报
回复
引用 19 楼 mcxhh2005 的回复:
[quote=引用 18 楼 baidu_36457652 的回复:] 我测试过装客户端和服务端同时用 用set ORACLE_SID=实例名 然后 sqlplus "/as sysdba" 是不行的。 我觉得他们是冲突的 所以 登陆现在有两种 解析方式 1 tnsname 2 ezconect sqlplus system/Oracle11g@10.10.1.10:1521/orcl11g 你这种是 2 ezconect 连接 你可以修改 客户端的 tnsname.ora文件 加一个 net服务名 然后 登陆的时候 @net服务名 也是可以连的
请问在 tnsname.ora文件 加一个 net服务名是怎样设置的,能否告诉个例子,因为刚接触Oracle 麻烦你了 [/quote] tnsnames.ora是客户端的设置,也就是说,也是要走服务器监听的…………
ChinaITOldMan 2017-12-21
  • 打赏
  • 举报
回复
引用 18 楼 baidu_36457652 的回复:
我测试过装客户端和服务端同时用 用set ORACLE_SID=实例名 然后 sqlplus "/as sysdba" 是不行的。 我觉得他们是冲突的 所以 登陆现在有两种 解析方式 1 tnsname 2 ezconect sqlplus system/Oracle11g@10.10.1.10:1521/orcl11g 你这种是 2 ezconect 连接 你可以修改 客户端的 tnsname.ora文件 加一个 net服务名 然后 登陆的时候 @net服务名 也是可以连的
请问在 tnsname.ora文件 加一个 net服务名是怎样设置的,能否告诉个例子,因为刚接触Oracle 麻烦你了
  • 打赏
  • 举报
回复
我测试过装客户端和服务端同时用 用set ORACLE_SID=实例名 然后 sqlplus "/as sysdba" 是不行的。 我觉得他们是冲突的 所以 登陆现在有两种 解析方式 1 tnsname 2 ezconect sqlplus system/Oracle11g@10.10.1.10:1521/orcl11g 你这种是 2 ezconect 连接 你可以修改 客户端的 tnsname.ora文件 加一个 net服务名 然后 登陆的时候 @net服务名 也是可以连的
minsic78 2017-12-21
  • 打赏
  • 举报
回复
引用 16 楼 mcxhh2005 的回复:
哦,请问我在电脑上同时安装有客户端与服务器端,我运行sqlplus时它是调用客户端sqlplus 还是服务器端的sqlplus?
无论什么样的程序,如果不写全路径,肯定是要看PATH变量的,谁靠前谁执行。 另外,我不知道你问现在这个问题的目的是啥,但有一点需要强调,windows下的服务器sqlnet.ora中必须有SQLNET.AUTHENTICATION_SERVICES= (NTS)这一行
ChinaITOldMan 2017-12-21
  • 打赏
  • 举报
回复
哦,请问我在电脑上同时安装有客户端与服务器端,我运行sqlplus时它是调用客户端sqlplus 还是服务器端的sqlplus?
minsic78 2017-12-21
  • 打赏
  • 举报
回复
将服务器端的sqlnet.ora文件内容修改为(就这么一行): SQLNET.AUTHENTICATION_SERVICES= (NTS) 修改后再试试登录可不可以,如果不可以,可能还需要为以下变量设置正确的值: ORACLE_HOME、ORACLE_SID
ChinaITOldMan 2017-12-21
  • 打赏
  • 举报
回复
是的,有Oracle的客户端,我上面的回复有说客户端的sqlnet.ora与服务端的sqlnet.ora的内容
minsic78 2017-12-21
  • 打赏
  • 举报
回复
引用 11 楼 mcxhh2005 的回复:
我电脑上同时安装了Oracle客户端与服务器端,客服端的sqlnet.ora的内容如下: SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) 服务器端的sqlnet.ora的内容如下: *********************************************************************** Fatal NI connect error 12528, connecting to: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=orcl11g)(CID=(PROGRAM=D:\Ora\11g\app\XWT\product\11.2.0\dbhome_1\bin\emagent.exe)(HOST=WSAP096)(USER=SYSTEM)))) VERSION INFORMATION: TNS for 64-bit Windows: Version 11.2.0.1.0 - Production Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production Time: 11-12月-2017 19:48:54 Tracing not turned on. Tns error struct: ns main err code: 12564 TNS-12564: TNS: 拒绝连接 ns secondary err code: 0 nt main err code: 0 nt secondary err code: 0 nt OS err code: 0
引用 11 楼 mcxhh2005 的回复:
我电脑上同时安装了Oracle客户端与服务器端,客服端的sqlnet.ora的内容如下: SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) 服务器端的sqlnet.ora的内容如下: *********************************************************************** Fatal NI connect error 12528, connecting to: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=orcl11g)(CID=(PROGRAM=D:\Ora\11g\app\XWT\product\11.2.0\dbhome_1\bin\emagent.exe)(HOST=WSAP096)(USER=SYSTEM)))) VERSION INFORMATION: TNS for 64-bit Windows: Version 11.2.0.1.0 - Production Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production Time: 11-12月-2017 19:48:54 Tracing not turned on. Tns error struct: ns main err code: 12564 TNS-12564: TNS: 拒绝连接 ns secondary err code: 0 nt main err code: 0 nt secondary err code: 0 nt OS err code: 0
果然是又装了客户端软件……看来环境变量什么的都已经搞得一塌糊涂了……
minsic78 2017-12-21
  • 打赏
  • 举报
回复
另外,你在这台机器上是不是还安装过Oracle的客户端软件?
ChinaITOldMan 2017-12-21
  • 打赏
  • 举报
回复
我电脑上同时安装了Oracle客户端与服务器端,客服端的sqlnet.ora的内容如下: SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) 服务器端的sqlnet.ora的内容如下: *********************************************************************** Fatal NI connect error 12528, connecting to: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=orcl11g)(CID=(PROGRAM=D:\Ora\11g\app\XWT\product\11.2.0\dbhome_1\bin\emagent.exe)(HOST=WSAP096)(USER=SYSTEM)))) VERSION INFORMATION: TNS for 64-bit Windows: Version 11.2.0.1.0 - Production Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production Time: 11-12月-2017 19:48:54 Tracing not turned on. Tns error struct: ns main err code: 12564 TNS-12564: TNS: 拒绝连接 ns secondary err code: 0 nt main err code: 0 nt secondary err code: 0 nt OS err code: 0
minsic78 2017-12-21
  • 打赏
  • 举报
回复
看下%ORACLE_HOME%/network/admin/sqlnet.ora文件的内容
ChinaITOldMan 2017-12-21
  • 打赏
  • 举报
回复
引用 8 楼 minsic78 的回复:
执行 sqlplus "/as sysdba" 试试
麻烦您再帮看看,谢谢
minsic78 2017-12-21
  • 打赏
  • 举报
回复
执行 sqlplus "/as sysdba" 试试
ChinaITOldMan 2017-12-21
  • 打赏
  • 举报
回复
引用 6 楼 minsic78 的回复:
不过我猜你这问题不会这么就解决了 如果有问题,最好把你的操作包括错误信息之类的都截图上传
我做了如图的操作还是有问题,谢谢,请问怎样处理
minsic78 2017-12-21
  • 打赏
  • 举报
回复
不过我猜你这问题不会这么就解决了 如果有问题,最好把你的操作包括错误信息之类的都截图上传
minsic78 2017-12-21
  • 打赏
  • 举报
回复
cmd设置环境变量,就是你sqlplus登录前设置
ChinaITOldMan 2017-12-21
  • 打赏
  • 举报
回复
引用 3 楼 minsic78 的回复:
[quote=引用 2 楼 mcxhh2005 的回复:] [quote=引用 1 楼 misswangjinfeng 的回复:] 看下监听服务开启没有
引用 1 楼 misswangjinfeng 的回复:
看下监听服务开启没有
我用sqlplus system/Oracle11g@10.10.1.10:1521/orcl11g 可以登录Oracle数据库,说明监听服务器是开启的吧,若没开启,这个命令也用不了吧。[/quote] 因为你第二种方式是不走监听的。 在使用第二种方式前,先确认下ORACLE_SID设置是否正确,若不是,则先set ORACLE_SID=xxx ,其中xxx为实例名,在windows单机库上,通常与服务名一致[/quote]
引用 3 楼 minsic78 的回复:
[quote=引用 2 楼 mcxhh2005 的回复:] [quote=引用 1 楼 misswangjinfeng 的回复:] 看下监听服务开启没有
引用 1 楼 misswangjinfeng 的回复:
看下监听服务开启没有
我用sqlplus system/Oracle11g@10.10.1.10:1521/orcl11g 可以登录Oracle数据库,说明监听服务器是开启的吧,若没开启,这个命令也用不了吧。[/quote] 因为你第二种方式是不走监听的。 在使用第二种方式前,先确认下ORACLE_SID设置是否正确,若不是,则先set ORACLE_SID=xxx ,其中xxx为实例名,在windows单机库上,通常与服务名一致[/quote] 不好意思是刚学习Oracle,请问在哪里查看ORACLE_SID设置是否正确? 若不是则先 set ORACLE_SID=xxx ;若要set ORACLE_SID=xxx 是先要登录到Oracle在设置,麻烦截图告诉下,麻烦您了 !
minsic78 2017-12-21
  • 打赏
  • 举报
回复
引用 2 楼 mcxhh2005 的回复:
[quote=引用 1 楼 misswangjinfeng 的回复:] 看下监听服务开启没有
引用 1 楼 misswangjinfeng 的回复:
看下监听服务开启没有
我用sqlplus system/Oracle11g@10.10.1.10:1521/orcl11g 可以登录Oracle数据库,说明监听服务器是开启的吧,若没开启,这个命令也用不了吧。[/quote] 因为你第二种方式是不走监听的。 在使用第二种方式前,先确认下ORACLE_SID设置是否正确,若不是,则先set ORACLE_SID=xxx ,其中xxx为实例名,在windows单机库上,通常与服务名一致
ChinaITOldMan 2017-12-21
  • 打赏
  • 举报
回复
引用 1 楼 misswangjinfeng 的回复:
看下监听服务开启没有
引用 1 楼 misswangjinfeng 的回复:
看下监听服务开启没有
我用sqlplus system/Oracle11g@10.10.1.10:1521/orcl11g 可以登录Oracle数据库,说明监听服务器是开启的吧,若没开启,这个命令也用不了吧。
加载更多回复(1)
TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误 TNS-00511: 无监听程序 文章转自:http://www.luocs.com/archives/464.html 此文版权归作者 – yaogang所有,转载请注明yaogang©www.luocs.com。 Luocs说:这是我一个朋友的一个监听器问题解决案例,这是昨天发生的事情,我一直跟朋友一起Troubleshooting,折腾了半天最后是BUG所致。再次汗颜,Windows平台惹不起啊!好,那么下面开始分享我朋友的案例! 环境描述: OS : Windows Server 2008 64Bit (做了HA) DB : 11.1.0.7.0 排错过程: 前天应用不能访问数据库了 (后台应用能访问数据库),故障发生。 马上登录到服务器里查看监听状态,发现有TNS-12541 ,TNS-12560错误 Luocs补充:我跟朋友要了错误代码,但他没有保存,就直接贴图。 从计算器的管理 –> 服务选项 –> 检查oracle 监听服务程序,发现该服务已经停止。 手动把监听服务启动,这时候服务状态上显示为已启动,但在CMD窗口执行lsnrctl status的时候依然返回错误信息: C:\>lsnrctl status LSNRCTL for 64-bit Windows: Version 11.1.0.7.0 - Production on 12-11月-2012 18:1 8:32 Copyright (c) 1991, 2008, Oracle. All rights reserved. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.10.203.218)(PORT=1521))) TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误 TNS-00511: 无监听程序 64-bit Windows Error: 61: Unknown error 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) 过段时间回显非常慢。 然后我检查了下告警日志,大量的ora错误 Fatal NI connect error 12170. VERSION INFORMATION: TNS for 64-bit Windows: Version 11.1.0.7.0 - Production Oracle Bequeath NT Protocol Adapter for 64-bit Windows: Version 11.1.0.7.0 - Production Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 11.1.0.7.0 - Production Time: 12-11月-2012 15:23:33 Tracing not turned on. Tns error struct: ns main err code: 12535 TNS-12535: TNS: 操作超时 ns secondary err code: 12560 nt main err code: 0 nt secondary err code: 0 nt OS err code: 0 Client address: ORA-609 : opiodr aborting process unknown ospid (4116_6104) 这时候朋友怀疑是不是监听器配置问题,就把原先的监听器删除重建了下,问题依然。 网上有个解决TNS-12535错误的案例,平台和版本都很类似,如下: 1、在 sqlnet.ora文件中 增加如下行: DIAG_ADR_ENABLED = OFF 2、在listener.ora文件中增加如下行: DIAG_ADR_ENABLED_ = OFF 如何监听是listener时,则前面的名称为:DIAG_ADR_ENABLED_LISTENER = OFF 3、重新启动windows服务管理中的监听程序.先停止,然后再重新启动. 4、检查结果.发现可以了,返回的值在10毫秒.有时为0毫秒.成功!! 但这并不是问题发生原因,在继续排查过程中偶然发现监听日志大小居然为4G。然后把这现象告诉了Luocs。 过了一会儿,Luocs回应是

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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