處理ORA-01102錯誤
現在簡單寫一下處理過程:
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<sid>和sgadef<sid>.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次的嘗試次數,用戶被鎖定,加上數據庫異常關閉,不排除有人惡意操作數據庫。