系統運行過程中,突然報錯數據庫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]
總結:數據庫日志因設置了大小限制,導致日志達到限制最大值時就會死掉。 數據庫日志大小限制這個功能就是個坑!!!千萬別設置