Pages

2011年10月18日 星期二

MS-SQL Server Log 檔清理方式


最近在刪除大筆資料時後發現,資料庫的LOG.LDF檔案會隨著刪除的比數增加,真是掰思不得其解。

於是上網尋找解決方案,總共有兩種。

1. 刪除法

第一步: 執行SQL語法,卸載資料庫:  
EXEC   sp_detach_db   @dbname   =   'MYDBNAME'

第二步: 刪除MYDBNAME_Log.LDF

第三步: 掛載SQL語法:
EXEC   sp_attach_single_file_db   @dbname   =   'MYDBNAME',   @physname   =   'C:\database\MYDBNAME_Data.MDF'

執行結果:
檔案啟動錯誤。實體檔案名稱 "C:\database\MYDBNAME_Log.LDF" 可能不正確。
已建立新記錄檔 'C:\database\MYDBNAME_log.LDF'。


2. 壓縮法

第一步: SP_HELPDB 可顯示資料庫資訊, 而資料庫的分頁名稱也會在裡面顯示出來
SP_HELPDB MYDBNAME


第二步: 備份資料庫, 但不備份記錄檔
BACKUP LOG MYDBNAME WITH NO_LOG

第三步: 備份記錄檔
BACKUP LOG db_name WITH TRUNCATE_ONLY

第四步: 使用 SHRINKFILE 把交易記錄檔縮小, 以 MB 為單位
DBCC SHRINKFILE(MYDBNAME_log, 100)

以上, 就可以看到磁碟空間變大, 記錄檔變小了 ~

0 意見: