[分享]系统crash后SQL Server 在recovery时的rollback机制
Posted on 2012-02-21 10:16 nzperfect 阅读(590) 评论(1) 编辑 收藏 举报
来自:msdn论坛贴子
创建一个测试表TESTTABLE,
并且插入如下两行数据:
insert into TESTTABLE values (1, 'aaaa')
insert into TESTTABLE values (2, 'bbbb')
然后做如下的操作。
update TESTTABLE
set myName =
'cccc' where myID
= 2
为了更加直观化,我们可以用一些日志工具如ApexSQL Log (从http://www.apexsql.com/
) 可以下载来观察一下日志的结构。
这时候,我们可以看到,update的语句包含了oldValue和newValue,所以,在做rollback的时候,因为有了oldValue,所以所谓的恢复就是把value改回为oldValue即可
同时,我们也可以看到相应的UNDO Script.
和 REDO script:
只是记录oldValue和newValue,而不是记录那个值对应的整个oldpage跟newpage。
作者:nzperfect
出处:http://www.cnblogs.com/nzperfect/
引用或者转载本BLOG的文章请注明原作者和出处,并保留原文章中的版权信息。