之前创建两个数据库实例玩,然后将其中的一个实例又删除掉,然后再重新用doc连接数据库,发现oracle11竟然无法连接了,如下所示:

SQL*Plus: Release 11.2.0.3.0 Production on 星期二 3月 20 09:01:51 2018

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

SQL> conn system/oracle as sysdba

ERROR:

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

查了下电脑的服务,发现所的oracle服务确都已经启动了,如图
001.png

但是连接时还是报错,重启服务好几次了也没有得到解决,最后重启了下电脑,结果还是一样,最后看网上的,说可能是注册表的问题

按Win+R,输入regedit进入到注册表然后进入HKEY_LOCAL_MACHONESOFTWAREORACLE然后点击KEY_OraDb11g_home1,如下 一看,呵呵,ORACLE_SID的数据值什么时候变成了sss(删除的那个实例名)了,电脑上的服务的列表中明明是当初安装时自己命名的oracle11g啊,然后把它改了回来。ORACLE_SID,设置为你database SID。
002.png

打开链接
003.png

Ok了。

在网上还有另一种做法

右击我的电脑,属性--高级--环境变量---系统变量--新建,变量名=oracle_sid,

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

输set oracle_sid=XXXX,XXXX就是你的database SID.

经过以上步骤,就可以解决问题