數據庫“xxx”的事務日志已滿,原因為“LOG_BACKUP”


問題描述:

數據庫的事務日志已滿,起因為"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日志文件也被清理了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM