基於cancel的不一致性恢複(歸檔存在) 第一篇
基於取消的恢複只適用於以下情況:歸檔日誌丟失導致完全恢複失敗;丟失了資料檔案和未歸檔的重做日誌(聯機重做日誌);
1、先關閉資料庫,執行一次全庫冷備份。
SQL> selectfile_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/DBBak2/oradata/WWL/users01.dbf
/DBBak2/oradata/WWL/sysaux01.dbf
/DBBak2/oradata/WWL/undotbs01.dbf
/DBBak2/oradata/WWL/system01.dbf
/DBBak2/oradata/WWL/WWL001.dbf
/DBBak2/oradata/WWL/WWL002.dbf
/DBBak2/oradata/WWL/WWL003.dbf
7 rows selected.
SQL> shutdownimmediate
Database closed.
Database dismounted.
Oracle instance shut down.
SQL> !mkdir/DBBak2/oradata/WWL2
SQL> !cp/DBBak2/oradata/WWL/* /DBBak2/oradata/WWL2/
2、然後開啟資料庫繼續使用,我們可以看到備份的時候資料庫wwl001表中只有4條記錄。
SQL> select * fromwwl001;
ID NAME
---------- ------------------
1 jetsen
2 woo
3 prudence
4 beijin
4 rows selected.
3、繼續向wwl001表中插入資料,並切換日誌讓redo log歸檔。
SQL> insert intowwl001 values(5,'china');
1 row created.
SQL> insert intowwl001 values(6,'america');
1 row created.
SQL> commit;
Commit complete.
SQL> select * fromwwl001;
ID NAME
---------- ------------------
1 jetsen
2 woo
3 prudence
4 beijin
5 china
6 america
6 rows selected.
SQL>
SQL> alter systemswitch logfile;
System altered.
SQL> /
System altered.
SQL> /
System altered.
SQL> /
System altered.
SQL> /
System altered.
4、關閉資料庫,類比資料檔案丟失,歸檔日誌也丟失了,所以資料庫只能做不一致性恢複。
SQL> shutdownabort;
ORACLE instance shut down.
SQL> !rm -rf/DBBak2/oradata/WWL/*.dbf
SQL> !cp/DBBak2/oradata/WWL2/*.dbf /DBBak2/oradata/WWL/
SQL> !cp /DBBak2/oradata/WWL2/*.dbf/DBBak2/oradata/WWL/
5、執行基於取消的不完全恢複
SQL> startup
ORACLE instance started.
Total System Global Area 100663296 bytes
Fixed Size 1217884 bytes
Variable Size 88083108 bytes
Database Buffers 8388608 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1:'/DBBak2/oradata/WWL/system01.dbf'
SQL>select * fromv$recover_file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- --------------------------- ---------- ---------
1 ONLINE ONLINE 1783695 31-JUL-12
2 ONLINE ONLINE 1783695 31-JUL-12
3 ONLINE ONLINE 1783695 31-JUL-12
4 ONLINE ONLINE 1783695 31-JUL-12
5 ONLINE ONLINE 1783695 31-JUL-12
6 ONLINE ONLINE 1783695 31-JUL-12
7 ONLINE ONLINE 1783695 31-JUL-12
7 rows selected.
SQL> recoverdatabase until cancel;
ORA-00279: change 1783695 generated at07/31/2012 15:32:04 needed for thread 1
ORA-00289: suggestion :/DBSoft/product/10.2.0/db_1/dbs/arch/1_2_790095025.dbf
ORA-00280: change 1783695 for thread 1 isin sequence #2
Specify log: {<RET>=suggested |filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
SQL>
SQL> select * fromv$recover_file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- --------------------------- ---------- ---------
1 ONLINE ONLINE 1783695 31-JUL-12
2 ONLINE ONLINE 1783695 31-JUL-12
3 ONLINE ONLINE 1783695 31-JUL-12
4 ONLINE ONLINE 1783695 31-JUL-12
5 ONLINE ONLINE 1783695 31-JUL-12
6 ONLINE ONLINE 1783695 31-JUL-12
7 ONLINE ONLINE 1783695 31-JUL-12
7 rows selected.
SQL> alterdatabase open resetlogs;
Database altered.
SQL> conn wwl/wwl
Connected.
SQL> select * fromwwl001;
ID NAME
---------- ------------------
1 jetsen
2 woo
3 prudence
4 beijin
SQL>
相關閱讀:
探索Oracle之RMAN_01概念
探索Oracle之RMAN_02基本使用
探索Oracle之RMAN_03非一致性備份
探索Oracle之RMAN_04非一致性備份
探索Oracle之RMAN_05增量備份
探索Oracle之RMAN_06備份策略
探索Oracle之RMAN_07單個資料檔案丟失恢複
探索Oracle之RMAN_07整個業務資料表空間丟失恢複
探索Oracle之RMAN_07 磁碟損壞資料丟失恢複
探索Oracle之RMAN_07 資料庫所有檔案全部丟失恢複
探索Oracle之RMAN_07 重做日誌redu檔案丟失恢複
探索Oracle之RMAN_07 參數檔案丟失恢複
探索Oracle之RMAN_07控制檔案丟失恢複
探索Oracle之RMAN_07 system資料表空間丟失恢複