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

SQL Server 自動成長失控與磁碟空間緊急釋放處理

     編輯:關於SqlServer

症狀

  • 資料檔自動成長比例異常 (如每次成長 10% 導致指數級膨脹)。
  • SSMS 修改自動成長報錯:「無法修改檔案屬性」。

三步驟緊急處理

  1. 修正自動成長設定:改為固定大小 (建議 1024 MB 整數倍) 或合理百分比。
    ALTER DATABASE [DBName] MODIFY FILE (NAME = N'FileName', FILEGROWTH = 1024MB);
    -- 或百分比
    ALTER DATABASE [DBName] MODIFY FILE (NAME = N'FileName', FILEGROWTH = 10%);
    
  2. 收縮資料檔釋放空間:
    USE [DBName];
    DBCC SHRINKFILE (N'FileName', 12000); -- 目標 12000 MB
    
  3. 視需要收縮記錄檔:
    -- 簡單模式
    ALTER DATABASE [DBName] SET RECOVERY SIMPLE;
    DBCC SHRINKFILE (2, 30); -- 記錄檔 ID 通常為 2,目標 30 MB
    ALTER DATABASE [DBName] SET RECOVERY FULL;
    

根因預防

  • 預先規劃容量,避免依賴自動成長。
  • 啟用 Instant File Initialization (授予服務帳號 Perform Volume Maintenance Tasks) 加速資料檔成長。
  • 監控 sys.dm_db_file_space_usage 與磁碟剩餘空間告警。

自動成長失控圖表

SSMS 修改報錯

修改自動成長 1024MB 成功

收縮資料檔結果

收縮後空間釋放

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