探索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

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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值