Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5666179
  • 博文数量: 745
  • 博客积分: 10075
  • 博客等级: 上将
  • 技术积分: 7716
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-29 12:09
文章分类

全部博文(745)

文章存档

2019年(1)

2016年(1)

2010年(31)

2009年(88)

2008年(129)

2007年(155)

2006年(197)

2005年(143)

分类: Oracle

2007-12-02 16:07:29

基于撤销的恢复:用cancel代替归档日志名的输入。可以恢复到具体的某一个归档日志
Scenario:
The current time is 12:00 p.m. on March 9,2002.
The EMPLOYEES table was dropped while someone was trying to fix bad blocks.
Log files exist on the same disk.
The table was dropped at approximately 11:45 a.m.
Staff are currently in a meeting.
简单的说,就是当前的redo log坏了
准备
SQL> create table scott.test1(n1 number);
SQL> insert into scott.test1 values(1);
SQL> insert into scott.test1 values(2);
SQL> commit;
SQL> alter system switch logfile;
SQL> insert into scott.test1 values(3);
SQL> insert into scott.test1 values(4);
SQL> commit;
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
----- ------- ---------- ---- -------- --- ----- ------------- ----------
1      1      2          104857600   1 NO  CURRENT 271704 2007年12月02日
2      1      1          104857600   1 YES ACTIVE  271584 2007年12月02日
3      1      0          104857600   1 YES UNUSED  0
 
SQL> shutdown abort
一号组为当前日志,可将其删除或者重命名

恢复
OS 中将所有的数据文件拿回来(除了control file 和redo log file)
SQL> startup mount

SQL> recover database until cancel                                     
ORA-00279: 更改 271494 (在 12/02/2007 01:25:39 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\ORADATA\ORA\AWU7.ARC''
ORA-00280: 更改 271494 对于线程 1 是按序列 # 7 进行的

指定日志: {=suggested | filename | AUTO | CANCEL}             
                                                                       
ORA-00279: 更改 271598 (在 12/02/2007 15:57:13 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\ORADATA\ORA\AWU8.ARC''
ORA-00280: 更改 271598 对于线程 1 是按序列 # 8 进行的
ORA-00278: 此恢复不再需要日志文件 'D:\ORACLE\ORADATA\ORA\AWU7.ARC'''

指定日志: {=suggested | filename | AUTO | CANCEL}                
                                                                       
ORA-00326: 日志在更改 271616 开始,需要更早的更改 271598
ORA-00334: 归档日志: 'D:\ORACLE\ORADATA\ORA\AWU8.ARC'''
SQL> alter database open resetlogs;
数据库已更改。
SQL> select * from scott.test1;       
                              
             N1                    
     ----------                                                         
              1                    
              2                 
test1 中的  3,4因为没有及时归档,结果丢失
阅读(2456) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~