Oracle 数据库连接错误侦听器拒绝连接

Oracle Database Connection Error Listener Refused the Connection

我刚刚在我的工作开发计算机上安装了 Oracle 11g,该计算机具有 Windows 7 64 位并且位于设置了域的网络上。当我尝试使用 SQL Developer 连接到 "XE" database/SID 时,出现以下错误列表。

有什么想法吗?

我已经在线研究并尝试了一些建议的解决方案,但无法使其工作。我可以确认以下内容:

  1. 数据库已启动。我可以使用 SQL Plus 进行连接。
  2. OracleServiceXE 和 OracleXETNSListener 服务都已启动
  3. Internet 信息系统 (IIS) 已安装并正常工作。
  4. 除了无法与 SQL Developer 连接外,当我使用 "Get Started" 网络应用程序时,它也不起作用。

第一次尝试连接时,SQLDeveloper中的设置如下:

Hostname: localhost
Port: 1521
SID: xe

但是,我收到以下错误:

Status : Failure -Test failed: Listener refused the connection with the following error: ORA-12505

经过研究,我发现我应该查看 "listner.ora" 文件中的侦听器端点(无论是什么意思)并确认主机名。该文件包含以下内容:

SID_LIST_LISTENER =
    (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = C:\Oracle\oraclexe\app\oracle\product.2.0\server)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = C:\Oracle\oraclexe\app\oracle\product.2.0\server)
          (PROGRAM = extproc)
        )
      )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = mycomputername.abc.de.mycompany.com.)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

当我看到主机名不同时,我首先尝试将 listener.ora 文件中的 "HOST" 从 "mycomputername.abc.de.mycompany.com." 更改为 "localhost",然后更改为“127.0.0.1 ”(请注意,前一个结尾确实有一个额外的句点)。这样做之后,我仍然收到相同的错误消息。

然后,我将所有内容恢复到 "listener.ora" 文件中的状态,转而转到 SQL Developer 并将我的登录信息更改为以下内容:

Hostname: mycomputername.abc.de.mycompany.com.   (again... there really is a period at the end)
Port: 1521
SID: xe

我什至只用 "mycomputername" 试过了。我再次收到错误消息:

Status : Failure -Test failed: Listener refused the connection with the following error: ORA-12505

我从朋友的朋友那里得到了帮助。这是他所做的。

首先,请注意他单独保留了 "listener.ora" 文件中的设置。相反,他执行了以下操作......全部来自命令提示符。

第 1 步:运行 SQL 直接从命令提示符添加为 "sysdba" 以模拟 SQL 在命令提示符中添加。

C:\windows\system32>sqlplus / as sysdba

第 2 步:输入以下 SQL Plus 命令以验证数据库名称(也称为全局名称或 SID)。 return 值为 "XE"。

SQL> select * from global_name;

第 3 步:输入以下 SQL Plus 命令以设置侦听器使用 'localhost' 作为 "HOST"。显然,侦听器将覆盖 "listner.ora" 文件中的设置。我想他说这是保存在数据库某处而不是保存在文件中。

SQL> alter system set LOCAL_LISTENER='(DESCRIPTION_LIST =  (DESCRIPTION = 
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)
(HOST = localhost)(PORT = 1521))))';

第 4 步:输入以下 SQL Plus 命令以注册您在上面第 3 步中设置的内容。

SQL> alter system register;

第五步:在命令提示符下退出SQL加模拟

SQL> exit