我正在学习70-432(SQL Server 2008)考试,对于事务日志的工作原理我有些困惑。
根据我的理解(纠正我,如果我错了…)日志被积极地存储在内存中,并尽可能经常复制到驱动器上的文件。 在每一个检查点,完整的事务处理都被提交给硬盘上的数据文件(也就是说,它们实际上并没有被写入到驱动器中,直到检查点为止,而且尾部始终保存尚未提交的事务。
发生灾难时,您尝试备份日志的“尾部”。 这是存储在一个文件,或者你想从内存中转储? 我知道这并不总是可以做到的,但是最好还是试着去做。
我对这个了解吗?
根据我的理解(纠正我,如果我错了…)日志被积极地存储在内存中,并尽可能经常复制到驱动器上的文件。
事务日志中的事务在被认为已经被提交到数据库之前总是被强化到磁盘。 另一方面,缓冲区caching确实存在于内存中,并在事务日志中事务被提交和强化之后反映数据库的当前状态。 缓冲区caching在检查点期间刷新到磁盘。
由于它存在于RAM中,因此系统故障可能会导致存储在缓冲区caching中的信息(并未刷新到磁盘)丢失。 由于缓冲区caching中的所有内容都存储在事务日志中,因此SQL能够在发生故障时恢复所有已提交但尚未刷新到数据文件的事务。
有一个在这里阅读: http : //msdn.microsoft.com/en-us/library/ms345419(SQL.105).aspx