減小SQL SERVER的日誌檔案

iSQlServer發表於2009-02-02

在使用資料庫的過程中,頻繁的新增、修改、刪除,導致日誌檔案越來

越大,甚至比資料庫檔案本身還大。

在企業管理器裡面,好象並不能直接將該日誌檔案刪除。限制檔案的大

小,只能是停留在目前的水平,比如,當前的日誌檔案是500M,那麼你

只能限制它大小為501M。當然在建立資料庫的時候,可以指定日誌檔案

的大小,例如10M。不過,也不知道到達了10M後系統會怎麼樣。不會報

錯吧?應該是一個環形的模式,到達臨界點後又自動覆蓋最前面的地方

,這樣迴圈反覆,周而復始。

可是對於已經巨大無比的日誌檔案該怎麼辦呢?如果不想想辦法,看樣

子還會繼續發酵下去,直到塞滿整個硬碟為止。

查閱資料。書上說(《SQL SERVER疑難解析》,電子工業出版社),

SQL SERVER的日誌檔案有兩種意義上的大小,一是邏輯大小,一是物理

大小。物理大小指的是日誌檔案佔用的硬碟空間,而邏輯大小是指實際

儲存了多少日誌。要減少資料庫日誌檔案的大小,可以採用收縮的辦法

,即刪除不活動的邏輯日誌。

這裡分為兩種情況:

1、               資料庫的故障還原模式為簡單模式(可以在資料庫

的屬性-選項中看到故障還原模式),可以用以下命令直接收縮:

DBCC SHRINKFILE(日記檔案邏輯名稱,收縮後以MB為單位的檔案大小)

如:

DBCC SHRINKFILE(gcjs_log,1)

GO

執行後,日誌檔案將會收縮到1M。

2、               資料庫的故障還原模式為完全模式或大容量恢復模

式,要先截斷,將夠多的邏輯日誌標為不活動:

BACKUP LOG 資料庫名 WITH NO_LOG

GO

然後再

DBCC SHRINKFILE(日記檔案邏輯名稱,收縮後以MB為單位的檔案大小)

GO

這樣,就可以將日誌檔案收縮到指定的大小。

日誌檔案可用來做資料恢復,書上教導我們,收縮日誌檔案應該建立在

經常做資料庫完全備份的基礎上

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-545030/,如需轉載,請註明出處,否則將追究法律責任。

相關文章