Oracle not available ORA-27101
阿新 • • 發佈:2019-02-02
oracle資料庫由於伺服器異常重啟而宕機,重啟資料庫後,發現遠端連線無法連線
報錯如下:
ORA-01034 - Oracle not available
ORA-27101 - shared memory realm does not exist
以前遇到過類似的情況,多是由於之前oracle使用的共享記憶體沒有正常釋放,重啟過資料庫後即可。
這一次處理起來便是直接重啟資料庫,然後悲劇的發現還是報錯如上。
檢視監聽,發現也能捕獲到例項資訊,覺得很奇怪。
後來到$ORACLE_HOME/dbs下面檢視spfile檔案,發現竟然有兩個spfile,分別是例項名大寫和小寫,
當前預設是大寫的,於是export為小寫,發現數據庫依然能夠啟動起來,但是不是舊庫(該資料庫做過遷移)
於是有了頭緒,再次觀察lsnrctl status輸出資訊,發現確實有問題了,例項資訊捕獲到的是小寫的例項名。。。
我將listener.ora中的sid改成大寫後。。。應用重啟正常,遠端可以連線。
問題分析推理:
首先由於存在一個小寫的例項名,並且該例項是靜態註冊的方式,導致監聽啟動起來便能看到該小寫例項的資訊,從而誤導了我,以為監聽是正常的,捕獲到了資料庫的資訊。其實不然,另一方面,由於大寫的例項採用的是動態註冊的方式,oracle異常停掉後沒有找到該例項的註冊資訊。。