|
原帖由 easonmy 于 2008-4-13 09:43 发表 ![]()
你看看下面测试该如何解释?
1: 全备份数据, 这个过程中 log1是current. 说明备份这个动作在 log1 中保存
rman> backup database;
2: 切换日志,发出检查点,使log1变成 inactive. 说明此备份动作引起的scn变化已经同步到了当前controlfile和datafile
>alter system switch logfile;
>alter system checkpoint;
3: 这时 log2 是current, 此时插入一条测试数据, 说明该条测试数据位于 log2中
>insert into test values(1);
>commit;
4: shutdown abort 后, 删除所有 redolog, archivelog
5: 转储第一步的全备份,进行不完全恢复成功
> startup mount;
rman> restore database;
> recover database until cancel;
--直接应用cancel成功
> alter database open resetlogs; 打开了数据库
6: 在这个过程中删除了所有redolog, archivelog, 却可以进行不完全恢复. 这是什么道理呢?
你的这个试验证明了一个问题:不完全恢复至少要恢复到哪里--即consistent(non-fuzzy)的状态。
在你备份的时候,我想由于是测试环境,当时没有其它操作,因而你得到的备份本身就是一致的(因为备份开始时会对每个备份片所包含的数据文件作检查点)。于是你recover时没有应用日志,这相当于一个冷备份。
你可以重做这个实验,但是在备份过程中在另一会话中作些dml操作,相信你不会再次恢复成功。 |
|