我建立了一个维护计划,每天临晨3:00做一次日志备份,可是
日志文件还是每天不断的增大,难道2000的维护计划中的日志备份
不会截断日志文件?根据miscrosoft的帮助说:
日志截断在下列情况下发生:   执行完 BACKUP LOG 语句时。  在每次处理检查点时(如果数据库使用的是简单恢复模式)。这包括 
  CHECKPOINT 语句所产生的显式检查点和系统生成的隐式检查点。
  例外情况是如果检查点发生在 BACKU   P 语句仍活动时,则不截断日志。
  有关自动检查点间隔的更多信息,请参见检查点和日志的活动部分。我在自己本地的测试
      1. 开始时 数据库的日志文件为74.9m, 利用dbcc sqlperf(logspace)查看, 日志文件的使用率为 89%
     2. 然后我利用维护计划对日志进行了一次日志备份,此时 日志文件的使用率为 14%
     3. 对数据库进行大量的insert, update,delete操作,数据库的日志文件仍然为74.9m,日志文件的使用率为 34%
这个例子是否表示, 维护计划中的日志备份会截断日志?
但是如果是这样,那为什么生产库的日志文件不断增大呢,它的维护计划和我本地的是一摸一样的啊

解决方案 »

  1.   

    备份日志只是回收了日志文件上的逻辑空间,新的日志可以接着写在原来的日志文件上,
    比如你100M的日志文件,备份日志之后还是100M,但是可以接着用。如果你要回收物理空间,就是收缩日志文件,比如从100M收缩到10M。
    但是在生产环境里面,或者比较忙的系统里面,只要你的磁盘空间是够的,就不要轻易去缩小日志空间,
    如果日志没有足够的磁盘空间,还是会自动扩大的,引起更多的磁盘I/O,更慢。如果你实在要收缩日志文件大小,使用 DBCC SHRINKFILE,看联机文档详细说明。
      

  2.   

    在备份时加上NO_LOG | TRUNCATE_ONLYBACKUP LOG db TO DISK='c:\db_log.bak' WITH FORMAT,TRUNCATE_ONLY--截断日志