
资源由 www.eimhe.com 美河学习在线收集分享
---------- ------------------
1 2414314
2 2414314
3 2414314
4 2414314
5 2414314
6 2430480 在备份期间,scn 被冻结,当检查点发生时不受影响,它是恢复阶段运用日志的起点。
7 2414314
SQL> select * from v$backup;
FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- -------------------
1 NOT ACTIVE 0
2 NOT ACTIVE 0
3 NOT ACTIVE 0
4 NOT ACTIVE 0
5 NOT ACTIVE 0
6 ACTIVE 2430480 2012-07-30 11:07:19
7 NOT ACTIVE 0
STATUS 是 ACTIVE,表示可以备份相应的数据文件。
$cp test01.dbf test01.bak
SQL> alter tablespace test end backup;
SQL> select * from v$backup;
备份完毕,尽快执行 end backup
如果在 end backup 之前发生数据库 abort,那么可以在下次启动到 mount 时 end backup,从而完成实例恢复。
六)split block(fractured block)问题
一个 Oracle block 一般包含多个 OS block,,当手工热备时,OS 的 cp 单位不是 Oracle block 而是 OS block,而 Oracle 的 DBWR 又
可能不时的从内存中刷新 Oracle block(脏块)到磁盘上,如此,OS 级的拷贝便可能造成:一个 Oracle Block 是由不同的版本组成,
比如未被 DBWR 刷新 Header block 加上另一部分被刷新的 foot block,这样 cp 出来的 Oracle blcok 就是 split block。
数据库的一致性是不允许 oracle block 是 split 的, split block 实际上属于 logical corruption Oracle 采取的办法是:在 backup mode
后,如果发现首次 DBWR 要写脏块,则将该块被刷新之前的镜像数据记录到 redo buffer,这样,虽然 cp 后的文件里仍然含有 split
block,而当需要恢复时,日志会前滚该块的前镜像,以保证所有被恢复的 oracle block 最终是一个完整的版本。
这就是我们常常发现在热备时日志文件会急剧增大的原因。
RMAN 备份不会造成 split block。 RMAN 备份时以 oracle block 为读取单元,并查验块的一致性,如果不一致会重复读,三次失
败,将标注该块为逻辑坏块。
第三章:手工完全恢复
一)基本概念
1)完全恢复的步骤
1)restore: OS 拷贝命令还原所有或部分 datafile
2)recover:SQL*PLUS 利用归档日志和当前的 redo 日志做恢复
2)完全恢复可以基于三个级别
recover database: 所有或大部分 datafile 损坏,一般是在 mount 状态完成
recover tablespace: 非关键表空间损坏,表空间下某些数据文件不能访问,一般是在 open 下完成
recover datafile: 单一或少量数据文件损坏,可以在 mount 或 open 状态完成
3)什么是关键文件
如果关键文件损坏,数据库将不能维持在 open 状态,或崩溃或死机!
哪些文件是关键文件:①system01 file,②undotbs file,③control file,④current log file
4)恢复过程可以查看的视图:
1)v$recover_file 查看需要恢复的 datafile
2)v$recovery_log 查看 recover 需要的 redo 日志
相关文档
评论