-- 擴容日志文件至 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);