探索Oracle不完全恢复之--基于SCN恢复 第一篇

基于SCN恢复 第一篇

1、在删除数据之前,察看下SCN号是多少:

SQL> col name format a45

SQL> set line 300

SQL> select name,checkpoint_change# from v$datafile_header;

 

NAME                                         CHECKPOINT_CHANGE#

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

/DBBak2/oradata/WWL/system01.dbf                         1487389

/DBBak2/oradata/WWL/undotbs01.dbf                        1487389

/DBBak2/oradata/WWL/sysaux01.dbf                         1487389

/DBBak2/oradata/WWL/users01.dbf                          1487389

/DBBak2/oradata/WWL/wwl01.dbf                            1487389

/DBBak2/oradata/WWL/wwl02.dbf                            1487389

/DBBak2/oradata/WWL/wwl03.dbf                            1487389

 

7 rows selected.

 

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

 

    FILE# CHECKPOINT_CHANGE#

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

        1            1487389

        2            1487389

        3            1487389

        4            1487389

        5            1487389

        6            1487389

        7            1487389

 

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.

 

 

3、开始做基于SCN的恢复:

SQL> recover database until change1487389;

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: {<RET>=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 at07/12/2012 15:08:58 needed for thread 1

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

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

 

 

ORA-00279: change 1441316 generated at07/12/2012 15:19:50 needed for thread 1

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

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

 

 

ORA-00279: change 1442275 generated at07/12/2012 15:52:01 needed for thread 1

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

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

 

 

ORA-00279: change 1442953 generated at07/12/2012 16:25:06 needed for thread 1

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

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

 

 

ORA-00279: change 1462958 generated at07/12/2012 16:28:16 needed for thread 1

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

ORA-00280: change 1462958 for thread 1 isin sequence #2

ORA-00278: log file'/DBSoft/product/10.2.0/db_1/dbs/arch1_1_788459106.dbf' no longer needed forthis recovery

 

 

ORA-00279: change 1462963 generated at07/12/2012 17:17:59 needed for thread 1

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

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

 

 

ORA-00279: change 1483784 generated at07/12/2012 17:54:25 needed for thread 1

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

ORA-00280: change 1483784 for thread 1 isin sequence #2

ORA-00278: log file'/DBSoft/product/10.2.0/db_1/dbs/arch1_1_788462279.dbf' no longer needed forthis recovery

 

 

ORA-00279: change 1486119 generated at07/12/2012 20:35:27 needed for thread 1

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

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

 

 

Log applied.

Media recovery complete.

SQL> alter database open;

alter database open

*

ERROR at line 1:

ORA-01589: must use RESETLOGS orNORESETLOGS option for database open

 

 

SQL> alter database open resetlogs;

 

Database altered.

 

SQL>   

 

4、至此,数据已经恢复完成:

SQL> select * from tab;

 

TNAME                          TABTYPE  CLUSTERID

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

WWL001                         TABLE

WWL002                         TABLE

WWL003                         TABLE

WWL004                         TABLE

WWL005                         TABLE

 

 

SQL> select * from wwl005;

 

       ID NAME

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

        1 wwl

        2 prodence

        3 woo

        4 xgx

        5 cms

 

SQL>

相关阅读:

相关推荐