标签:
看了盖总的一篇文章
http://www.eygle.com/archives/2008/11/oracle_internals_preface.html
数据文件的第一个Block记录了重要的检查点、SCN等信息,这些信息在启动时要被读取,这里就是这样一种体现。
我们看一下SQL Server的情况,使用DBCC fileheader命令,10为我的一个用户库SSS的数据库ID
环境:SQL Server2012 64位
SELECT DB_ID(‘sss‘) DBCC fileheader(10)
(图一)
(图二)
(图三)
(图四)
从上面的图大家应该发现一些规律
RecoveryForkLSN:Cash Recovery的时候需要调用的lsn,也是RedoStartLSN:27000000027100001
ReadOnlyLsn:只读模式数据库
ReadWriteLsn:读写模式数据库
因为BOOTPAGE是每个数据库启动的第一个页面,启动的过程里面其实最重要也是最耗时就是数据库redo和undo过程
所以把Redo Start LSN放在BOOTPAGE也就不无道理了,数据库一启动马上就读取LSN信息,然后到LDF文件里读取日志
如有不对的地方,欢迎大家拍砖o(∩_∩)o
SQL Server通过BOOT PAGE来进行Crash Recovery
标签:
原文地址:http://www.cnblogs.com/lyhabc/p/4771979.html