Oracle Redo log

Oracle Redo Logs是记录所有数据更改的关键组件,确保事务可重演以实现故障后的数据恢复。它们由Redo Log Buffer、LGWR和ARCn进程协同工作,涉及在线和归档日志。在归档模式下,Redo Logs用于增量备份和恢复。非归档模式仅支持到最近的完整备份,而归档模式支持热备份和时间点恢复,适合生产环境。
摘要由CSDN通过智能技术生成

Redo Logs概述

The redo log records all changes made to data, including both uncommitted and committed changes.

Oracle通过Redo来保证数据库的事务可以被重演,从而使得在故障之后,数据可以被恢复。在数据库中,Redo的功能主要通过3个组件来实现:Redo Log BufferLGWR后台进程Redo Log File(在归档模式下,Redo Log File最终会经由ARCn进程写出为归档日志文件)。

Redo Log Buffer位于SGA之中,是一块循环使用的内存区域,其保存数据库变更的相关信息。这些信息以重做条目(Redo Entries)形式存储(Redo Entries也经常称为Redo Records)。Redo Entries包含重构、重做数据库变更的重要信息,这些变更包括INSERT、UPDATE、DELETE、CREATE、ALTER或者DROP等。

Redo Entries的内容被Oracle数据库进程从用户的内存空间(PGA)复制到SGA中的Redo Log Buffer之中Redo Entries在内存中占用连续的顺序空间,由于Redo Log Buffer是循环使用的,Oracle通过一个后台进程LGWR不断把Redo Log Buffer的内容写出到Redo Log File中,Redo Log File同样是循环使用的。


使用场景

比如我们昨天晚上备份了数据库,但是今天中午发现磁盘坏掉了,那么我怎样恢复。

我们先通过备份文件恢复到昨天晚上,然后再通过归档Redo日志和在线Redo日志恢复到今天中午。


Redo Log 组件

Redo Log Buffer:如果数据需要写到在线重做日志中,则在写至磁盘之前要在Redo Buffer中临时缓存这些数据。由于内存到内存的传输比内存到磁盘的传输快得多,因此使用重做日志Buffer可以加快数据库的操作。数据在重做缓冲区的提留时间不会太长。实际上LGWR会在一下某个情况发生时启动对这个区的刷新输出(flush):

* 每3秒一次

* 无论何时有人提交请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值