Sql-Server

為“Throw Away”數據庫收縮一個大的日誌文件

  • December 3, 2012

我在開發伺服器上有我的 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';
  1. 將恢復模式設置為 SIMPLE 並檢查點。
ALTER DATABASE foo SET RECOVERY SIMPLE;
CHECKPOINT;

這都是 SQL Server 不同恢復模型的一部分。根據您在 DEV 中的工作,我可能會選擇第二種選擇,因為聽起來您不需要擔心時間點恢復。

請注意,這只會清除活動事務,而不是減小實際文件大小。完成後,您可以縮小日誌文件

引用自:https://dba.stackexchange.com/questions/29727