今天關閉伺服器的時候出現莫名原因導致資料庫無法shutdown,只好利用強制命令shutdown abort;但oracle資料庫無法開啟了,總是報“ORA-03113: 通訊通道的檔案結尾”錯誤,分析可能由於資料庫立即關閉,導致檔案狀態可能不一致,因為正常關閉資料庫會同步校驗各檔案,使得重新啟動的時候檔案時間點一致並且不用進行崩潰恢復,不得不進行下面的恢復,建議大家以後在利用abort選項時,先在os上觀察IO狀況,在IO值為0或接近0的時候再強制關閉,以避免不可預料的錯誤。(我的環境是Oracle 11g,CentOS 6.3)
SQL> startup mount;
ORACLE 例程已經啟動。
Total System Global Area 835104768 bytes
Fixed Size 2217952 bytes
Variable Size 637536288 bytes
Database Buffers 188743680 bytes
Redo Buffers 6606848 bytes
資料庫裝載完畢。
SQL> alter database open;
alter database open
*
第 1 行出現錯誤:
ORA-03113: 通訊通道的檔案結尾
程式 ID: 4272
會話 ID: 125 序列號: 5
SQL> conn ' / as sysdba'
已連線到空閒例程。
SQL> startup mount
ORACLE 例程已經啟動。
Total System Global Area 835104768 bytes
Fixed Size 2217952 bytes
Variable Size 637536288 bytes
Database Buffers 188743680 bytes
Redo Buffers 6606848 bytes
資料庫裝載完畢。
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS FIRST_CHANGE# FIRST_TIME NEXT_CHANGE# NEXT_TIME
---------------- ------------- -------------- ------------ --------------
1 1 97 52428800 512 1 NO
INACTIVE 12980317 07-9月 -10 12988303 07-9月 -10
3 1 99 52428800 512 1 NO
CURRENT 12991762 07-9月 -10 2.8147E+14
2 1 98 52428800 512 1 NO
INACTIVE 12988303 07-9月 -10 12991762 07-9月 -10
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出現錯誤:
ORA-01139: RESETLOGS 選項僅在不完全資料庫恢復後有效
SQL> recover database until time '2015-03-18 13:45:02';
完成介質恢復。
SQL> alter database open resetlogs;
資料庫已更改。
SQL> shutdown
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 835104768 bytes
Fixed Size 2217952 bytes
Variable Size 637536288 bytes
Database Buffers 188743680 bytes
Redo Buffers 6606848 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28686045/viewspace-1464427/,如需轉載,請註明出處,否則將追究法律責任。