
我託管網站,有時會收到錯誤:The log file for database '%.*ls' is full.
並且必須聯繫我的託管提供者來清理資料庫日誌檔案。
如何停用日誌記錄或配置它以確保日誌檔案不會填滿?
(我使用的是Community Server引擎,所以不能進行sql最佳化。)
答案1
日誌檔案取決於資料庫復原模型。預設值為“完整”,這意味著您將備份資料庫和交易日誌。當您備份交易日誌時,它將被截斷。如果您從不備份交易日誌,它將永遠增長。如果只想備份完整資料庫,則將復原模式變更為簡單。
更改後,您將需要收縮日誌檔案(右鍵單擊 sql management studio 中的資料庫,任務 > 收縮 > 檔案)。您可以將它們設定為自動收縮,但一旦修復了底層恢復模型問題,您可能就不需要這樣做了。
答案2
這是指交易日誌,而不是錯誤日誌,並且無法在 SQL Server 上停用。每個事務在將變更寫入資料庫本身之前都會寫入交易日誌,以保護資料庫的完整性。如果資料庫使用完整復原模式(聽起來像你的),交易日誌記錄只會在交易日誌備份(不是完整備份)後被覆寫;如果將復原模式變更為簡單,則日誌記錄的保留時間會更短,並且不需要交易日誌備份。但是,這可能超出您的控制範圍,具體取決於您的託管提供者;您必須檢查他們對資料庫設定的控製程度,如果您沒有直接控制權,請要求變更。