Asp.net
“由於 ‘LOG_BACKUP’,數據庫的事務日誌已滿”在共享主機中
我在共享託管計劃中有一個使用 EntityFramework codefirst 方法的 Asp.Net MVC 5 網站。它使用開源的WebbsitePanel作為控制面板,它的 SQL Server 面板有些受限。今天想編輯數據庫的時候遇到了這個錯誤:
The transaction log for database 'db_name' is full due to 'LOG_BACKUP'我四處搜尋並找到了很多相關的答案,例如this和this或this,但問題是他們建議在數據庫上執行查詢。我試著跑步
db.Database.ExecuteSqlCommand("ALTER DATABASE db_name SET RECOVERY SIMPLE;");與視覺工作室(在
HomeController),但我得到以下錯誤:System.Data.SqlClient.SqlException: ALTER DATABASE statement not allowed within multi-statement transaction.我該如何解決我的問題?我應該聯繫支持團隊(這對我的主人來說有點糟糕)還是我可以自己解決這個問題?
致電您的託管公司,讓他們設置定期日誌備份或將恢復模式設置為簡單。我敢肯定你知道是什麼決定了選擇,但無論如何我都會明確表示。如果您需要能夠恢復到任意時間點,請將恢復模式設置為完全。無論哪種方式,數據庫都按原樣配置錯誤。
除了本的回答,您可以根據需要嘗試以下查詢
USE {database-name}; GO -- Truncate the log by changing the database recovery model to SIMPLE. ALTER DATABASE {database-name} SET RECOVERY SIMPLE; GO -- Shrink the truncated log file to 1 MB. DBCC SHRINKFILE ({database-file-name}, 1); GO -- Reset the database recovery model. ALTER DATABASE {database-name} SET RECOVERY FULL; GO更新信用**@ cema-sp**
要查找數據庫文件名,請使用以下查詢
select * from sys.database_files;