如何清理SQL Server日誌釋放檔案空間

來源:互聯網
上載者:User

【問題情境】有一個資料庫,它的名字叫CNBlogsText,記錄檔霸佔了23G硬碟空間,而交易記錄已經截斷(Truncate),實際日誌內容很小,1G都不到。23G的空間只放1G不到的日誌,就如同用一棟別墅養一隻寵物,太奢侈了!秉承中華民族勤儉節約的美德,這種奢侈是絕對不允許的,必須要釋放記錄檔霸佔的多餘空間。

但是,無論怎麼收縮(Shrink)記錄檔,空間就是不能釋放,總是出現錯誤:

Cannot shrink log file 2 (CNBlogsText_log) because of minimum log space required.

之前解決過類似的問題,也寫過一篇部落格-SQL Server 2008交易記錄清理,當時採用的最終解決方案是:

將復原模式由完整(Full)改為簡單(Simple)

收縮(Shrink)記錄檔

將復原模式由簡單(Simple)改為完整(Full)

一直以為這就是終極方法,但是竟然沒能終結這次遇到的問題。

經過不懈的努力,終於找到真正的終極方法:

1. Detach資料庫(Detach之前一定要屏蔽所有對這個資料庫的寫入操作,這是血的教訓)

2. 刪除或重新命名記錄檔

3. Attach資料庫,這時會提示找不到記錄檔

4. 移除(Remove)這個找不到的記錄檔,然後點擊Ok進行Attach,SQL Server會在資料檔案所在的檔案夾自動建立一個新的記錄檔完成Attach。

5. 如果記錄檔需要存放在另外的路徑,要再通過Detach/Attach進行記錄檔的移動操作。

Detach資料庫

將記錄檔移動至新的位置

Attach資料庫,修改記錄檔的路徑並完成Attach

該終極方法的弊端是在操作期間,被操作的資料庫不能被正常訪問。

這就是我找到的清理SQL Server日誌釋放檔案空間的終極方法。也許有經驗的你覺得這是常識,我才不管呢,只要能秒殺實際問題,就值得分享!

查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/database/SQLServer/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.