111

今天遭遇ORA-12560: TNS: 协议适配器错误的问题,经过一番努力问题已经解决,与大家共享。
造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:
1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,

启动oraclehome92TNSlistener服务。
2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务

面板,启动oracleserviceXXXX,XXXX就是你的database SID.
3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINESOFTWAREORACLEHOME0将该环境变量ORACLE_SI

D设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建

,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下

输set oracle_sid=XXXX,XXXX就是你的database SID.
经过以上步骤,就可以解决问题。


以上是我从it_pub上得到的解答,我用的是第三招,改注册表来解决这个问题的.
导致问题的可能原因:安装新数据库的时候没有成功,把原来注册表中的oracle_sid变量冲掉了.

question:
-----------------------------------------------------------
以前安装Oracle一般没有遇到类似问题, 只是在XP上面安装偶尔遇到, 这次在win2003和win2000 server上面分别安装, 都遇到同样问题, 进入数据库创建阶段, 图形界面停止, CPU占用100%, 利用任务管理器停止, 发现例程在服务当中已经注册, 利用oradim -delete -sid ... 删除以后, 重新启动机器, 利用数据库创建助手存盘BAT文件, 然后分析发现, 建立例程以后, 启动svrmgrl显示错误: ora-12560: tns: 协议适配器错误.

在网络上面反复查询只有一个地方提示: 可能是因为Terminal Service的问题, 并且pcAnywhere等远程控制软件则没有问题, Oracle也不准备就此给出解决, 为此我禁止并且卸载了终端服务以后, 问题依旧存在, 此时监听器服务和先前创建的例程已经成功启动, 由于无法启动svrmgrl, 造成无法继续创建数据库, 各位能否给我一些建议和帮助.

另外利用netstat -a 发现1521端口已经正在监听, 应该不会存在端口占用问题吧, 谁可以告诉我srmgrl启动分别经过哪些步骤, 哪一步造成12560错误???

-----------------------------------------------------------
answer1:

①.检查Terminal Service, 远程桌面是不是起因
②.环境变量set oracle_sid=需要的服务名
③.listener.ora, tnsnames.ora等内机器名或者IP地址是否正确
④.netstat –a检查端口是否被占用
⑤.检查注册表HKEY_LOCAL_MACHINESoftwareOracleHome0新增字符串USE_SHARED_SOCKET=TRUE, 重新启动服务

问题解决, 看起来还是要靠自己, 还有E文资源找到的, 简体的是不指望了.
Post Oracle安装/配置/入门 有关ORA12560: TNS:协议适配器错误 的问题

请使用浏览器的分享功能分享到微信等