sqlServer在关闭的时候主要做两件事,1是停止来自终端的相应(踢掉用户),2就是执行checkpoint(将内存中的脏数据回写到磁盘)。那么问题来了 ,sqlServer到底是先踢掉用户还是先checkpoint呢?
下面是我做的实验.
第一步:
开始3502标记,将checkpoint的相关操作写入errorlog中。
dbcc traceon(3502,-1)
第二步:
net stop mssqlserver
第三步:
查看sqlServer的错误日志,在安装的ms过程如果没有更改目录,那么 ms的错误就会在
C:\Program Files\Microsoft sql Server\MSsql11.MSsqlSERVER\MSsql\Log
从错误日志文件的截图中可以知道 ,ms 在关闭的时候,首先是对每一个DB进行checkpoint之后再停止对来自终端的响应。!
相关跟踪标记介绍!
http://www.cnblogs.com/CareySon/archive/2013/04/23/3039284.html