第1步:检查日志现在使用情况和数据库状态,脚本如下所示,如果检查发现日志的绝大部分都在使用中(log space used)很高,说明日志记录不能被sqlserver清除掉,需要找原因;如果日志重用等待状态是log_backup,那就说明sql server等待着日志备。这时需要检查备份计划。
第2步:如果日志大部分都在使用中,而且日志重用等待状态是active_transaction,那么就要看这个数据库最久未提交的事务是谁申请的。脚本如下:
说明:其中用dbcc opentran先查询出运行中的事务情况,然后用下面的查询查询出具体事务关联的对象。然后如果是某个链接引起的,通过sessionid检查什么链接端什么情况,如果不能,直接在服务器上kill掉这个链接。比如如果sessionid为40。则:kill 40然后再运行dbcc opentran.检查下一个。依次类推。