問題描述:
數據庫的事務日志已滿,起因為"LOG_BACKUP"。
問題截圖:

解決方法:
1).選擇數據庫–屬性—選項—恢復模式–選擇簡單。
2).收縮數據庫后,再調回完整。
1 USE[master] 2 GO 3 ALTER DATABASE 要清理的數據庫名稱 SET RECOVERY SIMPLE WITH NO_WAIT 4 GO 5 ALTER DATABASE 要清理的數據庫名稱 SET RECOVERY SIMPLE --簡單模式 6 GO 7 USE 要清理的數據庫名稱 8 GO 9 DBCC SHRINKFILE (N'要清理的數據庫名稱_log' , 2, TRUNCATEONLY) --設置壓縮后的日志大小為2M,可以自行指定 10 GO 11 USE[master] 12 GO 13 ALTER DATABASE 要清理的數據庫名稱 SET RECOVERY FULL WITH NO_WAIT 14 GO 15 ALTER DATABASE 要清理的數據庫名稱 SET RECOVERY FULL --還原為完全模式 16 GO
數據庫XXX的事務日志已滿,起因為“LOG_BACKUP”
客戶的管理系統數據庫用的是SQL2012,看來是需要壓縮一下數據庫了,但是當我壓縮數據庫的時候竟然報錯了,應該是日志太大了。
那么,解決辦法就有了!
第一步,把數據庫的恢復模式設置為“簡單”,具體操作:
右鍵你的數據庫,選擇“屬性”,然后在“選項”里面把“恢復模式”設置為“簡單”,然后“確定”。

第二步,收縮數據庫,具體操作:
右鍵你的數據庫,選擇“任務”——“收縮”——“數據庫”,在彈出來的面板里直接點“確定”即可。

第三步,把數據庫的恢復模式設置為“完整”,具體操作:
右鍵你的數據庫,選擇“屬性”,然后在“選項”里面把“恢復模式”設置為“完整”,然后“確定”。
當以上方法操作全部報錯時:

首先到服務中,將SQL Server (MSSQLSERVER)服務暫停,然后找到數據庫的mdf和ldf文件,復制一份到其他磁盤(不暫停sql服務是無法復制的),然后直接刪除ldf文件,啟動sql服務;
如何停止sql server服務
1、首先在電腦桌面中,鼠標右鍵點擊計算機-管理,如下圖所示。
2、然后在打開的管理窗口中,點擊左側欄中的服務和應用程序,如下圖所示。
3、接着在打開的服務和應用程序頁面中,點擊SQL SERVER配置管理器 ,如下圖所示。
4、最后點擊SQL SERVER服務后,右鍵點擊選擇停止 ,如下圖所示就完成了。
此時登陸數據庫會發現該數據庫已被掛起,那么執行下面的命令:其中test為數據庫名
USE master
GO
ALTER DATABASE test SET SINGLE_USER
GO
ALTER DATABASE test SET EMERGENCY
GO
DBCC CHECKDB(test,REPAIR_ALLOW_DATA_LOSS)
go
ALTER DATABASE test SET ONLINE
GO
ALTER DATABASE test SET MULTI_USER
GO
執行完成后數據庫即可正常使用,而且mdf日志文件也被清理了





