我正在为70-432 ( Server 2008)考试学习,我对事务日志的工作方式感到有点困惑。
据我所知,(如果我错了请纠正我.)日志将积极地存储在内存中,并尽可能频繁地复制到驱动器上的文件中。在每个检查点,完整的事务被提交到硬盘驱动器上的数据文件(也就是说,直到检查点才真正写入驱动器。尾巴总是保存尚未提交的事务。
当灾难发生时,您尝试备份日志的“尾”。是存储在文件中,还是试图从内存中转储?我知道这并不总是可能做到的,但是尝试去做是非常明智的。
我理解得对吗?
发布于 2012-05-29 07:39:57
据我所知,(如果我错了请纠正我.)日志将积极地存储在内存中,并尽可能频繁地复制到驱动器上的文件中。
事务在被认为已提交到数据库之前,总是在事务日志中对磁盘进行强化处理。另一方面,缓冲区缓存确实存在于内存中,反映了事务在事务日志中提交和强化后数据库的当前状态。缓冲区缓存在检查点期间被刷新到磁盘。
由于存储在RAM中,系统故障可能导致存储在缓冲区缓存中的信息(尚未刷新到磁盘)丢失。由于缓冲区缓存中的所有内容都存储在事务日志中,所以SQL能够在发生故障时恢复所有已提交但尚未刷新到数据文件的事务。
发布于 2012-05-29 06:14:39
在这里阅读:http://msdn.microsoft.com/en-us/library/ms345419(SQL.105).aspx
https://serverfault.com/questions/393467
复制相似问题