产生这个问题的原因是listener服务不正常,因此需要重建这个服务。
解决方法如下:
1、进入dos窗口,手工启动listener,无法启动;进入控制面板,手工启动listener服务,也无法启动。
2、删除listener服务:
打开注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
OracleTNSListener,删除它,重启机器后,控制面板的服务中listener服务已经没有了。
3、重启listener,并自动重建listener服务:
进入dos窗口执行:c:\lsnrctl start
listener正常启动。进入控制面板的服务中,listener服务已经被自动重建,并且状态为“已启动”。
如果cmd输入上述命令任然无法创建服务,可以在oracle配置和移植工具中找到Net Manager,新建一个监听器服务,新建的服务会自动启动。
先别高兴太早,因为新建的服务没有配置监听的数据库,可以使用lsnrctl status查看监听的数据库sid,一般情况下这里是没有的,所以你在sqlplus登录数据库的时候会碰到ERROR - ORA-12560: TNS:protocol adapter error的错误,需要这样操作。
Oracle Net Manager修改配置
在下图的Listeners->Database Services中配置要监听的SID及ORACLE_HOME,退出保存。