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

SQL Developer调试遇ORA-12535超时,需开放4000端口吗?

关于SQL Developer调试ORA-12535及4000端口的问题解答

先直接给结论:不是必须开放4000端口,问题出在你当前的调试配置和实际使用的调试模式不匹配,下面详细拆解:

先搞懂两种调试模式的端口逻辑

SQL Developer调试PL/SQL有两种核心模式,对应完全不同的端口要求:

  • JDWP模式(默认推荐):这就是你看到的CALL DBMS_DEBUG_JDWP.CONNECT_TCP( '10.50.10.117', '62378' )这类语句对应的模式。它不需要4000端口,而是使用随机生成的端口(比如你的62378、62388),原理是数据库服务器主动发起连接回SQL Developer所在的客户端机器的这些随机端口。
  • 旧版调试协议模式:当你添加AddVMOption -DDatabaseDebuggerDisableJDWP=true时,就强制启用了这种旧模式,它才需要开放4000端口(客户端和数据库服务器之间的双向通信),依赖DBMS_DEBUG包而非JDWP。

你的当前问题根源

你加了禁用JDWP的配置,但调试会话却在生成JDWP的连接调用,这就导致了模式冲突:
SQL Developer被配置成要用旧模式(需要4000端口),但实际调试时却在尝试触发JDWP连接,两边不匹配,自然出现ORA-12535超时错误。

针对性解决方案

你有两个选择,二选一即可:

选择1:继续使用JDWP模式(推荐,更稳定)

  • 删掉sqldeveloper.conf里的AddVMOption -DDatabaseDebuggerDisableJDWP=true这行配置,重启SQL Developer。
  • 确保你的网络环境允许数据库服务器访问SQL Developer所在机器的随机端口(比如62378、62388这类):
    • 检查客户端机器的防火墙,放开这些随机端口的入站规则;
    • 检查数据库服务器端的防火墙,放开对客户端IP这些端口的出站规则;
    • 可以在数据库服务器上执行telnet 10.50.10.117 62378测试连通性,能通就说明网络没问题。

选择2:坚持使用旧版调试协议模式

  • 保留-DDatabaseDebuggerDisableJDWP=true配置,同时必须开放4000端口的双向通信(客户端↔数据库服务器)。
  • 确保数据库端给你的用户授予了DBMS_DEBUG包的执行权限,比如执行:GRANT EXECUTE ON DBMS_DEBUG TO your_username;
  • 在SQL Developer的调试设置里确认已经切换到旧模式(路径:Tools → Preferences → Debugger,检查相关选项是否指向旧协议)。

额外排查点

ORA-12535本质是网络超时,所以不管选哪种模式,都要先确认对应端口的网络连通性:

  • 用ping测试客户端和数据库服务器的基础连通性;
  • 用nc -zv <目标IP> <端口>(Linux)或Test-NetConnection <目标IP> -Port <端口>(Windows PowerShell)测试端口是否能正常访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:22:53