- 重做日志文件由重做记录填充;
- 一条重做记录,或者叫做重做条目,由一组变化矢量组成。每一组矢量描述了对单个数据库块所作的改变。例如:修改了员工表中薪水的值,那么就会产生一条重做记录,这条记录包含了描述该表数据段块变化的变化矢量,撤销段数据块以及撤销段的事务表;
- 重做条目记录的数据可以用于重建数据库的所有的改变,包括:撤销段。因此,重做日志也保护了回滚数据。当使用重做数据恢复数据库时,数据库会读取重做记录中的变化矢量,并将它们应用于相关的块;
- 重做记录以循环的方式缓存在SGA的重做日志缓冲区中,并由LGWR数据库后台进程写入到重做日志文件中。当事务被提交时,LGWR进程将重做日志从缓冲区写入日志文件中,并分配一个系统改变号(SCN),用于标识每一个被提交事务的重做记录。Only when all redo records associated with a given transaction are safely on disk in the online logs is the user process notified that the transaction has been committed.(这句话不知道怎么理解?);
- 在事务被提交之前,重做记录也会被写入重做日志文件。如果重做日志缓冲区满,或者另一个事务提交,LGWR会清空重做日志缓冲区,并将它们写入重做日志文件,即使有一些重做记录可能还没有被提交。如果必要,数据库不会回滚这些改变。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7902185/viewspace-627671/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7902185/viewspace-627671/