【案例】Oracle報錯ORA-01194 ORA-01110 由於資料庫SCN不一致導致無法啟動
使用_allow_resetlogs_corruption開啟無歸檔日誌rman備份庫,
運維DBA反映伺服器當機後,開啟資料庫報錯ORA-01194 ORA-01110,分析原因為Oracle SCN不一致導致資料庫無法啟動,使用_allow_resetlogs_corruption開啟資料庫
1.rman還原恢復操作
--還原資料庫 RMAN> restore database; --恢復資料庫 RMAN> recover database; Starting recover at 2012-03-08 21:20:45 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=65 device type=DISK starting media recovery RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of recover command at 03/08/2012 21:20:47 RMAN-06053: unable to perform media recovery because of missing log RMAN-06025: no backup of archived log for thread 1 with sequence 2936 and starting SCN of 25991695 found to restore RMAN-06025: no backup of archived log for thread 1 with sequence 2935 and starting SCN of 25991652 found to restore RMAN-06025: no backup of archived log for thread 1 with sequence 2934 and starting SCN of 25991649 found to restore …………………… RMAN-06025: no backup of archived log for thread 1 with sequence 2902 and starting SCN of 25991156 found to restore 這裡報日誌缺少,實際上是備份的資料庫檔案後,沒有備份歸檔日誌,歸檔日誌全部丟失
進行不完全恢復
SQL> recover database until cancel; ORA-00279: change 25991194 generated at 03/08/2012 20:33:58 needed for thread 1 ORA-00289: suggestion : /opt/oracle/oradata/archivelog/chf/1_2902_752334071.dbf ORA-00280: change 25991194 for thread 1 is in sequence #2902 Specify log: {
=suggested | filename | AUTO | CANCEL} cancel ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/opt/oracle/oradata/chf/system01.dbf' ORA-01112: media recovery not started SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/opt/oracle/oradata/chf/system01.dbf'
2.檢視相關SCN
SQL> select file#,to_char(checkpoint_change#,'999999999999') from v$datafile; FILE# TO_CHAR(CHECK ---------- ------------- 1 25992214 2 25992214 3 25992214 4 25992214 5 25992214 6 25992214 7 25992214 8 25992214 9 25992214 10 25992214 11 25992214 FILE# TO_CHAR(CHECK ---------- ------------- 13 25992214 14 25992214 13 rows selected. SQL> select file#,online_status,to_char(change#,'999999999999') from v$recover_file; FILE# ONLINE_ TO_CHAR(CHANG ---------- ------- ------------- 1 ONLINE 25991194 2 ONLINE 25991194 3 ONLINE 25991194 4 ONLINE 25991194 5 ONLINE 25991194 6 ONLINE 25991194 7 ONLINE 25991194 8 ONLINE 25991194 9 ONLINE 25991194 10 ONLINE 25991194 11 ONLINE 25991194 FILE# ONLINE_ TO_CHAR(CHANG ---------- ------- ------------- 13 ONLINE 25991194 14 ONLINE 25991194 13 rows selected. SQL> select file#,to_char(checkpoint_change#,'999999999999') from v$datafile_header; FILE# TO_CHAR(CHECK ---------- ------------- 1 25991194 2 25991194 3 25991194 4 25991194 5 25991194 6 25991194 7 25991194 8 25991194 9 25991194 10 25991194 11 25991194 FILE# TO_CHAR(CHECK ---------- ------------- 13 25991194 14 25991194 13 rows selected.--發現資料檔案scn和控制檔案不一致,重建控制檔案,然後查詢相關scnSQL> select file#,to_char(checkpoint_change#,'999999999999') from v$datafile; FILE# TO_CHAR(CHECK ---------- ------------- 1 25991194 2 25991194 3 25991194 4 25991194 5 25991194 6 25991194 7 25991194 8 25991194 9 25991194 10 25991194 11 25991194 FILE# TO_CHAR(CHECK ---------- ------------- 13 25991194 14 25991194 13 rows selected. SQL> select file#,online_status,to_char(change#,'999999999999') from v$recover_file; FILE# ONLINE_ TO_CHAR(CHANG ---------- ------- ------------- 1 ONLINE 25991194 2 ONLINE 25991194 3 ONLINE 25991194 4 ONLINE 25991194 5 ONLINE 25991194 6 ONLINE 25991194 7 ONLINE 25991194 8 ONLINE 25991194 9 ONLINE 25991194 10 ONLINE 25991194 11 ONLINE 25991194 FILE# ONLINE_ TO_CHAR(CHANG ---------- ------- ------------- 13 ONLINE 25991194 14 ONLINE 25991194 13 rows selected. SQL> select file#,to_char(checkpoint_change#,'999999999999') from v$datafile_header; FILE# TO_CHAR(CHECK ---------- ------------- 1 25991194 2 25991194 3 25991194 4 25991194 5 25991194 6 25991194 7 25991194 8 25991194 9 25991194 10 25991194 11 25991194 FILE# TO_CHAR(CHECK ---------- ------------- 13 25991194 14 25991194 13 rows selected. --此時所有scn均一致
3.嘗試開啟資料庫
SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/opt/oracle/oradata/chf/system01.dbf' SQL> recover database using backup controlfile until cancel; ORA-00279: change 25991194 generated at 03/08/2012 20:33:58 needed for thread 1 ORA-00289: suggestion : /opt/oracle/oradata/archivelog/chf/1_2902_752334071.dbf ORA-00280: change 25991194 for thread 1 is in sequence #2902 Specify log: {
=suggested | filename | AUTO | CANCEL} cancel ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/opt/oracle/oradata/chf/system01.dbf' ORA-01112: media recovery not started SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/opt/oracle/oradata/chf/system01.dbf'
5.使用隱含引數開啟資料庫
SQL> create pfile='/tmp/pfile' from spfile; File created. -------/tmp/pfile中加上---------- _allow_resetlogs_corruption= TRUE --------------------------------- SQL> startup mount pfile='/tmp/pfile' force ORACLE instance started. Total System Global Area 622149632 bytes Fixed Size 2230912 bytes Variable Size 419431808 bytes Database Buffers 192937984 bytes Redo Buffers 7548928 bytes Database mounted. SQL> alter database open resetlogs; Database altered. SQL> select open_mode from v$database; OPEN_MODE -------------------- READ WRITE
總結
這次的試驗沒有多少實際意義,但是可以說明幾個問題:
1.所有的資料檔案的scn都一致,甚至和控制檔案的也一致,資料庫不一定可以open成功
(懷疑是資料檔案中的scn大於data header scn)
2.對於這樣的問題,如果使用bbed修改所有資料檔案header的scn不知道是否可以解決
3.如果rman只備份了資料檔案而沒有任何一個歸檔日誌,資料庫透過隱含引數還是可以open,搶救資料
--------------------------------------ORACLE-DBA----------------------------------------
最權威、專業的Oracle案例資源彙總之【案例】Oracle報錯ORA-01194 ORA-01110 由於資料庫SCN不一致導致無法啟動
本文由大師惜分飛原創分享,網址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25469263/viewspace-2652342/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle日常問題-資料庫無法啟動(案例二)Oracle資料庫
- 記一次ORA-01102導致資料庫例項無法啟動案例資料庫
- oracle兩節點RAC,由於gipc導致某節點crs無法啟動問題分析Oracle
- java由於越界導致的報錯Java
- asm磁碟組依賴導致資料庫自啟動報錯ASM資料庫
- 資料庫資料恢復-oracle資料庫報錯無法開啟的如何恢復資料?資料庫資料恢復Oracle
- 由於無法分配ip而導致的FailedCreatePodSandBoxAI
- ORACLE DSG資料同步軟體程式導致資料庫無法正常關閉Oracle資料庫
- 【北亞資料恢復】伺服器斷電導致Oracle資料庫報錯的資料恢復案例資料恢復伺服器Oracle資料庫
- Oracle sysman.mgmt_jobs導致資料庫自動重啟Oracle資料庫
- ORACLE for windows 審計檔案xml檔案過多導致資料庫啟動報錯ORA-09925OracleWindowsXML資料庫
- 應用使用JNDI,資料庫無法連線,導致的程序無法啟動問題處理資料庫
- openGauss 由於RemoveIPC未關閉導致資料庫crashREM資料庫
- Oracle日常問題處理-資料庫無法啟動Oracle資料庫
- Oracle 12.2應用PSU後資料庫無法啟動Oracle資料庫
- DG修復:異常關庫導致的資料庫啟動失敗ORA-01110及GAP修復資料庫
- 【北亞資料恢復】異常斷電導致Oracle資料庫報錯的oracle資料恢復資料恢復Oracle資料庫
- 【Oracle】表空間誤刪除導致startup啟動時提示ORA-01110和ORA-01157錯誤Oracle
- ORACLE 18C啟動資料庫報錯ORA-04031Oracle資料庫
- 【資料庫資料恢復】無法啟動MongoDB服務的資料恢復案例資料庫資料恢復MongoDB
- eclipse: workspace出錯導致無法啟用的解決Eclipse
- 【資料庫資料恢復】斷電導致Oracle資料庫資料丟失的資料恢復案例資料庫資料恢復Oracle
- 磁碟IO故障導致的SQLServer資料庫無法寫入SQLServer資料庫
- MYSQL資料庫服務無法啟動MySql資料庫
- 資料庫資料恢復——Windows無法啟動MongoDB服務的資料恢復案例資料庫資料恢復WindowsMongoDB
- 程式無任何報錯但是無法寫入資料庫資料庫
- innodb_undo_tablespaces導致Mysql啟動報錯MySql
- 【資料庫資料恢復】突然斷電造成Syabse資料庫無法啟動的資料恢復案例資料庫資料恢復
- 【虛擬機器資料恢復】異常斷電導致虛擬機器無法啟動的資料恢復案例虛擬機資料恢復
- 【oracle資料庫資料恢復】誤操作導致的資料庫誤刪除的資料恢復案例Oracle資料庫資料恢復
- 資料庫資料恢復—MongoDB資料庫檔案丟失,啟動報錯的資料恢復案例資料庫資料恢復MongoDB
- 重置資料庫密碼後導致網站無法訪問資料庫密碼網站
- vim 編輯報錯導致無法正常退出和編輯
- 【北亞資料恢復】異常斷電導致linux伺服器無法啟動,資料庫損壞的資料恢復資料恢復Linux伺服器資料庫
- 伺服器資料恢復-RAID資訊丟失導致伺服器作業系統無法啟動的資料恢復案例伺服器資料恢復AI作業系統
- 【北亞伺服器資料恢復】raid5崩潰導致同友儲存無法啟動的資料恢復案例伺服器資料恢復AI
- 伺服器意外斷電導致無法重啟資料恢復伺服器資料恢復
- 網站無法安裝,提示當前資料庫結構與官方不一致網站資料庫