截断事务日志所要注意的问题
数据库使用的时间一长,日志也随之成长,当日志占用了较多的磁盘空间时,为节省宝贵的磁盘空间,往往要清除一下日志,笔者也见过很多网上流传的截断日志的方法,总的来说那些流传的方法是有效并可行的,但它忽略了一些要点,容易让新手犯下大错!
首先,我们先谈谈 Backup Log ... With 所使用的几个参数:
讲了这一些,我们就会有两点发现:
1.显式截断日志 WITH TRUNCATE_ONLY 与 WITH NO_LOG 有一定的冒险,原因就是“日志一旦被截断,将不会用来作恢复使用”。为了解除威胁,在使用显式截断日志前,最好备份一下日志,并在截断日志后,做一次完全备份,重新塑造新的日志备份逻辑链,用来防止日志备份中的脱节现象。
2.尽量使用 WITH TRUNCATE_ONLY ,NO_LOG 仅当事务日志完全填满时才使用,当日志完全填满时,不能使用WITH TRUNCATE_ONLY来截断事务日志。这样是因为 MSSQL 将记录此次截断情况,而此时事务日志中却没有剩余空间,因此只能使用 NO_LOG 。
总结:不要轻易使用显式截断日志的方法,经常作日志备份,实质上在日志备份后,也会截断日志的。
若要使用显式截断日志,一定要做好备份,尤其是截断后的那次完全备份!
摘自:http://blog.csdn.net/suntt/archive/2006/02/26/610374.aspx