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

解決過程:

1. 找到listener.ora監聽文件,具體位置:D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora

2. 在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)
   )

3. 保存listener.ora文件,關閉並重新啓動監聽程序。

   lsnrctl stop   // 關閉

   lsnrctl start  // 啓動


4. 此時,用正常的用戶去連接雙出現新的錯誤。

ORA-27101: shared memory realm does not exist

5. 啓動打開目錄:D:\app\Administrator\admin\orac11\pfile,會發現裏面有一個文件:init.ora.1052011103553,這是Oracle最後一次成功啓動時備份的啓動文件。

6. sqlplus /nolog,
   create spfile from pfile='D:\app\Administrator\admin\orac11\pfile\init.ora.1052011103553'
   startup  // 啓動數據庫。

7. 一切恢復正常。



========================================================================

ISDB = 
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.22.141)(PORT = 1521))
)
(CONNECT_DATA =
(SID = lisdb)
)
)
要不行,把tnsnames.ora刪掉,用Configuration Assistant重新建

還不行啊,你確定lisdb是正確的?配的時候測試是否通過?
把..\Network\Admin\下的文件全刪掉,再用Configuration Assistant配置試試



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