Sql-Server
為“Throw Away”數據庫收縮一個大的日誌文件
我在開發伺服器上有我的 prod 數據庫的副本。我正在使用它來測試部署腳本。
但是當我執行它時,它說日誌文件已滿。
我檢查了一下,它是 10 GB(幾乎是整個數據庫的大小)。
我不需要這個數據庫,但需要幾個小時(之後它將被刪除)。
有什麼辦法可以優雅地擺脫日誌文件?(只是去刪除它似乎是錯誤的。)
注意:
我已經執行了這個:
select log_reuse_wait, log_reuse_wait_desc, name from sys.databases where name = 'ProdCopyDatabase'
結果是:
log_reuse_wait log_reuse_wait_desc name 2 LOG_BACKUP ProdCopyDatabase
你有兩個選擇:
1)執行數據庫的LOG備份:
BACKUP LOG foo TO DISK='X:\BackupLocation';
- 將恢復模式設置為 SIMPLE 並檢查點。
ALTER DATABASE foo SET RECOVERY SIMPLE; CHECKPOINT;
這都是 SQL Server 不同恢復模型的一部分。根據您在 DEV 中的工作,我可能會選擇第二種選擇,因為聽起來您不需要擔心時間點恢復。
請注意,這只會清除活動事務,而不是減小實際文件大小。完成後,您可以縮小日誌文件。