處理ORA-01102錯誤

mahanso發表於2012-02-10
    今天上午同事說之前執行4年的資料庫出現異常,不能登陸,啟動資料庫失敗。

現在簡單寫一下處理過程:

       1、我登陸作業系統

       2、首先我檢視資料庫狀態

          select  * from v$instanc;

       3、檢視資料庫日誌檔案

           tail -400 $ORACLE_BASE/admin/orcl/bdump/alert_orcl.log

       4、關閉資料庫

            shutdown immediate

       5、啟動資料庫報錯ORA-01102 cannot mount database in EXCLUSIVE mode,找了一下ORA-01102資料

               A、在HA系統中,已經有其他節點啟動了例項,將雙機共享的資源(如磁碟陣列上的裸裝置)佔用了;

               B、說明Oracle被異常關閉時,有資源沒有被釋放,一般有以下幾種可能,

                            a、 Oracle的共享記憶體段或訊號量沒有被釋放;

                            b、 Oracle的後臺程式(如SMON、PMON、DBWn等)沒有被關閉;

                            c、 用於鎖記憶體的檔案lk和sgadef.dbf檔案沒有被刪除。

         遇到c的情況,我刪除了$ORACLE_HOME/dbs/下的lk開標頭檔案(其實b種情況也出現了。後來才意識到)

       6、關閉資料庫

       7、啟動資料庫報ORA-00202 控制檔案被佔用

       8、關閉資料庫

       9、再次刪除了$ORACLE_HOME/dbs/下的lk開標頭檔案

       10、切換到root使用者下檢視oracle的後臺程式都再執行,ORA-01102 錯誤的b中情況也出現了,強行kill -9  (ora_lgwr_orcl的程式號)

       11、啟動資料,正常

       12、做個一個資料庫全備

       13、檢查資料庫使用者狀態,切換資料庫使用者   conn  使用者/密碼,提示使用者已經被鎖定。

       解鎖 : alter user 使用者名稱 account unlock;


至此問題處理完畢。應用正常執行。

總結:

       反覆使用錯誤的密碼嘗試連線資料庫,超過了資料庫預設的10次的嘗試次數,使用者被鎖定,加上資料庫異常關閉,不排除有人惡意運算元據庫。
      

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

相關文章