記一次資料庫恢復-ORA-01194
嘗試開啟資料庫時,發現打不開
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出現錯誤:
ORA-01194: 檔案 1 需要更多的恢復來保持一致性
ORA-01110: 資料檔案 1: 'E:\APP\ADMINISTRATOR\ORADATA\YSORCL\SYSTEM01.DBF'
SQL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG
SQL>
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\SYSTEM01.DBF
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\SYSAUX01.DBF
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\UNDOTBS01.DBF
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\USERS01.DBF
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\EXAMPLE01.DBF
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\BI_DATA01.DBF
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\YS_RP01.DBF
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\YS_BI01.DBF
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\YS_IND01.DBF
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\BI_DATA02.DBF
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\BI_DATA03.DBF
NAME
--------------------------------------------------------------------------------
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\BI_DATA04.DBF
已選擇12行。
SQL> select file#,to_char(checkpoint_change#,'999999999999') from v$datafile;
FILE# TO_CHAR(CHECK
---------- -------------
1 138620706
2 138620706
3 138620706
4 138620706
5 138620706
6 138620706
7 138620706
8 138620706
9 138620706
10 138620706
11 138620706
FILE# TO_CHAR(CHECK
---------- -------------
12 138620706
已選擇12行。
SQL> select file#,online_status,to_char(change#,'999999999999') from v$recover_file;
未選定行
SQL> select file#,to_char(checkpoint_change#,'999999999999') from v$datafile_header;
FILE# TO_CHAR(CHECK
---------- -------------
1 138620706
2 138620706
3 138620706
4 138620706
5 138620706
6 138620706
7 138620706
8 138620706
9 138620706
10 138620706
11 138620706
FILE# TO_CHAR(CHECK
---------- -------------
12 138620706
已選擇12行。
SQL> desc v$LOG
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------------
GROUP# NUMBER
THREAD# NUMBER
SEQUENCE# NUMBER
BYTES NUMBER
BLOCKSIZE NUMBER
MEMBERS NUMBER
ARCHIVED VARCHAR2(3)
STATUS VARCHAR2(16)
FIRST_CHANGE# NUMBER
FIRST_TIME DATE
NEXT_CHANGE# NUMBER
NEXT_TIME DATE
SQL> select group#, first_change# from v$log;
GROUP# FIRST_CHANGE#
---------- -------------
1 138617722
3 138620706
2 138619288
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\REDO03.LOG
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\REDO02.LOG
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\REDO01.LOG
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 138620706 (在 11/16/2019 05:19:55 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\YSORCL\ARCHIVELOG\2019_11_18\O1_MF_1_93
0_%U_.ARC
ORA-00280: 更改 138620706 (用於執行緒 1) 在序列 #930 中
指定日誌: {<RET>=suggested | filename | AUTO | CANCEL}
E:\APP\ADMINISTRATOR\ORADATA\YSORCL\REDO03.LOG
已應用的日誌。
完成介質恢復。
SQL>
SQL>
SQL> alter database open reset logs;
alter database open reset logs
*
第 1 行出現錯誤:
ORA-02288: 無效的 OPEN 模式
SQL> alter database open resetlogs;
資料庫已更改。
SQL>
SQL> select open_mode, log_mode, name from v$database;
OPEN_MODE LOG_MODE NAME
-------------------- ------------ ---------
READ WRITE NOARCHIVELOG YSORCL
SQL>
SQL>
這個資料庫最初的問題是因為控制檔案頭衝突,重建了控制檔案。重建之後,開啟提示此錯誤。
問題關鍵在於找出控制檔案與資料檔案,重做日誌檔案的SCN。此處發現,v$datafile_header的checkpoint_change#與
重做日誌檔案組3的first_change#是匹配的。
如果還不行,估計只有大招:_allow_resetlogs_corruption= TRUE
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8520577/viewspace-2664565/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 記一次刪庫到資料恢復資料恢復
- 記一次 MySQL 資料庫單表恢復事故處理MySql資料庫
- 記一次 oracle 資料庫在當機後的恢復Oracle資料庫
- 【資料庫資料恢復】SAP資料庫資料恢復案例資料庫資料恢復
- 寶塔資料庫恢復 mysql資料庫丟失恢復 mysql資料庫刪除庫恢復 寶塔mysql資料庫恢復資料庫MySql
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- 資料庫修復資料恢復資料庫資料恢復
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- 【資料庫資料恢復】Oracle資料庫誤truncate table的資料恢復案例資料庫資料恢復Oracle
- 【資料庫資料恢復】誤truncate table的Oracle資料庫資料恢復方案資料庫資料恢復Oracle
- 【資料庫資料恢復】oracle資料庫誤truncate table怎麼恢復資料?資料庫資料恢復Oracle
- 【資料庫資料恢復】linux系統下MYSQL資料庫資料恢復案例資料庫資料恢復LinuxMySql
- 伺服器資料恢復—透過拼接資料庫碎片恢復SqlServer資料庫資料的資料恢復案例伺服器資料恢復資料庫SQLServer
- 【資料庫資料恢復】MS SQL資料庫附加資料庫出錯怎麼恢復資料?資料庫資料恢復SQL
- sybase資料庫恢復資料庫
- Sybase ASE資料庫恢復,Sybase資料恢復,資料誤刪除恢復工具READSYBDEVICE資料庫資料恢復dev
- 資料庫資料恢復—NTFS分割槽損壞如何恢復SqlServer資料庫資料資料庫資料恢復SQLServer
- 【資料庫資料恢復】sql server資料庫連線失效的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】Oracle資料庫ASM磁碟組掉線如何恢復資料?資料庫資料恢復OracleASM
- 【資料庫資料恢復】SqlServer資料庫無法讀取的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】MongoDB資料庫檔案損壞的資料恢復案例資料庫資料恢復MongoDB
- 【資料庫資料恢復】SQL server資料庫被加密怎麼辦?如何恢復?資料庫資料恢復SQLServer加密
- 資料庫資料恢復—附加資料庫錯誤823的SQL Server資料恢復案例資料庫資料恢復SQLServer
- 資料庫資料恢復—SQLserver資料庫中勒索病毒被加密怎麼恢復資料?資料庫資料恢復SQLServer加密
- 【資料庫資料恢復】SQL Server資料庫磁碟空間不足的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】ASM磁碟組掉線的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- 【資料庫資料恢復】透過資料頁恢復Sql Server資料庫資料的過程資料庫資料恢復SQLServer
- Sybase SQL Anywhere(ASA)資料庫恢復,ASA資料恢復,資料誤刪除恢復工具ReadASADBSQL資料庫資料恢復
- 資料庫資料恢復-SQL SERVER資料庫MDF (NDF)或LDF損壞如何恢復資料?資料庫資料恢復SQLServer
- 【資料庫資料恢復】ASM例項不能掛載的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- 資料庫資料恢復-oracle資料庫報錯無法開啟的如何恢復資料?資料庫資料恢復Oracle
- 【資料庫資料恢復】LINUX環境下ORACLE資料庫誤刪除的資料恢復資料庫資料恢復LinuxOracle
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- 【資料庫資料恢復】MongoDB資料庫服務啟動失敗的資料恢復案例資料庫資料恢復MongoDB
- 資料庫恢復過程資料庫
- MySQL資料庫的恢復MySql資料庫