首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

MSSQL 資料庫記錄檔壓縮與清除兩大實用技巧

     編輯:關於SqlServer

SQL Server 資料庫記錄檔若不定期維護會無限增長,佔滿磁碟導致服務停擺。本文提供兩種壓縮清除方法:GUI 操作法(切換復原模式 + 收縮資料庫)與 T-SQL 腳本法(模擬交易填滿記錄再截斷),並附完整可執行腳本。

方法一:圖形介面操作(適用一般管理員)

  1. 企業管理員 → 資料庫屬性 → 選項 → 復原模式改為「簡單」。
  2. 右鍵資料庫 → 所有工作 → 收縮資料庫 → 確定(預設值即可)。
  3. 完成後將復原模式改回「完整」(保留記錄備份能力)。

方法二:T-SQL 腳本(適用自動化/大型資料庫)

腳本邏輯:建立暫存資料表,迴圈寫入/刪除大量資料填滿記錄檔,配合 BACKUP LOG ... WITH TRUNCATE_ONLY 截斷,再執行 DBCC SHRINKFILE 釋放空間。完整腳本如下:

SET NOCOUNT ON
DECLARE @LogicalFileName sysname, @MaxMinutes INT, @NewSize INT
USE YourDB
SELECT @LogicalFileName = 'YourDB_log', @MaxMinutes = 10, @NewSize = 1
-- 其餘變數宣告與迴圈邏輯請見內文完整腳本
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- 迴圈填滿記錄並重複截斷直到達到目標大小或逾時
DROP TABLE DummyTrans
SET NOCOUNT OFF

注意:TRUNCATE_ONLY 選項在較新版本已移除,建議改用簡單復原模式配合 DBCC SHRINKFILE。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved