SQL Server 完整or大容量模式下的事务日志

SQL Server 完整模式下的事务日志

   1.在完整恢复模式下,日志作为恢复数据的重要组成部分,日志的管理和对日志空间使用的管理则需要重视

   2.在完整恢复模式下,CheckPoint不会截断日志。只有对日志的备份才会将MinLSN向后推并截断日志

   3.从日志恢复数据的原理是Redo,也就是将日志中记载的事务再重做一遍。这个开销和从完整或差异备份中恢复相比,要大很多。因此尽可能的减少利用日志的恢复量。

    而使用完整或者差异备份来恢复更多的数据

SQL Server  大容量模式下的事务日志

    1.微软推荐的最佳实践是在进行大量数据操作时(比如索引的创建和rebuilt,select into操作等)

     暂时由完整恢复模式切换到大容量恢复模式来节省日志,这个转换并不会破坏日志链!

两种情况会破坏你的日志链

        1.数据库的恢复模型被切换到了简单(SIMPLE)后,再次被切换回完整或是批量日志。

        2.Backup log命令运行时,附带了TRUNCATE_ONLY/NO_LOG选项。

   实例:

          一个完整备份 DB.BAK 

          两个事务日志备份 DB1.TRN DB2.TRN

          还原时,先还原完整备份DB.BAK,然后依次还原DB1.TRN DB2.TRN,具体的t-sql 操作 可以看我另外一篇文章(sqlserver 备份还原

          这里指的注意的是:如果在中途将完整模式切换成简单模式,又切换成完整模式~~那么你完蛋了,你无法恢复备份了!

 尾部日志备份:

      在DB_1处做了完整备份,并且接下来两次分别做了两次日志备份(Log_1和Log_2),在Log_2备份完不久服务器由于数据所在磁盘损坏。这时如果日志文件完好,则可以通过备份

尾部日志(Tail of log)后,从DB_1开始恢复,依次恢复Log_1,Log_2,尾部日志来将数据库恢复到灾难发生时的时间点。理论上可以使数据的损失为0。

如理利用尾部日志恢复数据库呢?你可以看我的这篇文章

SQL Server中结尾日志的两种方法

参考文献:  

http://www.cnblogs.com/CareySon/archive/2012/02/13/2349751.html

http://blog.csdn.net/tjvictor/article/details/5247659

原文地址:https://www.cnblogs.com/mc67/p/4860874.html