无法与SQL开发人员连接到Oracle数据库,SQL * Plus工作正常

时间:2016-11-24 15:14:49

标签: oracle sqlplus oracle12c

当我在Windows命令行上调用net start OracleServiceORCL时,我得到了

  

请求的服务已经启动。

当我在命令行运行sqlplus时,我可以成功登录我的数据库。

但是,当使用SQL Developer以相同的凭据连接到数据库时,我收到错误

  

I / O错误:网络适配器无法建立连接。

     

供应商代码:17002

当我启动连接到数据库的应用程序服务器时,会发生同样的错误。

我已经能够使用SQL开发人员或启动我的服务器但不知道从那以后发生了什么变化。我怎样才能让它再次运作?

2 个答案:

答案 0 :(得分:0)

这些可能有很多原因。您可以开始检查您的侦听器状态。检查Oracle侦听器是否正在为您的数据库运行。即使监听器停止,sqlplus也可以连接到你的数据库,我不知道它是怎么做的。但是如果监听器没有运行,它将禁用像sqldeveloper这样的客户端,即使它位于同一台机器上也可以找到你的数据库。

> lsnrctl services 

答案 1 :(得分:0)

您使用什么样的连接? Oracle客户端可以通过TCP或遗留连接使用两种类型的连接。

在运行数据库的同一主机上使用sqlplus时,通常会sqlplus / as sysdba这将使用bequeauth创建连接。 Bequeauth完全绕过监听器并直接生成一个子进程,该进程将处理对DB的请求。

如果您使用类似于此sqlplus username@host的sqlplus,则使用TCP通过侦听器进行连接,该侦听器处理将与数据库通信的连接和生成进程。

默认情况下,Oracle侦听器在端口1521上运行,因此我首先猜测侦听器是否正在运行,防火墙阻止访问1521.

你应该尝试使用第一个bequeatuh然后通过监听器连接到db,如果bequeauth工作并且TCP连接没有问题可能在侦听器和网络之间。 (您也可以设置sqldeveloper以使用bequeauth,但必须与DB安装在同一主机上)

如果一切正常,您可以使用lsnrctl status检查侦听器状态检查侦听器日志文件下列出的文件,以查看是否通过侦听器建立了任何连接,或者是否有任何连接出现错误。