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

ORA-12518错误求助:SQL Developer无法连接Oracle数据库

解决ORA-12518: TNS:listener could not hand off client connection问题

针对你遇到的SQL Developer无法连接但SQL Plus正常的情况,可尝试以下排查和解决步骤:

  • 检查数据库资源限制
    用SQL Plus登录后执行以下命令,确认进程数、会话数是否已达上限:

    SELECT resource_name, current_utilization, max_utilization, limit_value
    FROM v$resource_limit
    WHERE resource_name IN ('processes', 'sessions');
    

    如果current_utilization接近limit_value,需要修改processes和sessions参数(需重启数据库生效):

    ALTER SYSTEM SET processes = 200 SCOPE=SPFILE;
    ALTER SYSTEM SET sessions = 220 SCOPE=SPFILE;
    

    同时检查内存配置是否足够:

    SHOW PARAMETER sga_target;
    SHOW PARAMETER pga_aggregate_target;
    

    若内存不足,可适当调整参数值。

  • 修改监听器参数
    编辑listener.ora文件,添加或修改以下参数(将LISTENER替换为你的监听器名称):

    DIRECT_HANDOFF_TTC_LISTENER=OFF
    

    保存后重启监听器:

    lsnrctl stop
    lsnrctl start
    

    这个参数会禁用监听器直接移交连接给数据库进程,改用队列方式处理,常能解决这类移交失败问题。

  • 核对SQL Developer连接配置
    确认SQL Developer的连接类型与SQL Plus一致:

    • 如果SQL Plus用的是本地SID连接,SQL Developer可选择“本地/BEQ”连接类型,直接输入SID而非TNS名称;
    • 若用TNS连接,确保tnsnames.ora中的配置正确,可复制SQL Plus使用的连接字符串到SQL Developer中测试。
  • 查看日志定位具体原因
    检查监听器日志(默认路径:$ORACLE_BASE/diag/tnslsnr/[主机名]/[监听器名]/trace/listener.log)和数据库告警日志(默认路径:$ORACLE_BASE/diag/rdbms/[数据库名]/[数据库名]/trace/alert_[数据库名].log),日志中会记录更详细的失败原因,比如内存不足、进程创建失败等,有助于精准排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 17:15:10