2016-06-12 733 views
0

我的問題始於空閒實例。我試圖用SQL Developer連接到我的本地XE實例。ORA-12514,TNS:偵聽器當前不知道連接描述符中請求的服務

我在Google上嘗試了很多鏈接,可能如果您提供了一些解決方案,我可以隨時告訴您,我嘗試過這些方法,但仍然期待解決此問題。

附加信息:在SQL Developer中

  1. 所有其他康恩字符串都工作得很好。
  2. 試圖重新啓動DB與/ NOLOG和所有.....
  3. 試過ALTER SYSTEM ....
  4. 我可以連接到ORCL(我的本地SID名)與SYS權限正確,唯一的問題是與假Oracle附帶的用戶HR。
  5. 我能解決原來閒置的實例問題
  6. 用的SQL * Plus與裸字符串連接:說明......給了我錯誤

    Error 6 initializing SQL*Plus 
    SP2-0667: Message file sp1<lang>.msb not found 
    SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory 
    
  7. 我的Oracle主是「C:\ APP \\產品\ 11.2.0 \ dbhome_1 \網絡\ ADMIN」

附件爲listener.ora中(第一行是註釋,但是當我把#在這麼果然大膽,所以請考慮被註釋掉):

#ADR_BASE_LISTENER = C:\app\387759 

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = CLRExtProc) 
     (ORACLE_HOME = C:\app\387759\product\11.2.0\dbhome_1) 
     (PROGRAM = extproc) 
     (ENVS = "EXTPROC_DLLS=ONLY:C:\app\387759\product\11.2.0\dbhome_1\bin\oraclr11.dll") 
    ) 
    (SID_DESC = 
     (GLOBAL_DBNAME = XE) 
     (ORACLE_HOME = C:\app\387759\product\11.2.0\dbhome_1) 
     (SID_NAME = ORCL) 
    ) 
) 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
) 

ADR_BASE_LISTENER = C:\app\387759\product\11.2.0\dbhome_1\log 

現在該錯誤CMD(如管理員)是:

ERROR: 
ORA-12154: TNS:could not resolve the connect identifier specified 

另外,有關條目(除了其他工作的人)tnsnames.ora中有:

LISTENER_ORCL = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 

ORACLR_CONNECTION_DATA = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
    (CONNECT_DATA = 
     (SID = CLRExtProc) 
     (PRESENTATION = RO) 
    ) 
) 

ORCL = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl.36.160.158) 
    ) 
) 

另外,請考慮我可以解決閒置的實例問題,因此它不再是。

387759 is my username to the machine. 

更多信息,只改變我做,同時固定空閒實例的問題,那就是從InitORCL.ora文件中刪除線

*.local_listener='LISTENER_ORCL' 

,然後從PFILE創建再次spfile中,但剛纔我再次將它添加到pfile中,然後創建spfile。

Cmd的行開始給我的錯誤:

SQL> startup  
ORA-00119: invalid specification for system parameter LOCAL_LISTENER  
ORA-00132: syntax error or unresolved network name 'LISTENER_ORCL'  
SQL> 

因此從理論上講,我回到我無法啓動Oracle實例的問題。

不能夠定位提到的位置PFILE(在評論)之後,我嘗試使用命令

show parameter spfile;

我得到了以下幾點:

SQL> show parameter spfile; ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0

一個額外的信息,我可以看到只有2服務運行在services.msc

OracleOraDb11g_home1TNSListener
OracleServiceORCL

我手動啓動它們時我需要使用本地的oracle,否則我會讓它們不能啓動模式來保存一些內存。其他Oracle相關的服務我剛關上幾乎所有的時間,並在這個時候,我得到這個error.Could幫助縮小問題

`

+0

您的本地偵聽器名稱不應使用單引號:'* .local_listener = LISTENER_ORCL'。 –

+0

感謝@AlexPoole,我試圖從spfile創建pfile,但無法在$ ORACLE_HOME/dbs中找到相同的文件。 – user3792812

+0

我可以再次在listener.ora中註釋ADR_BASE_LISTENER = C:\ app \ 行後運行它,如果這有助於任何人。 – user3792812

回答

0

你的ORACLE_HOME應C:\app\387759\product\11.2.0\dbhome_1。你TNS_ADMIN應該是C:\app\387759\product\11.2.0\dbhome_1\NETWORK\ADMIN - 該目錄包含您的listener.ora,sqlnet.ora中,tnsnames.ora中等等

如果你可以在本地連接爲SYS(例如,sqlplus/as sysdba),但它說你連接到一個空閒的情況下,則數據庫未運行。您需要啓動數據庫,因爲您在Windows上,所以還需要啓動OracleXE服務。

當數據庫啓動時,它將嘗試向監聽器註冊其服務名稱。默認it will try to use the network name of the server。您的偵聽器只在本地主機上偵聽,因此可能不匹配。它看起來像你試圖告訴它註冊該地址,但添加了單引號;它應該是:

*.local_listener=LISTENER_ORCL 

有了這能解決DB應該開始和登記對抗偵聽器,那麼你應該能夠在同一臺機器,例如連接搭配:

sqlplus userid/[email protected] 

sqlplus userid/[email protected]//localhost:1521/orcl.36.160.158 

...如果你tnsnames.ora服務名稱是正確的。同樣的值應該從SQL Developer工作。儘管如此,您將無法從其他任何地方連接,因爲在本地主機上偵聽的只有

+0

向問題添加新信息並設置其格式。作爲評論,它不屬於,也不容易閱讀。你是否讓這些變量與文件中的內容相匹配,即用387759部分留下了什麼問題? –

+0

謝謝,新信息添加到問題。 – user3792812

+0

有人可以幫助我:在編輯pfile> spfile創建後,我仍然無法克服以下情況。 SQL> startup ORA-00119:無效的系統參數規範LOCAL_LISTENER ORA-00132:語法錯誤或無法解析的網絡名稱'LISTENER_ORCL' SQL> – user3792812

相關問題