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

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

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

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

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

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

1 select * from sys.sysdatabases where name=tempdb
2 alter database tempdb add file (NAME=Ntemp1_log,FILENAME=ND:\MSSQL12.MSSQLSERVER\MSSQL\DATA\temp1_log.ndf,SIZE=8192KB,FILEGROWTH=65536KB)  TO FILEGROUP [PRIMARY]

 

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

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

上一篇:SQL 多表关联更新


下一篇:SQL UPDATE 语句