

点击蓝色字关注“SQL数据库运维”,回复“SQL”获取2TB学习资源!
记录一下 ORA-12560: TNS: 协议适配器错误的解决方法。
问题:Oracle数据库安装完成后,都正常运行了一段时间了,突然发现数据库就无法登陆了,在Oracle安装服务器本地cmd中执行sqlplus as sysdba,结果就提示:ORA-12560,协议适配器错误。

一、百度常见解决方案
该问题,常见百度到的解决方案有三种,我们依次来解答看看。
解决方法,服务列表中启动监听服务。

实际解决情况:该OracleOraDb11g_home1TNSListener服务本就是启动状态,重新启动该服务后,报错未解决。
第二种,Oracle 服务未启动,服务名为:OracleServiceORCL
(PS:ORCL对应大家配置的实例名)

实际情况:OracleServiceORCL 服务是自启动且运行状态,且重启该服务,错误仍未解决。
第三种,OracleDBConsoleorcl服务未启动
解决方法:重启该服务

总结:三种方法
该三种解决方式,无疑都是怀疑Oracle运行必要的3个服务没有启动,或者是出现异常,重启后就能解决。事实未能解决,那么来看其他方法。

网上另一个说法较多的,就是数据库实例名存在更改情况。但是,这种情况的几率我个人认为是零,因为实例名在安装时就进行了设定,已经注册到注册表中了,一般的用户只是正常使用数据库,修改实例名此类复杂的操作根本就不会,更别提存在误修改操作的问题了。但是呢,我们这里还是来看一看。
首先看下服务OracleServiceORCL,OracleService后面跟着的就是实例名orcl。

其次,快捷键"Window+R",运行regedit,打开注册表,然后打开路径HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1,查看环境变量ORACLE SID设置的值就是你的databaseSID我的这里就是orcl,和服务里的是一致的。也就是说排除了实例名修改的问题。还有一种方法也可以试试,鼠标右击我的电脑,属性–高级系统设置–环境变量—系统变量–新建,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID。

三、大神级处理方法
本地环境变量path的值为:C:\app\Administrator\product\11.2.0\client1\bin;D:\appClient64\Administrator\product\11.2.0\client 64\bin;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
看出了两个问题:
第二个,数据库服务端的路径没有单独配置oracle_home环境变量
解决方案
添加独立的oracle_home环境变量,变量值为路径:C:\app\Administrator\product\11.2.0\dbhome_1



点击关注“SQL数据库运维”,后台或浏览至公众号文章底部点击“发消息”回复关键字:进群,带你进入高手如云的技术交流群。后台回复关键字:SQL,获取学习资料。
动动小手点击加关注呦☟☟☟