log buffer划分为许多块,每个活动块映射到当前联机日志文件中的一个块。log buffer blocks循环重用,直到一个log buffer block映射到日志文件的最后块
假设log buffer中有100个log blocks。在日志切换后,设置sga变量b指出第一个磁盘块(base disk block)(log buffer对应的基磁盘块是block 2)是block 2,另一个sga变量i用来索引产生的重做,日志刚切换后,指向log buffer block 30,过一会,发生几次日志写,log buffer的base disk block变为disk block 82,它映射到log buffer block 81.重做产生继续并且wraps from log buffer block 100 to log buffer block 1.此刻,产生的重做的索引是block 5,它映射到disk block 106.按照这种方式,循环使用log buffer,直到i映射到日志文件的最后一个块。
变量b和i双双受redo allocation latch保护,这样,redo allocation latch不仅用于在log buffer中分配空间以用于redo generation,还用于log buffer释放空间在每次redo write后。来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9599/viewspace-472950/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9599/viewspace-472950/