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

SQL Server 數據/日志文件手動擴容與收縮:MODIFY FILE、SHRINKFILE、恢復模式切換完整操作指南

     編輯:關於SqlServer

手動擴容 (MODIFY FILE)

-- 擴容日志文件至 2048 MB
ALTER DATABASE [GPOSDB] MODIFY FILE (NAME = GPOSDB_Log, SIZE = 2048);

-- 擴容數據文件至 2048 MB
ALTER DATABASE [GPOSDB] MODIFY FILE (NAME = GPOSDB_Data, SIZE = 2048);

-- 驗證
EXEC sp_helpdb 'GPOSDB';

關鍵:`SIZE` 單位為 MB,只能增大不能縮小 (縮小需用 SHRINK)。

收縮日志文件 (含恢復模式切換)

USE [GPOSDB];
-- 1. 切換簡單恢復模式 (截斷非活動 VLF)
ALTER DATABASE [GPOSDB] SET RECOVERY SIMPLE;

-- 2. 收縮至目標大小 (MB)
DBCC SHRINKFILE (GPOSDB_Log, 1);  -- 縮至 1 MB

-- 3. 恢復完整恢復模式 (生產必須)
ALTER DATABASE [GPOSDB] SET RECOVERY FULL;

-- 4. 立即進行完整備份啟動新日志鏈
BACKUP DATABASE [GPOSDB] TO DISK = '...';

收縮數據文件

USE [GPOSDB];
DBCC SHRINKFILE (N'GPOSDB_Data', 2);  -- 縮至 2 MB
-- 注意:收縮導致索引碎片,後續需 REBUILD/REORGANIZE

關鍵最佳實踐

操作建議
日常擴容預留 20-30% 空間,啟用自動增長 (固定 MB 增長,非百分比)
收縮頻率極度避免常態化收縮,僅誤操作導致異常增長後一次性處理
收縮後必執行索引重建 (`ALTER INDEX ... REBUILD`)、更新統計
日志收縮完整恢復模式下先備份日志再收縮,否則 VLF 不會釋放

自動增長最佳配置

ALTER DATABASE [GPOSDB] 
MODIFY FILE (NAME = GPOSDB_Data, FILEGROWTH = 512MB);  -- 固定 512MB
ALTER DATABASE [GPOSDB] 
MODIFY FILE (NAME = GPOSDB_Log, FILEGROWTH = 256MB);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved