日期:2014-05-16  浏览次数:20470 次

探索ORACLE不完全恢复之--基于cancel恢复 第一篇

探索ORACLE不完全恢复之--基于cancel恢复 第一篇

作者:吴伟龙   Name:Prodence Woo

QQ:286507175  msn:hapy-wuweilong@hotmail.com




基于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