最近在刪除大筆資料時後發現,資料庫的LOG.LDF檔案會隨著刪除的比數增加,真是掰思不得其解。
於是上網尋找解決方案,總共有兩種。
1. 刪除法
第一步: 執行SQL語法,卸載資料庫:
第二步: 刪除MYDBNAME_Log.LDF
第三步: 掛載SQL語法:
執行結果:
檔案啟動錯誤。實體檔案名稱 "C:\database\MYDBNAME_Log.LDF" 可能不正確。
已建立新記錄檔 'C:\database\MYDBNAME_log.LDF'。
2. 壓縮法
第一步: SP_HELPDB 可顯示資料庫資訊, 而資料庫的分頁名稱也會在裡面顯示出來
第二步: 備份資料庫, 但不備份記錄檔
第三步: 備份記錄檔
第四步: 使用 SHRINKFILE 把交易記錄檔縮小, 以 MB 為單位
以上, 就可以看到磁碟空間變大, 記錄檔變小了 ~
於是上網尋找解決方案,總共有兩種。
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 意見:
張貼留言