非归档模式下也可能能够recover?

本文通过实验对比了在Oracle数据库中非归档模式和归档模式下进行数据恢复的过程。尽管两种模式都能恢复数据文件,但归档模式依赖于归档日志文件,而非归档模式则依靠联机日志文件。在非归档模式下,如果联机日志被覆盖,备份可能无效。实验展示了如何在两种模式下进行数据文件的恢复,并强调了归档模式在长期日志保存和恢复过程中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚刚才学Oracle的时候做的实验,后来看看觉得意义不大,但如果你是初学,看不懂复杂的实验,又纠结这个问题,也可以看看:


很简单的原因:即使不处于归档模式,自备份以来到现在的所有操作在联机日志文件中能找到的话,就能recover。

但受到联机日志文件大小的限制,几乎不能依赖它来进行数据恢复。


归档模式下试验流程

1.  创建一个表空间test1 使用test01.dbf

2.  test01.dbf创建一个副本(备份);

3.  做一些操作使test01.dbf文件中的数据发生变化;

4.  切换联机日志文件,让它归档;

5.  关闭数据库,删除test01.dbf,启动数据库找不到文件;

6.  把最初的副本复制过去,或者让alter database renamed file

7.  然后开启提示要恢复。最后恢复成功,步骤3的操作也都在

非归档模式下的流程:

与归档模式基本一致,区别:

1.  步骤4对于非归档模式意义不大;

2.  test1 之类都都变成了2

3.  步骤7恢复很快捷,不过恢复方法是有区别的。

 

总结:

非归档模式和归档模式都能进行数据文件的恢复,共同点是都必须有依靠一个备份文件才能恢复备份之后的操作。区别在于:

1.  归档模式依靠归档日志文件,使用arc放入data buffer cache再写入以此恢复

2.  非归档模式依靠联机日志文件,放入data buffer cache再写入以此恢复,但如果你的联机日志文件被覆盖,你的备份就无效了


我们知道,联机日志文件本身不大,是通过arc把它里面日志放到大得多的归档日志文件进行归档,以此保存更长久的日志。

 

 


步骤1: 创建一个表空间test1 使用test01.dbf; 

SQL> archive log list

数据库日志模式             非存档模式

自动存档             禁用

存档终点            USE_DB_RECOVERY_FILE_DEST

最早的联机日志序列     86

当前日志序列           88


SQL> alter database close;//到mount阶段

数据库已更改。

 

SQL> alter database archivelog;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值