大牛将得很详细了!自己看看,学学吧~~
http://www.uml.org.cn/sjjm/201203021.asp
http://www.cnblogs.com/CareySon/archive/2012/02/13/2349751.html
小弟知识做一些学习总结:
A.什么是事务日志?
1.事务日志仅仅是记录与其对应数据库上的事务行为和对数据库修改的日志文件.
2.在SQL Server对于日志文件的管理,是将逻辑上一个ldf文件划分成多个逻辑上的虚拟日志文件(virtual log files,简称VLFs).以便于管理。用个类比方法来看,日志文件(ldf)好比一趟火车,每一节车厢都是一个虚拟日志文件(VLFs):
3. 如果设置日志文件的增量过小,则会产生过多的VLFS,也就是日志文件碎片,过多的日志文件碎片会拖累SQL Server性能.指定合适的日志文件初始大小和增长,是减少日志碎片最关键的部分.
B.事务日志都记录了那些?
1. 每个事务的开始和结束
2. 每次数据修改(插入、更新或删除)。这包括系统存储过程或数据定义语言 (DDL) 语句对包括系统表在内的任何表所做的更改。
3.每次分配或释放区和页。
4.创建或删除表或索引。
C.什么是预写式日志(WRITE-AHEAD LOGGIN)-WAL?
1.在数据写入到数据库之前,先写入到日志。
2.通过WAL技术,每次提交的修改数据的事务并不会马上反映到数据库中,而是先记录到日志
3.因为对于数据的每笔修改都记录在日志中,所以将对于数据的修改实时写入到磁盘并没有太大意义,即使当SQL Server发生意外崩溃时,在恢复(recovery)过程中那些不该写入已经写入到磁盘的数据会被回滚(RollBack),而那些应该写入磁盘却没有写入的数据会被重做(Redo)。从而保证了持久性(Durability)
D.WAL 的特点(作用)?
1. 不仅仅是保证了原子性和持久性。还会提高性能.
E.什么是lazy Writer? 什么又是CheckPoint?
F.lazy Writer 和 CheckPoint 的区别?
1.Lazy Writer和CheckPoint都是将缓冲区内的“脏”页写入到磁盘文件当中。但这也仅仅是他们唯一的相同点了。
2.Lazy Writer存在的目的是对缓冲区进行管理。当缓冲区达到某一临界值时,Lazy Writer会将缓冲区内的脏页存入磁盘文件中,而将未修改的页释放并回收资源。
3.CheckPoint存在的意义是减少服务器的恢复时间(Recovery Time)
G.SQL Server修改数据的步骤?
在简单恢复模式下日志的角色
最好的一个列子:我们在每周一0点做一次完整备份,在周三0点和周五0点分别做差异备份。在简单恢复模式下,如果周六数据库崩溃。我们的恢复计划只有根据周一0点的做的完整备份恢复后,再利用周五0点的差异备份进行恢复.而周五0点之后到服务器崩溃期间所有的数据将会丢失。
原文:http://www.cnblogs.com/mc67/p/4846830.html