加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – SQL Server事务日志BACKUPS非常大

发布时间:2020-12-12 16:49:40 所属栏目:MsSql教程 来源:网络整理
导读:在SQL Server 2008 R2中,我有一个数据库,每晚有完整备份,每十分钟有一次事务日志备份.数据库处于完全恢复模式. 问题是事务日志的备份文件大小是几百兆字节,但绝对不应该.数据库中没有任何附近的活动.每次备份只需十分钟.它们太大了,几天后它就会完全填满硬盘.
在SQL Server 2008 R2中,我有一个数据库,每晚有完整备份,每十分钟有一次事务日志备份.数据库处于完全恢复模式.

问题是事务日志的备份文件大小是几百兆字节,但绝对不应该.数据库中没有任何附近的活动.每次备份只需十分钟.它们太大了,几天后它就会完全填满硬盘.

知道是什么导致备份如此之大以及如何解决?

解决方法

为了清楚我们在同一页面,你说每个日志备份是几百MB,而不是日志文件(LDF)很大.后者通常通过复制,镜像,忘记的活动用户事务或 sys.databases.log_reuse_wait_desc中列出的任何其他内容来固定日志来解释.但是,据我所知,情况并非如此.如果每10分钟进行的日志备份每个都有数百MB,那么这意味着在过去的10分钟内必须有数百MB的活动.也许有一些你不知道的活动在不断发生?

当然,我假设您不使用WITH NO_TRUNCATE或WITH COPY_ONLY语法进行日志备份任务.

以下3个查询应该可以让您了解填充的日志内容:

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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读