重做日志缓存(Redo Log Buffer)

Redo Log Buffer 是 SGA 中一段保存数据库修改信息的缓存。这些信息被存 储在重做条目(Redo Entry) 中. 重做条目中包 含了由于 INSERT 、UPDATE DELETE、CREATE、ALTER 或 DROP 所做的修改操作而需要对数据库重新组织 或重做的必须信息。在必要时,重做条目还可以用于数据库恢复。


重做条目是 Oracle 数据库进程从用户内存中拷贝到 Redo Log Buffer 中去的。 重做条目在内存中是连续相连的。后台进程 LGWR 负责将 Redo Log Buffer 中的 信息写入到磁盘上活动的重做日志文件(Redo Log File)或文件组中去的。


参数 LOG_BUFFER 决定了 Redo Log Buffer 的大小。它的默认值是 512K(一 般这个大小都是足够的),最大可以到 4G。10g 中可通过参数自动设置。当系统 中存在很多的大事务或者事务数量非常多时,可能会导致日志文件 IO 增加,降 低性能。这时就可以考虑增加 LOG_BUFFER。


但是,Redo Log Buffer 的实际大小并不是 LOB_BUFFER 的设定大小。为了 保护 Redo Log Buffer,oracle 为它增加了保护页(一般为 11K):


SQL> select * from v$sgastat where name = 'log_buffer';

POOL                 NAME              BYTES

------------ -------------------------- ----------

log_buffer         7135232

SQL> show parameter log_buffer

NAME                                       TYPE                VALUE

------------------------------------ ----------- ----------------

log_buffer                                 integer          7024640


SQL>


请使用浏览器的分享功能分享到微信等