使用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和全局數據庫的映射