解決oracle11g的ORA-12505問題


今天在使用SQL Developer的時候連不上去,報ORA-12505錯誤,但是SQLPLUS可以連接。

檢查服務名,是OracleServiceORCL,那SID應當就是orcl,但是使用該SID仍然無法連接。

查閱資料后解決方法如下:

1.  打開數據庫實例的目錄(我的是C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN)

找到listener.ora文件(listener監聽器進程的配置文件),使用文本編輯器打開。

內容如下:

[plain] view plaincopy
  1. # listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora  
  2. # Generated by Oracle configuration tools.  
  3.   
  4. SID_LIST_LISTENER =  
  5.   (SID_LIST =  
  6.     (SID_DESC =  
  7.       (SID_NAME = CLRExtProc)  
  8.       (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)  
  9.       (PROGRAM = extproc)  
  10.       (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")  
  11.     )  
  12.   )  
  13.   
  14. LISTENER =  
  15.   (DESCRIPTION_LIST =  
  16.     (DESCRIPTION =  
  17.       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))  
  18.       (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))  
  19.     )  
  20.   )  
  21.   
  22. ADR_BASE_LISTENER = C:\app\Administrator  


 

2.  添加SID信息(紅色字體部分)

[plain] view plaincopy
  1. # listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora  
  2. # Generated by Oracle configuration tools.  
  3. SID_LIST_LISTENER =  
  4.   (SID_LIST =  
  5.     (SID_DESC =  
  6.       (SID_NAME = CLRExtProc)  
  7.       (ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)  
  8.       (PROGRAM = extproc)  
  9.       (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")  
  10.     )  
  11.     <span style="color:#ff0000;">(SID_DESC =  
  12.       (GLOBAL_DBNAME = orcl)  
  13.       (ORACLE_HOME =  C:\app\Administrator\product\11.2.0\dbhome_1)  
  14.       (SID_NAME = orcl)  
  15.     )  
  16. </span>  )  
  17. LISTENER =  
  18.   (DESCRIPTION_LIST =  
  19.     (DESCRIPTION =  
  20.       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))  
  21.       (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))  
  22.     )  
  23.   )  
  24. ADR_BASE_LISTENER = C:\app\Administrator  

3.  重新啟動 OracleServiceORCL 和 OracleOraDb11g_home1TNSListener 服務。最后試一試,連接成功!

附:

PL/SQL DEVELOPER 和 SQLPLUS 采用 service_name 進行連接

而應用程序是按照 sid_name 進行連接,所以出現 PL/SQL DEVELOPER和SQLPLUS 能夠連接而應用程序卻無法連接的問題。

使用 SELECT INSTANCE_NAME FROM V$INSTANCE 語句,就可以查看當前數據庫實例的sid_name了。

出處:http://blog.csdn.net/mdifferent/article/details/7887832


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM