在sql Server 2008 R2中,我有一个数据库,每晚有完整备份,每十分钟有一次事务日志备份.数据库处于完全恢复模式.
问题是事务日志的备份文件大小是几百兆字节,但绝对不应该.数据库中没有任何附近的活动.每次备份只需十分钟.它们太大了,几天后它就会完全填满硬盘.
知道是什么导致备份如此之大以及如何解决?
解决方法
为了清楚我们在同一页面,你说每个日志备份是几百MB,而不是日志文件(LDF)很大.后者通常通过复制,镜像,忘记的活动用户事务或
sys.databases.log_reuse_wait_desc
中列出的任何其他内容来固定日志来解释.但是,据我所知,情况并非如此.如果每10分钟进行的日志备份每个都有数百MB,那么这意味着在过去的10分钟内必须有数百MB的活动.也许有一些你不知道的活动在不断发生?
当然,我假设您不使用WITH NO_TRUNCATE或WITH COPY_ONLY语法进行日志备份任务.
use [<myproblemdb>]; go select count(*) as CountLogRecords,sum([Log Record Length]) [Total Log Length] from fn_dblog(null,null); select count(*) as CountTransactionRecords,sum([Log Record Length]) [Transaction Log Length],[Transaction ID] from fn_dblog(null,null) group by [Transaction ID] order by 2 desc; select count(*) as Countlogoperations,sum ([Log Record Length]) as [Operation Log Length],[Operation] from fn_dblog(null,null) group by [Operation] order by 2 desc;