第七章Maintaining Online Redo Log Files
本章目标
1、了解联机重做日志文件的目的
2、理解联机重做日志文件的结构
3、学会控制日志切换和检查点
4、联机重做日志的多路保存和维护
5、使用OMF管理联机重做日志文件
6、获取联机重做日志文件信息
联机重做日志文件特点
①记录数据的所有变化
②提供数据恢复机制
数据的所有变化首先都是存储在内存中,如果数据库突然出现问题,内存中的数据可能没有写入到磁盘中。此时联机重做日志文件提供了一种数据保护机制,每隔3秒钟会将数据变化写入到联机重做日志中。Oracle数据库所有数据写入磁盘之前会确保数据已经写入到redo log中
③以group为单位进行管理
④至少需要两组日志
Redo files结构
Online Redo Log File Groups
①online redo log file group联机重做日志组是多个相同的online redo log files的集合,不同组中的online redo log files不同
②后台进程LGWR同时向online redo log file group中的所有online redo log files写入完全相同的信息
③为了保证数据库的正常运行,Oracle server至少需要两组online redo log file groups
Online Redo Log File Members
①online redo log file group中的每个online redo log file都是一个成员
②online redo log file group中的每个online redo log file成员都有完全相同的log sequence numbers,同时每个成员大小相同
③Oracle server每次向log group中写日志时都会分配一个LSN(log sequence number),用来唯一标识每一个online redo log file
Multiplexed Redo Log Files多路复用重做日志文件
为了防止online redo log files损坏,至少需要两组完全相同的redo log,同时放置于不同的磁盘。即使不同组的redo log files放置于同一个磁盘,也要保证放置于不同的位置,这同样可以防止出现IO错误、文件崩溃等。
Redo log files多路复用,增加了数据的可靠性,但是也增加了磁盘的IO,对数据库的性能是有影响的。
Redo Files工作原理
①online redo log files是循环写入的
②一组online redo log file写满了,LGWR开始在下一组中写入
此时:发生了log Switch,引发了checkpoint,相关信息写入到控制文件中
从一组online redo log files转换到另一组online redo log files就叫做log Switch
Checkpoint就是将内存中的脏块(被修改的block)写入到磁盘中(DBWn进程)
Log Switch引发checkpoint,但发生checkpoint并不一定是log Switch
Checkpoint发生后,进程CKPT会将相关信息写入到控制文件中
LGWR进程何时写日志
①事务被提交
②每三秒写一次
③redo log buffer达到了三分之一
④redo log buffer中有超过1M字节数据变化
⑤在DBWn进程将数据库buffer cache中的脏数据写入到data files之前