探索Oracle不完全恢复之--基于检查点恢复 第二篇(一)

2014-11-24 18:45:15 · 作者: · 浏览: 1

基于SCN的恢复,第二篇



1、察看当前的SCN,以便于后期数据丢失用来恢复:


SQL> select current_scn from v$database;



CURRENT_SCN


-----------


1511297



SQL> select file#,checkpoint_change#from v$datafile;



FILE# CHECKPOINT_CHANGE#


---------- ------------------


1 1510535


2 1510535


3 1510535


4 1510535


5 1510535


6 1510535


7 1510535



7 rows selected.



SQL> col name format a45


SQL> set line 300


SQL> select name,checkpoint_change# fromv$datafile_header;



NAME CHECKPOINT_CHANGE#


---------------------------------------------------------------


/DBBak2/oradata/WWL/system01.dbf 1510535


/DBBak2/oradata/WWL/undotbs01.dbf 1510535


/DBBak2/oradata/WWL/sysaux01.dbf 1510535


/DBBak2/oradata/WWL/users01.dbf 1510535


/DBBak2/oradata/WWL/wwl01.dbf 1510535


/DBBak2/oradata/WWL/wwl02.dbf 1510535


/DBBak2/oradata/WWL/wwl03.dbf 1510535



7 rows selected.



SQL>



2、删除测试表


SQL> drop table wwl002 purge;



Table dropped.



SQL> drop table wwl003 purge;



Table dropped.



SQL> drop table wwl004 purge;



Table dropped.



SQL> drop table wwl005 purge;



Table dropped.



SQL> conn / as sysdba


Connected.



3、对数据库执行了DML操作后,数据库的SCN号改变了。


SQL> select current_scn from v$database;



CURRENT_SCN


-----------


1511437




4、开始执行restore,到备份时候的状态:


RMAN> restore database;



Starting restore at 13-JUL-12


using target database control file insteadof recovery catalog


allocated channel: ORA_DISK_1


channel ORA_DISK_1: sid=47 devtype=DISK



channel ORA_DISK_1: starting datafilebackupset restore


channel ORA_DISK_1: specifying datafile(s)to restore from backup set


restoring datafile 00001 to/DBBak2/oradata/WWL/system01.dbf


restoring datafile 00002 to/DBBak2/oradata/WWL/undotbs01.dbf


restoring datafile 00003 to/DBBak2/oradata/WWL/sysaux01.dbf


restoring datafile 00004 to/DBBak2/oradata/WWL/users01.dbf


restoring datafile 00005 to/DBBak2/oradata/WWL/wwl01.dbf


restoring datafile 00006 to/DBBak2/oradata/WWL/wwl02.dbf


restoring datafile 00007 to/DBBak2/oradata/WWL/wwl03.dbf


channel ORA_DISK_1: reading from backuppiece /DBSoft/product/10.2.0/db_1/dbs/01nft4mu_1_1


channel ORA_DISK_1: restored backup piece 1


piecehandle=/DBSoft/product/10.2.0/db_1/dbs/01nft4mu_1_1 tag=TAG20120712T095437


channel ORA_DISK_1: restore complete,elapsed time: 00:01:06


Finished restore at 13-JUL-12



5、开始执行恢复,到我们删除表之前的状态:


SQL> recover database until change1511297;


ORA-00279: change 1436429 generated at07/12/2012 09:54:38 needed for thread 1


ORA-00289: suggestion :/DBSoft/product/10.2.0/db_1/dbs/arch1_3_788372282.dbf


ORA-00280: change 1436429 for thread 1 isin sequence #3




Specify log: {=suggested |filename | AUTO | CANCEL}


auto


ORA-00279: change 1440657 generated at07/12/2012 14:00:52 needed for thread 1


ORA-00289: suggestion :/DBSoft/product/10.2.0/db_1/dbs/arch1_1_788450452.dbf


ORA-00280: change 1440657 for thread 1 isin sequence #1




ORA-00279: change 1440855 generated at 07/12/201215:08:58 needed for thread 1


ORA-00289: suggestion :/DBSoft/product/10.2.0/db_1/dbs/arch1_1_788454538.dbf


ORA-00280: cha