使用PL/SQL登錄Oracle數據庫,提示【ORA-12514:TNS:監聽程序當前無法識別連接描述符中請求的服務】如下圖:
直接上解決辦法哈:
一:看到當前提示首先想到的是看看Oracle服務是否開啓:
開啓後再進行登錄就好了。
二:如果Oracle服務是開啓的,但還是提示【ORA-12514:TNS:監聽程序當前無法識別連接描述符中請求的服務】,再去檢查下:
- 首先找到listener.ora監聽文件,具體位置:D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
小技巧(直接在搜索listener.ora文件)
: 在lisener.ora文件中找到
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = “EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll”)
)將下面的一段內容copy進去,並適當修改。(紅字部分爲你的SID,其中GLOBAL_DBNAME爲全局數據庫名,可以與SID不同)
(SID_DESC =
(GLOBAL_DBNAME = ORAC11)
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
(SID_NAME = ORAC11)
)保存listener.ora文件,關閉並重新啓動監聽程序。
lsnrctl stop // 關閉
lsnrctl start // 啓動
此時,用正常的用戶去連接雙出現新的錯誤。
ORA-27101: shared memory realm does not exist
- 啓動打開目錄:D:\app\Administrator\admin\orac11\pfile,會發現裏面有一個文件:init.ora.1052011103553,這是Oracle最後一次成功啓動時備份的啓動文件。
- sqlplus /nolog,
create spfile from pfile=’D:\app\Administrator\admin\orac11\pfile\init.ora.1052011103553’
startup // 啓動數據庫。 - 一切恢復正常。