處理ORA-01102錯誤
今天上午同事說之前執行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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 錯誤處理
- PHP 錯誤處理PHP
- php錯誤處理PHP
- Go 錯誤處理Go
- Swift錯誤處理Swift
- Zabbix錯誤處理
- mysqldump錯誤處理MySql
- 錯誤處理:如何通過 error、deferred、panic 等處理錯誤?Error
- PHP錯誤處理和異常處理PHP
- go的錯誤處理Go
- Python錯誤處理Python
- ORA-01102錯誤分析
- 異常錯誤資訊處理
- PHP 核心特性 - 錯誤處理PHP
- 常用模組 PHP 錯誤處理PHP
- laravel9 錯誤處理Laravel
- 淺談前端錯誤處理前端
- Oracle異常錯誤處理Oracle
- ORACLE 異常錯誤處理Oracle
- 15-錯誤處理(Error)Error
- 學習Rust 錯誤處理Rust
- axios 的錯誤處理iOS
- Go語言之錯誤處理Go
- GOLANG錯誤處理最佳方案Golang
- Objective-C:錯誤處理Object
- javascript之處理Ajax錯誤JavaScript
- 搭建dataguard時,錯誤處理
- Oracle錯誤處理思路(一)Oracle
- COM的錯誤處理 (轉)
- 使用PHP錯誤處理 (轉)PHP
- openGauss 處理錯誤表
- Python錯誤處理和異常處理(二)Python
- 【故障處理】CRS-1153錯誤處理
- 【故障處理】ORA-19809錯誤處理
- rust學習十、異常處理(錯誤處理)Rust
- oracle ora-00054錯誤處理Oracle
- 程式錯誤型別及其處理型別
- 請教 Element 的錯誤處理