数据库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.MSSQLSERVER\MSSQL\DATA\temp1_log.ndf',SIZE=8192KB,FILEGROWTH=65536KB)  TO FILEGROUP [PRIMARY]

 

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM