数据库tempdb的事物日志已满,原因为“ACTIVE_TRANSACTION”

系统运行过程中,突然报错数据库tempdb的事物日志已满,原因为“ACTIVE_TRANSACTION”。导致所有业务崩溃。

接到报警后,进入数据库服务器。检查硬盘空间正常,于是登录数据库,一登录就报错。且除系统数据库之外都无法显示。 

  • 首先尝试了收缩数据,但前台操作一直不成功
  • 然后找了一个增加数据库日志文件的命令,在测试库测试添加成功

先查询数据库日志的存放位置,再讲tempdb的位置代入到FILENAME的位置中。第一次执行未成功,第二次执行成功。

执行成功后系统即恢复正常。

1 select * from sys.sysdatabases where name='tempdb'
2 alter database tempdb add file (NAME=N'temp1_log',FILENAME=N'D:MSSQL12.MSSQLSERVERMSSQLDATA	emp1_log.ndf',SIZE=8192KB,FILEGROWTH=65536KB)  TO FILEGROUP [PRIMARY]

总结:数据库日志因设置了大小限制,导致日志达到限制最大值时就会死掉。 数据库日志大小限制这个功能就是个坑!!!千万别设置

立刻行动,坚持不懈,不断学习!
原文地址:https://www.cnblogs.com/deng779256146/p/13029404.html