今天同事說有台機器由於假期停電,重啟機器後,用PLSQL登入報:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux_x86_64 Error: 2: No such file or directory
的錯誤。
網上也有很多對這個報錯的說法:
啟動的Oracle的時侯;
試圖建立資料庫的時侯;
試圖對資料庫進行串連的時侯;
在用戶端正在運行SQL/PL/SQL的時侯;
備份/恢複資料庫的時侯;
其它一些情況下
會報這樣的錯誤。
原因呢包括:
Unix核心參數設定不當
Oracle執行檔案許可權不正確/環境變數問題
用戶端通訊不能正確處理
資料庫伺服器崩潰/作業系統崩潰/進程被kill
Oracle 內部錯誤
特定SQL、PL/SQL引起的錯誤
空間不夠
防火牆的問題
其它原因
從ORA-1034的錯誤介紹:
01034, 00000, "ORACLE not available"
// *Cause: Oracle was not started up. Possible causes include the following:
// - The SGA requires more space than was allocated for it.
// - The operating-system variable pointing to the instance is
// improperly defined.
// *Action: Refer to accompanying messages for possible causes and correct
// the problem mentioned in the other messages.
// If Oracle has been initialized, then on some operating systems,
// verify that Oracle was linked correctly. See the platform
// specific Oracle documentation.
也可以看出原因是:“Oracle was not started up”,至於為什麼沒啟動,可能就是上述描述的若干原因之一。
但其實針對這次的問題,原因就是Oracle未啟動,機器啟動並未配置自動啟動Oracle服務,sqlplus登入後處於idle狀態。。。
往往問題看似複雜,但原因可能很簡單,當然這隻是一個特例,至少教會我們,出現這類問題時,首先看下Oracle是否執行過啟動命令,若是,可以繼續查看,例如開啟alert日誌等,需要具體問題具體分析了。