我给自己的数据库做了维护计划,每天晚上9点自动完整备份,再每隔10分钟自动日志备份。昨天下午5点多数据库损坏,恢复数据的时候,提示:“某xx日志的LSN太晚,包含XX的日志可以还原”。猜测可能是日志链中有某个(些)日志损坏,于是逐个尝试,发现昨天上午8:45分的日志坏了,它之后的所有日志都不能用了。泪奔中……      我查了数据库日志、操作系统日志,发现8:45分左右系统有自动做一次数据库日志截断,这极有可能是造成8:45分日志文件无法使用的原因。截图如下:
        日期:2013-11-5    来源:MSSQLSERVER
       时间:8:45       
       类型:错误           事件ID:17055
       用户:N/A
       描述:
              18278
            数据库日志已截断:数据库:xxx
    
      我查了盘空间,是足够的。电脑在8:45分也没出现过异常断电等情况。
      问题:1)为什么SQL SERVER 2000会自己截断数据库日志?  2)截断日志会导致自动备份的日志文件LSN断裂吗?     非常感谢!
   SQL 日志

解决方案 »

  1.   

    你查查 msdb.dbo.backupset 是不是在那个时间,有其他的 日志备份操作。
    select *
    from msdb.dbo.backupset
    where backup_start_date >='时间'
          and backup_finish_date <='时间'
          and database_name = '你的数据库'
      

  2.   

    1、应该不是sql server自己截断的把2、截断日志肯定会导致日志链断的,应该是有备份日志操作,在你的定时10分钟没到之前,就有日志备份
      

  3.   


         谢谢回复。 问题的关键是我想弄明白这个截断在什么场合下会发生? 不然,即使备份了日志也是不踏实的,因为不知道什么时候它会莫名其妙的坏掉某个文件。我也查了一下,系统不会自动截断日志的,就算是你收缩日志文件,也不会截断日志。只有一个例外,就是当你的系统最开始只做了完整备份,数据库处于full恢复模式的时候,如果你不做日志备份,那么sql server会自动截断日志,但如果只要你开始做日志备份,那么sql server就不会截断日志。因为,一旦他截断日志,你的日志链就断了,后面的备份就无效了。所以,会不会有其他人,备份了库,或者备份了日志,导致了,这个问题。因为说实在的,就像我原来公司一样,谁都可以登录到生成库上,有人需要开发新的功能,找运维,速度太慢,于是自己去做了备份。这个要是他不说,谁都不知道到底出了什么问题。
      

  4.   

    文件损坏有太多太多的可能了,我最近见过由于mdf和ldf是存放在网络映射盘,一附加就置疑