環境:win2008,oracle11.2.0.1
問題描述:
今天開發的同時告訴我plsql 突然連不上資料庫了,報了「ora-12514:tns:監聽程式當前無法識別連線描述符中請求的服務」
的錯誤,並且告訴我已經將之前的監聽停止,重新建立了乙個監聽,結果依然報錯。在服務裡檢視oracleserviceorcl,oracleservicebug都在啟動狀態,奇怪的是bug就可以連線,km始終不行,重啟km的服務之後,依然報錯。
解決辦法:
1)通過lsnrctl> status 檢視監聽註冊的狀態,發現km沒有動態註冊成功
2)lsnrctl >stop 停止監聽,lsnrctl >start啟動監聽,依然報錯
3)重啟oracleservicekm,還是報錯
4)整個過程中,bug例項連線正常
5)在listener.ora中增加
(sid_desc =
(global_dbname = km)
(sid_name = km)
)
5)重啟監聽後,status可以看見註冊成功,通過plsql連線資料庫報錯ora-01034和ora-27101錯誤,此時oracleservicekm啟動正常。(在這裡困擾了很長時間,任務oracleservicekm啟動了,資料庫就已經啟動,實時上不是,這時候的資料庫並沒有啟動成功)
6)通過set oracle_sid =km;sqlplus / as sysdba連線資料庫
7)shutdown immediate 關閉資料庫
8)startup重啟資料庫,連線正常
9)關閉bug例項,重啟bug例項後,bug不能正常連線,報「ora-12514
」錯誤10)修改listener.ora,增加bug註冊資訊
(sid_desc =
(global_dbname = bug)
(sid_name = bug)
)
12)重啟監聽,重啟資料庫,連線正常
總結:
1)oracleservicekm正常啟動後,資料庫啟動不一定成功;
2)ora-01034和ora-27101應該是啟動時共享記憶體分配的有問題,導致無法連線
3)單監聽,多例項啟動時,動態註冊失敗了,具體原因還得研究一下,全部改為靜態註冊後連線正常
出現ORA 01034和ORA 27101的原因
出現ora 01034和ora 27101的原因是多方面的 主要是oracle當前的服務不可用,shared memory realm does not exist,是因為oracle沒有啟動或沒有正常啟動,共享記憶體並沒有分配給當前例項.所以,通過設定例項名,再用作業系統身份驗證的方式,啟動資料庫...
ORA 01034 ORA 27101 問題解決
問題報錯如圖 出現ora 01034和ora 27101的原因是多方面的 主要是oracle當前的服務不可用,shared memory realm does not exist,是因為oracle沒有啟動或沒有正常啟動,共享記憶體並沒有分配給當前例項.所以,通過設定例項名,再用作業系統身份驗證的方...
ORA 01034 oracle不可用 的解決方法
晚上開啟sqlplus輸入使用者名稱和密碼老是登不了,出現如上一行 ora 01034 oracle不可用 的錯誤 解決思路 1 檢查服務是否啟動,2 如果已經啟動,說明資料庫沒有啟動,需要使用管理員身份登陸後,使用startup 啟動 startup 例程已啟動,資料庫裝載完畢 如果不能啟動,先可...