我给自己的数据库做了维护计划,每天晚上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?日志
------解决方案--------------------
你恢复的过程是不是只还原了一个日志文件?还是按顺序还原?
------解决方案--------------------
我也查了一下,系统不会自动截断日志的,就算是你收缩日志文件,也不会截断日志。
只有一个例外,就是当你的系统最开始只做了完整备份,数据库处于full恢复模式的时候,如果你不做日志备份,那么sql server会自动截断日志,但如果只要你开始做日志备份,那么sql server就不会截断日志。
因为,一旦他截断日志,你的日志链就断了,后面的备份就无效了。
所以,会不会有其他人,备份了库,或者备份了日志,导致了,这个问题。
因为说实在的,就像我原来公司一样,谁都可以登录到生成库上,有人需要开发新的功能,找运维,速度太慢,于是自己去做了备份。
这个要是他不说,谁都不知道到底出了什么问题。