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

时间:2017-02-01 01:18:33

标签: oracle oracle11g database-connection

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

有什么想法吗?

我在网上进行了研究并尝试了一些建议的解决方案,但无法使其发挥作用。我可以确认以下内容:

  1. 数据库已启动。我可以使用SQL Plus进行连接。
  2. OracleServiceXE和OracleXETNSListener服务均已启动
  3. Internet信息系统(IIS)已安装并正常运行。
  4. 除了无法与SQL Developer连接外,当我使用“入门”Web应用程序时,它不起作用。
  5. 当我第一次尝试连接时,SQL Developer中的设置如下:

    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\11.2.0\server)
              (PROGRAM = extproc)
            )
            (SID_DESC =
              (SID_NAME = CLRExtProc)
              (ORACLE_HOME = C:\Oracle\oraclexe\app\oracle\product\11.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)
    

    当我看到主机名不同时,我首先尝试在“mycomputername.abc.de.mycompany.com”中更改listener.ora文件中的“HOST”。到“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
    

1 个答案:

答案 0 :(得分:0)

我找到了朋友的朋友的帮助。这就是他所做的。

首先,请注意他将设置保留在" listener.ora"单独归档。相反,他在命令提示符下完成了以下所有操作。

步骤1:直接从命令提示符运行SQL Plus,作为" sysdba"在命令提示符下模拟SQL Plus。

C:\windows\system32>sqlplus / as sysdba

步骤2:输入以下SQL Plus命令以验证数据库名称(即全局名称或SID)。返回值为" 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;

步骤5:在命令提示符下退出SQL plus模拟。

SQL> exit