今天重装系统后,因为这个问题卡了我一些时间。为了让大家不走我的弯路,
同时也方便自己日后查阅,写本文记录一下。
一、问题出现情景以及错误代码 ORA-12514
开发电脑,需要连接安装在其他服务器上的Oracle数据库,所以安装了数据客
户端11gR2client(ps:安装的时候要不要偷懒,要选择“管理员”安装类型,因为
这样才会有配置数据库服务要用到的Net Configuration Assistant),然后用
Net Configuration Assistant配置数据库,配置完成之后,提示如下错误:
二、问题推断
以为是:
1、缓存之类的问题,删除了缓存,重启了电脑,还是出现这样的问题;
2、配置错误,删除了Net Configuration Assistant上的本地网络服务配置,重新配置,问题依旧;
3、客户端安装出现故障,概率极小,但是还是尝试重新安装了Oracle客户端,问题依旧。
三、找到问题
网上查询资料,找了几种解决的思路:
1、配置开发电脑的环境变量;
2、修改数据库服务端的istener.ora、tnsnames.ora文件内容
3、配置开发电脑的PLSQL的tnsnames.ora文件路径
4、修改tnsnames.ora内容
结合找到的几种可能的方案,仔细回忆Net Configuration Assistant配置过程,最后发现是我混淆了
网络服务名、服务名!其实这两个东西是不一样的!
如果对数据库配置不熟悉的话,这两个最好配置成一样的,我就是把这两个设置反了,才会出现问题。
四、分析解决问题
找到数据库客户端安装路径(D:\app\Administrator\product\11.2.0\client_1\network\admin)下的tnsnames.ora
用记事本或者其他文本工具打开,如下:
其中,我这里配置的CLOUDHIS是本地的,想起什么样子就什么样子的,会显示在PLSQL客户端登录界面的“数据库”后面
而ORCL则是服务器端的,我推断这个ORCL应该也是可以在服务端自定义配置的,客户端只能按照服务端的来配置,
知道问题了,修改完毕,点击登录,熟悉的界面出来了!
五、总结
服务名是服务端配置的,对应tnsnames.ora文件里的SERVICE_NAME
网络服务名,是客户端机器给连接到数据库的这个连接的命名,可以随便定义,定义了会显示在PLSQL的登录界面选择。
遇到问题,先观察、冷静分析报错信息,尝试解决,解决不了再根据报错信息查询资料,一定不要慌,眉毛胡子一把抓。