The transaction log for database 'xx' is full,Error: 9002, Severity: 17, State: 2

本文描述了如何处理SQL Server中遇到的事务日志已满的问题。通过检查数据库日志状态,发现日志文件占用比例过高,怀疑存在长事务。通过查询sys.databases视图确认日志正等待transaction的检查点。进一步排查发现存在运行近90分钟的长事务,并提供了查看事务详细信息的方法,以便与开发人员合作解决问题。
摘要由CSDN通过智能技术生成

检查数据库日志,有如下报错信息:

Error: 9002, Severity: 17, State: 4.
The transaction log for database 'SharedServices1_Search_DB' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases

查看当前日志的使用情况:
这里写图片描述

这里日志并没有完全满,但已经占用70GB日志文件的79%,也有50多GB了,个人感觉这是不正常的。个人曾经读过《SQL Server 2012实施与管理实战指南》,在日志这一块有这么一段描述:

由于应用程序设计问题,有些连接可能会遗留一个事务在SQL Server里面,而不是及时提交它,SQL Server是不会干预用户的这种行为的。只要这个连接不退出,这个事务会永远存在,直到客户端主动提交或者回滚。从这个事务开启的那个时间点开始的所有日志记录,SQL Server都会保留(做过日志备份也没有用)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值