今天重装系统后,因为这个问题卡了我一些时间。为了让大家不走我的弯路,

同时也方便自己日后查阅,写本文记录一下。

一、问题出现情景以及错误代码 ORA-12514

        开发电脑,需要连接安装在其他服务器上的Oracle数据库,所以安装了数据客

户端11gR2client(ps:安装的时候要不要偷懒,要选择“管理员”安装类型,因为

这样才会有配置数据库服务要用到的Net Configuration Assistant),然后用

Net Configuration Assistant配置数据库,配置完成之后,提示如下错误:

ORA-12514 监听程序当前无法识别连接符中请求的服务 解决

二、问题推断

以为是:

1、缓存之类的问题,删除了缓存,重启了电脑,还是出现这样的问题;

2、配置错误,删除了Net Configuration Assistant上的本地网络服务配置,重新配置,问题依旧;

3、客户端安装出现故障,概率极小,但是还是尝试重新安装了Oracle客户端,问题依旧。

三、找到问题

网上查询资料,找了几种解决的思路:

1、配置开发电脑的环境变量;

2、修改数据库服务端的istener.ora、tnsnames.ora文件内容

3、配置开发电脑的PLSQL的tnsnames.ora文件路径

4、修改tnsnames.ora内容

结合找到的几种可能的方案,仔细回忆Net Configuration Assistant配置过程,最后发现是我混淆

网络服务名、服务名!其实这两个东西是不一样的!

ORA-12514 监听程序当前无法识别连接符中请求的服务 解决

ORA-12514 监听程序当前无法识别连接符中请求的服务 解决

如果对数据库配置不熟悉的话,这两个最好配置成一样的,我就是把这两个设置反了,才会出现问题。

四、分析解决问题

找到数据库客户端安装路径(D:\app\Administrator\product\11.2.0\client_1\network\admin)下的tnsnames.ora

用记事本或者其他文本工具打开,如下:

ORA-12514 监听程序当前无法识别连接符中请求的服务 解决

其中,我这里配置的CLOUDHIS是本地的,想起什么样子就什么样子的,会显示在PLSQL客户端登录界面的“数据库”后面

ORA-12514 监听程序当前无法识别连接符中请求的服务 解决

而ORCL则是服务器端的,我推断这个ORCL应该也是可以在服务端自定义配置的,客户端只能按照服务端的来配置,

知道问题了,修改完毕,点击登录,熟悉的界面出来了!

ORA-12514 监听程序当前无法识别连接符中请求的服务 解决

五、总结

    服务名是服务端配置的,对应tnsnames.ora文件里的SERVICE_NAME

    网络服务名,是客户端机器给连接到数据库的这个连接的命名,可以随便定义,定义了会显示在PLSQL的登录界面选择。

    遇到问题,先观察、冷静分析报错信息,尝试解决,解决不了再根据报错信息查询资料,一定不要慌,眉毛胡子一把抓。

 

 

相关文章: