oracle redo备份,oracle备份恢复--redo log中为何有uncommit数据

为了防止日渐衰退的记忆力以及到处乱写的笔记,最近一直在研究基础知识,看到盖哥恢复这一章,尚有许多不明确地方,怕以后忘记,做个总结,方便以后查漏补缺。具体编写原因,为何online redo log中为何会有uncommited的数据。只是个人的一些理解及总结,有错误之处欢迎请指出,共同学习。

环境:linux 5.4+oracle 11g

一、备份恢复

1、备份类型:逻辑备份与物理备份

2、逻辑备份:

即通过导出的方法对数据库进行备份。对于故障点与备份点间的数据恢复无能为力。

3、物理类型:热备与冷备。

冷备:是指在数据库关闭的情况下(mount状态下是否也可以),对数据库进行全库拷贝。此时数据库处于一致的状态。恢复的时候,需要将全部文件都恢复即可。

热备:

条件:数据库处于open状态且为归档模式.。

验证过在不归档,mount模式下进行alter tablespace users begin backup,会提示数据库尚未open。

二、为何需要前滚和回滚

首先,commit的时候做了哪些操作。

①、系统为commit生成一个scn。

②、LGWR将在redo log buffer中的redo log entries连同此时的scn写入到online redo log。

官方文档:The log writer(LGWR) process writes remaining redo log entries in the redo log buffer to the online redo log and writes the transaction scn to the online redo log.

③、释放表与行的锁

④、删除savepoints

所以在commit的时候,LGWR会将redo log buffer 中的剩余的redo log entries全部写入到online redo log中,也即说,此刻重做日志中就包含了commit和uncommit的数据。所以在数据库发生crash的时候,在恢复的时候为什么要进行前滚与回滚,因为online redo log中包含了uncommit的数据,这部分数据是不需要 写入到数据文件中的,所以要通过回滚将其去掉。

在commit的操作后,undo segment 的状态会变为inactive,故可在回退中知道哪些数据未提交需回退。

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值