首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 数据库 >

SQL Server 2008数据库技术内幕(李爱武著)(2)

2012-11-12 
在学习SQL Server的过程中,解决所遇到的各种问题的一个整理,每个结论后面都有详细的实验过程来验证它的正确性,从而让读者可以眼见为实,也可以纠正自己的一些囿于理论形成的偏差认识。
商家名称 信用等级 购买信息 订购本书
SQL Server 2008数据库技术内幕(李爱武著) 去商家看看
SQL Server 2008数据库技术内幕(李爱武著) 去商家看看

文摘

版权页:



插图:



这里未显示处于非活动状态的重做记录,并不是因为这些记录被删除。当执行delete操作删除表中的记录时,在这些记录所在的数据页中,对应被删除记录的槽中的偏移量数据会设置为0。而执行checkpoint操作后,这些非活动重做记录所在日志段中的数据却不会发生任何改变,也就是说,非活动记录并未删除。
将数据库设置为简单恢复模式,使用fn_dblog函数查询重做数据信息时,日志记录从数据库当前的MinLSN开始显示,即只能显示重做文件中的活动部分。
假设执行checkpoint操作得到MinLSN中的VLF序号为n,上次checkpoint操作的开始LSN中的VLF序号为m,若n>m,则序号为n,n+1,…,m—1的VLF都不包含活动日志记录,这些VLF的状态会被此次checkpoint操作设置为可重用。
12.2 实例恢复过程
对事务执行commit操作会把内存缓冲区中的重做数据写入重做日志文件,并把commit操作作为单独的日志记录写入重做日志文件,这些操作都完成即标志着此事务提交操作成功执行。commit操作并不会把事务修改的数据写入磁盘的数据文件,也就是说,提交后的事务,其修改的数据可能并未存入磁盘。
另外,由于内存的压力和checkpoint操作的执行,SQL Server可能已经把未结束事务修改过的部分数据写入磁盘。
在任何时刻,数据库中的事务都会存在以下两种状态或其中一种:
?提交的事务,其修改的数据尚未写入磁盘。
?未提交的事务,其修改的数据已经部分写入磁盘。
如果SQL Server服务某个时刻出现故障,则下次启动时,SQL Server要先解决事务的数据完整性问题。首先执行前滚操作,把数据库的状态恢复到数据库出现故障的时刻,如果提交的事务所修改的数据未写入磁盘,则应通过应用重做日志文件中的日志记录并将其重新写入磁盘,如果未提交的事务所修改的数据已写入磁盘,则执行undo操作将其从磁盘撤销。这个过程称为实例恢复。

相关阅读:

马克思主义经典著作导读(王平著)

教育部马克思主义理论研究和建设工程重

我是个算命先生(易之著)

盗墓笔记1-8(套装共9册)(南派三叔著)

心理学与接受美学(王妍著)

幽默二十讲(李静著) 

更多图书资讯可访问读书人图书频道:http://www.reAder8.cn/book/

热点排行