UNTIL SEQUENCE不完全恢复的误解

 

这道题主要考的就是UNTIL SEQUENCE 230是否包含230这个日志文件,如果一般人看字面的话大概都该认为是包含的。我也是伴有怀疑的态度去做这个实验的,经过试验发现,是不包含的。以下是我的恢复试验。

【备份前】

 WANGZK>select * from t;

        ID
----------
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11

【备份】

RMAN> backup database format 'd:\rmandir\full_db_%I_%T_%u' plus archivelog format 'd:\rmandir\arch_%I_%T_%u' delete input;

【插入数据】

WANGZK>insert into t select rownum+11 from dual connect by rownum<=20;

已创建20行。

WANGZK>commit;

WANGZK>select sequence#,status from v$log;

 SEQUENCE# STATUS
---------- ----------------
        14 CURRENT
        12 INACTIVE
        13 INACTIVE

 

--可见插入数据的日志是在14号文件中

【切换归档后继续插入数据】

WANGZK>alter system switch logfile;

系统已更改。

WANGZK>select sequence#,status from v$log;

 SEQUENCE# STATUS
---------- ----------------
        14 ACTIVE
        15 CURRENT
        13 INACTIVE

WANGZK>insert into t select rownum+40 from dual connect by rownum<=30;

已创建30行。

WANGZK>commit;

提交完成。

WANGZK>alter system switch logfile;

系统已更改。

WANGZK>select sequence#,status from v$log;

 SEQUENCE# STATUS
---------- ----------------
        14 ACTIVE
        15 ACTIVE
        16 CURRENT

--可见后插入的数据的日志是记录在15号日志文件中。

【恢复】

RMAN> run {
2>     allocate channel dev1 type disk;
3>     allocate channel dev2 type disk;
4>     set until sequence 15;
5>     restore database;
6>     recover database;
7>     }
【启动并查看结果】

RMAN> alter database open resetlogs;

数据库已打开


WANGZK>select count(*) from t;

  COUNT(*)
----------
        31

WANGZK>

 

--可见最后插入的数据没有插入到T表中,也就是15号日志文件没有被应用。

 

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/728254/viewspace-609901/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/728254/viewspace-609901/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值