ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
下午,正在划水,老大一个电话过来,远程的应用怎么不行了?服务器宕机了?你看看啥原因。
首先,v*n连接远程堡垒机,可以接入服务器(并没有宕机),打开应用,没有问题。查找日志,发现一堆数据库连接失败的错误代码。直接通过PLSQL登陆,结果发现数据库已经登不上了,报以下错误:
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
以下是解决方案:
1,尝试重启数据库监听服务;(大部分情况没用)
2,找到tnsnames.ora的存放目录,一般为D:\app\Administrator\product\11.2.0\client_1\NETWORK\ADMIN;(看你安装情况确定)
HOST后面可以跟具体IP地址也可以直接跟自己本机名称。如果ip不对改正。(正常情况改过一次不会出现问题了,除非有小可爱偷偷改了)
3,检查确认数据库实例是否启动了;(select status from v$instance)
4,检查网络是否正常,ping的通么?telnet行么?tnsping正常么?(我是本机肯定没问题)
5,打开监听文件listener.ora,路径一般和tnsnames一样;(这也没问题啊!)
扩展: LISTENER部分包含协议地址列表,每个实例一个入口 |
7,查看sqlnet.ora 文件,sqlnet.ora 文件的存放路径一样在network/admin中(这个文件用于配置网络连接时所使用的连接方式等,到这儿我已经开始抓狂了):
NAMES.DEFAULT_DOMAIN = localdomain
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
扩展:
NAMES.DEFAULT_DOMAIN 指定网络域名 ;
NAMES.DIRECTORY_PATH 指定当解析客户端连接标识符时命名方法 ;
具体解释,传送门:https://www.cnblogs.com/mengxiaohu/p/7727954.html
8,求助大佬,传送门:https://www.cnblogs.com/kerrycode/p/6698791.html (提供了一个思路,监听文件里面如果host用的是本机的name 那么最好看一下etc/hosts里面的配置是否还是本机的ip地址,但是我这本机没动过啊!所以还是没搞定)
9,就在我苦苦找寻解决思路的同时,瞥了一眼应用。这家伙居然又连上了!(噗!心中郁闷可想而知)