ORA-12505,TNS:listener does not currently know of SID given in connect descriptor(不知道的SID)

使用SqlDeveloper登錄Oracle,提示報錯ORA-12505,如下

錯誤的提示大概就是不清楚這個SID,而SID是數據庫實例的映射表示,那麼其原因就是給定的SID不是Oracle實例的真正映射或根本就沒有爲Oracle實例做映射

 

解決辦法

打開Oracle的listener.ora文件

路徑爲 D:\SoftwareDevelopment\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora(具體看你自己的安裝路徑)

修改後的文件內容如下

# listener.ora Network Configuration File: D:\SoftwareDevelopment\Oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
     (SID_DESC =
     (GLOBAL_DBNAME = orcl.168.6.168)
     (ORACLE_HOME = D:\SoftwareDevelopment\Oracle\product\11.2.0\dbhome_1)
     (SID_NAME = ORCL)
     )

    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\SoftwareDevelopment\Oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\SoftwareDevelopment\Oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  
  )

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

ADR_BASE_LISTENER = D:\SoftwareDevelopment\Oracle

紅色部分爲你添加的內容

上面紅色部分的意思就是:用指定的SID_NAME 來映射這個全局數據庫,其中ORACLE_HOME 指定Oracle實例的安裝路徑

GLOBAL_DBNAME是全局數據庫名(你安裝過程時指定的)

看到上面的圖片有印象沒?

 

 

然後重啓Oracle的監聽器服務OracleOraDb11g_home1TNSListener

重新登錄

成功連接!

 

 

ORA-12514:TNS:監聽程序當前無法識別連接描述符中請求的服務

值得一提的是,這個問題的原因也基本上是要往listener.ora文件中添加那段內容,從而做一個SID和全局數據庫的映射

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章