转载请注明作者(独孤尚良dugushangliang)出处:https://blog.csdn.net/dugushangliang/article/details/81835747
附注:
如此文未能解决问题,请移步另一篇:https://blog.csdn.net/dugushangliang/article/details/89513494
下为原答案:
本人及其win10系统,安装了虚拟机win7系统。近两日备受ora的折磨。安装后没有别人说的那么顺畅,总是告诉我:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
好吧,我也很无奈,千方百计求医问药。甚至在另一个终于不报错的机器上一点点对比,一点点设置,然而还是不行。后来就干脆按照找到的帖子一个个测验。
致谢:https://blog.csdn.net/mchdba/article/details/52949382
我原来看到这个好多次,自认为和我的问题没什么关联,所以之前一直就忽略过去了。而今万分无奈,只好一个个尝试。幸运的是,终于设置好了。
我的经验是,安装数据库的时候,什么设置都一点点记录下来,免得遗忘。我的oracle安装了多次了,有时候过一阵子没接触,管理员密码就不太确定了,也不知道是哪里的设置不对了还是密码不对了,这点oracle就不太友好了,只告诉你过不去,没告诉你原因。比如你去海关,就是不让你过,什么也不告诉你,也不知道是你和照片出入太大,还是被限制出境了,还是缺什么证件,还是他心情不好不想让你过去。所以不知道问题的原因,很难去解决这个问题。我是又重装了,把密码记录下来,如果要是系统哪天发神经不认了这个密码,那就另外想辙吧(一般是不会的,好记性不如烂笔头,白纸黑字的记录是有保障的)。
是的,安装的时候,设置的内容不只是密码,还有服务名、主机名什么的。记录下来最好,水平高的,后面也可以自己查看。作为小白,那就全记下来以免万一吧。
我虚拟机默认的服务名是orcl.168.238.128,主机名是192.168.238.128。安装完后,打开Net Manager,就是上图所示的。没有出现上图的连接测试成功,而是报的ora-12514。后来我去设置监听,打开Net Configuration Assistant,配置监听程序和本地网络服务名,一遍又一遍,怎么都不行。
主机名,localhost和ip(192.168.238.128)都试过。服务名,orcl,orcl.168.238.128也都试过。我能想到的都试了试。
我发现,sqlplus可以用normal连接数据库,但是as sysdba就又报这个错误了。
就是根据上文的网址,那个blog,我测验得到这个结论:
是的,我又在LISTENER块下面加了个SID_LIST_LISTENER块,对,GLOBAL_DBNAME。
所以我现在知道了,这样解决了我遇到的问题,但还不怎么知道其原因和原理。后续吧。
附注:服务器配置监听,客户端不配置监听。客户端的添加orcl,写好全局服务名。即orcl.168.238.128。
cmd中LSNRCTL命令,status查询监听状态:
独孤尚良dugushangliang——著