ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务问题原因及解决办法

问题描述

Oracle数据库执行导出命令时报错如下图,提示:ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务。

报错根本原因:监听程序里没有注册连接串里写的Oracle服务,UDE-12514只是导出工具包装的外层错误。

常见原因分析:

  1. 数据库实例没启动,没法动态注册服务到监听;

  2. 监听已经启动,但数据库实例还没自动注册,自动注册有短暂等待时间间隔;

  3. 数据库导出命令里的服务名写错。

排查步骤

在数据库服务器执行cmd打开命令提示符窗口,执行命令:

lsnrctl status

lsnrctl是Oracle的监听管理工具,这个命令可以查看监听有没有运行起来,监听的是什么端口,已经注册的服务有哪些。

执行结果如下:

从结果可以看到,监听里只有CLRExtProc这一个服务,没有Oracle数据库实例服务注册进来,这就是ORA-12514报错的原因,监听状态是正常的,但是数据库实例没有注册到监听程序。

在cmd窗口继续执行以下命令:

sqlplus / as sysdba

以操作系统认证的方式(不需要数据库账号密码),用SYSDBA权限登录数据库服务器本机Oracle实例,结果提示:ORA-12560:TNS;协议适配器错误,说明数据库实例服务没启动。

解决办法

Win+R 输入【services.msc】打开Windows服务列表,结果发现数据库实例服务没运行,直接启动即可。

再次执行命令:lsnrctl status,发现服务实例注册成功了,READY表示动态注册正常就绪,意即监听已经识别到ORCL数据库服务。

说明:

因为之前服务一直是启动状态,数据库备份每天在定时执行,所以这次报错并没有直接怀疑数据库实例是否还在运行的问题,经过排查才发现,数据库实例服务已经停止运行了。

相关推荐
牧瀬クリスだ1 小时前
Redis Hash实战:高效存储对象与购物车
java·数据库·redis·算法·哈希算法
A小码哥1 小时前
【外】水星3号实测 1068 token 每秒靠谱吗
数据库
qq_452396231 小时前
第六篇:《SQL 优化的艺术:从慢查询到毫秒级响应》
数据库·sql
ShineWinsu2 小时前
对于Qt:QWidget通用属性的解析—上
数据库·qt·microsoft·面试·gui·属性·qwidget
程序员塔塔喵2 小时前
【MySQL篇|第十篇】深分页问题
数据库·oracle·深分页问题
ClouGence3 小时前
SQL 效率天花板!开源 CloudDM,自带一站式 AI SQL 助手
数据库·sql·开源
Decay__3 小时前
附-01 · MySQL 压测与容量规划 —— sysbench 基准测试、容量评估与参数基线
运维·数据库·sql·mysql·架构
这个DBA有点耶3 小时前
主从切换报成功,业务却写不进去——数据层脑裂与应用层连接残留的两类假成功
数据库·架构·dba
qq_452396233 小时前
第八篇:《VACUUM、自动清理与膨胀治理》
jvm·数据库·oracle