You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle数据库连接后5分钟断开,ORA-12514错误反复出现求助

ORA-12514 连接5分钟后断开问题排查与解决

错误现象

初始连接数据库后可正常访问5分钟,之后连接断开并抛出以下错误:

Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
(CONNECTION_ID=)

重启数据库后重复上述现象:正常访问5分钟,随后因相同错误断开。

排查与解决步骤

1. 验证数据库服务的动态注册状态

动态注册失效是这类问题的常见原因。登录数据库执行以下命令检查配置:

sqlplus / as sysdba
show parameter local_listener;
show parameter remote_listener;
  • 若local_listener未设置或配置错误,数据库无法持续向监听器注册服务。手动指定监听器地址并强制注册:
    alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=你的数据库主机名)(PORT=1521))' scope=both;
    alter system register;
    

2. 分析日志定位根因

查看监听器日志和数据库告警日志,寻找5分钟左右出现的异常信息:

  • 监听器日志默认路径:$ORACLE_BASE/diag/tnslsnr/[主机名]/listener/trace/listener.log
  • 数据库告警日志默认路径:$ORACLE_BASE/diag/rdbms/[数据库名]/[数据库名]/trace/alert_[数据库名].log
    重点关注服务注销记录、进程异常终止、资源耗尽等日志条目。

3. 检查数据库资源限制

连接数或内存不足可能导致服务异常注销:

  • 查看当前连接数与进程上限:
    select count(*) from v$session;
    show parameter processes;
    
  • 若连接数接近processes上限,调整参数(需重启数据库):
    alter system set processes=200 scope=spfile;
    
  • 检查SGA、PGA内存使用情况,确认是否存在内存不足导致的进程被系统回收问题。

4. 配置静态服务注册(兜底方案)

若动态注册持续失效,在listener.ora中添加静态注册配置:

# 路径:$ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = 你的服务名)
      (SID_NAME = 你的数据库SID)
      (ORACLE_HOME = /你的Oracle安装路径)
    )
  )

修改后重启监听器:

lsnrctl stop
lsnrctl start

5. 排查操作系统层面限制

  • 检查防火墙规则,确认是否存在5分钟后阻断数据库与监听器通信的策略;
  • 验证操作系统进程限制,确认数据库相关进程未被系统强制回收。

内容的提问来源于stack exchange,提问作者Jim Macaulay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 20:45:37