Windows環境下Oracle10g使用DBCA建立資料庫時遇到ORA-12560協議介面卡錯誤

qdrzq發表於2014-12-01

Windows環境下Oracle10g使用DBCA建立資料庫時遇到ORA-12560協議介面卡錯誤
看到這個錯誤,首先想Windows環境下,都有哪些情況會出現ORA-12560?
1.登錄檔ORACLE_SID與例項名不一致
2.關於Oracle的服務沒有啟動
可是,現在是DBCA建庫的過程,上述兩項還沒有就緒.
所以,一籌莫展.
按照介面上的關於日誌儲存路徑的提示,檢視日誌
D:\oracle\product\10.2.0\db_1\cfgtoollogs\dbca\orcl\下無日誌
D:\oracle\product\10.2.0\db_1\cfgtoollogs\dbca\trace.log
裡面,也是充斥著ORA-12560協議介面卡錯誤
不過,大致看到了一些有用的線索,出現錯誤之前,是呼叫的如下批處理
D:\oracle\product\10.2.0\admin\scripts\orcl.bat
開啟此批處理,看到其中先建立了若干資料夾,然後
D:\oracle\product\10.2.0\db_1\BIN\oradim.exe -new -SID ORCL -startmode manual -spfile
所以,就手工嘗試執行,看看結果
於是手工執行上述oradim命令列命令,提示:建立服務失敗,服務已經存在.(由於當時搶時間,沒有留下準確的提示)
於是,先使用作業系統命令sc delete OracleServiceORCL來刪除服務
然後,再執行oradim測試,結果會提示:服務已標記為刪除
重啟計算機,反覆刪與建,均提示失敗,要麼是服務已經存在,要麼是服務已標記為刪除.
甚至,從\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services這個登錄檔分支下找到相應服務,通過刪登錄檔分支的方法也嘗試了.
還是不行.
做到這兒,其實也不難理解為什麼提示ORA-12560了.因為DBCA建立過程中,此時此刻,應該是先建立服務成功,然後啟動成功,接著繼續.既然建立不成功,當然啟動不成功,所以就跟資料庫建立之後,沒有啟動Oracle服務一樣的現象了.
總之,產生ORA-12560錯誤的原因是Oracle服務建立不成功.
最終,仔細檢查下面幾個登錄檔分支,讓其下都沒有OracleServiceORCL服務,
\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services
\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services
控制皮膚\管理工具\服務中,也沒有相關服務
然後,DBCA建庫成功!

後記:據查閱資料,對於CurrentControlSet與ControlSet001等的說明,眾說紛紜,個人傾向於這樣的觀點:Current是儲存的是當前的,而帶數值001或002(或者其他)的,分別是儲存最後一次正確的配置,或者是本次新增待下次啟動生效的服務,或者是本次刪除待下次啟動真正刪除的服務.不知道是否正確.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29512902/viewspace-1353148/,如需轉載,請註明出處,否則將追究法律責任。

相關文章