2010-04-29 75 views
6

我有錯誤?我的pl/Sql開發人員說我的oracle數據庫找不到服務描述符但是,當我做一個檢查聽衆時,我得到這個錯誤。Oracle TNS問題?

LSNRCTL> start 
Starting tnslsnr: please wait... 

Service OracleOraDb10g_home1TNSListener already running. 
TNS-12560: TNS:protocol adapter error 
TNS-00530: Protocol adapter error 



LSNRCTL> status 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP 
TNS-12541: TNS:no listener 
TNS-12560: TNS:protocol adapter error 
    TNS-00511: No listener 
    32-bit Windows Error: 61: Unknown error 

我的listener.ora的內容是

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (GLOBAL_DBNAME = Oracle10g) 
     (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) 
     (SID_NAME = ORCL) 
    ) 
) 

LISTENER = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
) 

和 在tnsnames.ora內容是這樣的

# tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora 
# Generated by Oracle configuration tools. 

VMOBILE = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVICE_NAME = orcl) 
    ) 
) 

VMOBILEMASTER = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVICE_NAME = ORCL) 
    ) 
) 

ORCL = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVER = SHARED) 
     (SERVICE_NAME = ORCL) 
    ) 
) 

EXTPROC_CONNECTION_DATA = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    ) 
    (CONNECT_DATA = 
     (SID = PLSExtProc) 
     (PRESENTATION = RO) 
    ) 
) 

請我對這些晚上的最後期限。請幫忙。

+0

請發佈您的SQLNET.ORA文件。這可能是問題的一部分。當這個文件配置不正確時,我看到了這個錯誤。 – Karlomanio 2016-05-24 16:59:10

回答

2

這可能是一個配置問題,這意味着我們很難遠程解決。你需要檢查的兩件事是

  1. LISTENER.ORA文件符合您TNSNAMES.ORA文件
  2. 的信息在你的hosts文件是正確的條目。

這是您嘗試連接的本地或遠程數據庫嗎?

編輯

的hosts文件(Windows環境)是在地方,比如

C:\WINDOWS\system32\drivers\etc 

顯然,這取決於(不同的驅動器號或別的什麼)你的環境是如何設置的。

編輯

您需要GLOBAL_DBNAME聽者文件到SERVICE_NAME匹配在tnsnsames文件即ORCL

+0

我嘗試了主機文件,並且它已正確安裝。 CAn您幫助審查TNSname.ora文件和我上面張貼的LISTENER.ORA是它的順序。 – persistence 2010-04-29 10:47:21

0

該錯誤可能是在listener.ora文件。嘗試用(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))的行替換localhost,其中名稱或運行偵聽器的服務器的IP編號。

+0

我試過你的建議仍然有相同的錯誤。 LSNRCTL>啓動 開始TNSLSNR:請稍候... 服務OracleOraDb10g_home1TNSListener已經在運行。 TNS-12560:TNS:協議適配器錯誤 TNS-00530:協議適配器錯誤 – persistence 2010-04-29 11:01:35

+0

如果您執行'lsnrctl reload' – 2010-04-29 11:05:34

0

我會用任何ipconfig替換本地主機告訴你是你使用的IP地址。

0

不幸的是,這個錯誤可能發生在各種情況下。

  1. Oracle數據庫服務(OracleServiceXE或您正在使用的任何版本)實際上並未運行。
  2. 用戶試圖在非管理員帳戶下運行TNSListener服務,從而阻止它註冊關聯的Windows服務。
  3. 由於機器上有多個ORACLE_HOME,導致衝突。
  4. 服務或配置設置沒有任何問題,但在Windows服務器重新啓動之前,TNSListener服務無法成功啓動。
0

我已經運行LSNRCTL從CMD.EXE開始今天解決此錯誤消息,啓動「系統管理員」。

我在listener.ora和tnsnames.ora中有'localhost'服務器。另外我在SQL.ini中有SQLNET.AUTHENTICATION_SERVICES =(NONE)

在我嘗試使用LSNRCTL.EXE之前,我沒有在Windows服務列表中偵聽servise。 LSNRCTL開始來自管理員cmd的命令爲我做。