Redo log Buffer ,LGWR进程

一、Redo log Buffer 

Redo log buffer是数据库系统中的一部分,它的主要功能和作用包括:

1.临时存储:redo log buffer 用于临时存储事务的重做记录。

2.提高性能:通过在内存中缓冲重做记录并以批量方式写入磁盘,可以减少磁盘 I/O 操作次数,提高系统性能。

3.数据持久性:确保即使在系统故障情况下,已提交的事务更改也能被恢复,保证数据的持久性和一致性。

4.减少磁盘写入:优化了在写入重做日志文件时的磁盘写入顺序和效率,从而减少了频繁的磁盘写入操作。

总的来说,redo log buffer 的作用是优化数据库系统的性能,并确保事务的持久性和一致性。

Commti提交事务,是从Redo log buffer 通过LGWR写到Redo log  file(循环使用)中

对数据修改一定会产生redo ,undo也会产生redo,有索引创建的话也会创建redo。

redo log file的状态:

  1. CURRENT指当前的日志文件,在进行实例恢复时是必须的;
  2. ACTIVE是指活动的非当前日志,在进行实例恢复时会被用到。Active状态意味着,Checkpoint尚未完成,因此该日志文件不能被覆盖。
  3. INACTIVE是非活动日志,在实例恢复时不再需要,但在介质恢复时可能需要。
  4. UNUSED表示该日志从未被写入,可能是刚添加的,或RESETLOGS后被重置。

Redo entries是数据库变更的相关信息,这些信息以重做条目形式存储。Redo Entries包含重构、重做数据库变更的重要信息,这些变更包括INSERT、UPDATE、DELETE、CREATE、ALTER或者DROP等。在必要的时候,Redo Entries会被用于数据库恢复。

在数据库中,Redo的功能主要通过3个组件来实现:Redo LogBuffer、LGWR后台进程和Redo Log File(在归档模式下,Redo Log File最终会写出为归档日志文件)。在Oracle的SGA中,存在一块共享内存,称为Redo Log Buffer。Redo Log Buffer位于SGA之中,是一块循环使用的内存区域,其中保存数据库变更的相关信息。

总的来说,Redo Entries在Oracle数据库中扮演着关键角色,它们是数据库恢复和事务重演的重要工具。

二、LGWR Background Proccess

LGWR 是 Oracle 数据库中的一个后台进程,其主要作用包括:

1.重做日志缓冲区的管理:LGWR 负责将重做日志缓冲区中的数据持久化到磁盘的重做日志文件中。

2.保证事务的持久性:通过将事务的重做信息写入磁盘,LGWR 确保数据库中的事务在系统故障时可以被恢复,从而实现事务的持久性。

3.协调并发事务的提交:LGWR 确保事务按正确的顺序提交到磁盘上的重做日志文件中,以满足数据库的 ACID 特性(原子性、一致性、隔离性和持久性)。

总之,LGWR 后台进程在 Oracle 数据库中起着至关重要的作用,确保了数据库事务的可靠性和一致性。

LGWR将Redo entries从Redo buffer 写入Redo log file遵循的原则

1.当用户进程提交事务时,LGWR进程会写入一个提交记录。

2.每3秒,LGWR进程会将日志缓冲区的内容写入到日志文件。

3.当日志冲区满1/3时,LGWR进程会将日志缓冲区的内容刷出。

4.在DBWR(数据块写入)将修改缓冲区写入磁盘前,LGWR进程会将日志缓冲区   的内容刷出。

三、Redo log switches

Redo log switch 是指在 Oracle 数据库中,当当前的 redo log 文件已经写满、停止写或者达到一定条件时,系统会自动切换到另一个 redo log 文件继续记录重做日志。这个过程称为 redo log switch。通过不断地进行 redo log switch,可以确保数据库持续地记录事务的变化,并且保证了数据库的持久性和一致性。

一次日志切换会发生checkpoint

小贴士:

事务提交后LGWR会强制将Redo entries从Redo buffer 写入Redo log file中,而DBWn不会强制将

   Database Buffer Cache中的数据写入到datafile。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值