重作日志缓冲区(redo log buffer)
重作日志缓冲区属于SGA。Oracle引入重作日志缓冲区的目的是用于数据恢复。
Oracle在执行任何DML和DDL操做改变数据以前,都会将恢复所须要的信息,先写入重作日志缓冲区,而后再写入
数据库高速缓冲区。
Oracle执行DML语句时,只有编译(parse)和执行(execute)两个阶段:
(1)若是数据和回滚数据不在数据库高速缓冲区中,Oracle服务器进程会将它们从数据文件中读取到数据库高速缓冲区中。
(2)Oracle服务器进程会在要修改的数据行上添加行级锁。
(3)Oracle服务器进程将数据的变化信息和回滚所需的信息都写入重作日志缓冲区。
(4)Oracle服务器进程将对数据所作的修改和回滚所需的值都写入数据库高速缓冲区。而后将数据库高速缓冲区中的这些数据库标示为脏数据区(由于此时内存中的数据和外存中的数据是不一致的)。
(5)重作日志写进程将重作日志缓冲区中的数据写入重作日志文件中。
(6)数据库写进程将数据库高速缓冲区中的脏数据区中数据写入数据文件。