簡體   English   中英

Oracle數據庫連接錯誤偵聽器拒絕了連接

[英]Oracle Database Connection Error Listener Refused the Connection

我剛剛在我的工作開發計算機上安裝了Oracle 11g,該計算機具有Windows 7 64位,並且在設置了域的網絡上。 當我嘗試使用SQL Developer連接到“ XE”數據庫/ SID時,出現以下錯誤列表。

有任何想法嗎?

我已經在網上進行了研究,並嘗試了許多建議的解決方案,但無法使其正常工作。 我可以確認以下幾點:

  1. 數據庫啟動。 我可以使用SQL Plus進行連接。
  2. OracleServiceXE和OracleXETNSListener服務均已啟動
  3. Internet信息系統(IIS)已安裝並正常運行。
  4. 除了無法與SQL Developer連接之外,當我使用“入門” Web應用程序時,它不起作用。

首次嘗試連接時,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

我從一個朋友的朋友那里得到了幫助。 這是他的所作所為。

首先,請注意,他獨自保留了“ listener.ora”文件中的設置。 相反,他在命令提示符下執行了以下所有操作。

步驟1:直接在命令提示符下以“ sysdba”身份運行SQL Plus,以在命令提示符下模擬SQL Plus。

C:\windows\system32>sqlplus / as sysdba

步驟2:輸入以下SQL Plus命令以驗證數據庫名稱(即全局名稱或SID)。 返回值為“ XE”。

SQL> select * from global_name;

步驟3:輸入以下SQL Plus命令將列表設置為使用“本地主機”作為“主機”。 顯然,偵聽器將覆蓋“ 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM