常见问题 SQL Server磁盘空间故障排查
SQL Server 所在磁盘写满怎么查
定位磁盘写满的元凶:数据文件、日志文件、备份文件与错误日志占用排查,以及 Express 10GB 上限的叠加判断。
发布于 2026/11/11
所属频道 SQL Server
简短答案
磁盘写满时先找「谁在吃盘」:数据文件、日志文件、备份文件、错误日志。用 T-SQL 列各库各文件的物理占用,再按清理优先级处理。
排查步骤
- 查各库文件占用(MB):
SELECT DB_NAME(database_id) AS db, name, size/128 AS size_mb, type_desc
FROM sys.master_files ORDER BY size DESC;
- 判断大头:
- 日志文件暴涨 → 有长事务未提交,先处理事务(或备份日志),再收缩;
- 备份文件堆积 → 按保留策略清理旧 .bak/.trn;
- 数据文件本身大 → 归档或扩容。
- Express 环境注意:单库 10GB 上限与磁盘容量是两回事,上限见 SQL Server Express 条目页。
- 用 SSMS 数据库属性核对文件配置,确认增长模式。
- 清理后观察余量,设容量告警(如 80%)避免再次写满。
现象对照表
| 占用大头 | 处理 |
|---|---|
| 日志文件 | 先处理事务/日志备份,再收缩 |
| 备份文件 | 按保留策略清理 |
| 数据文件 | 归档冷数据或扩容 |
操作小结
- 先定位大头再动手,别盲目收缩。
- 日志暴涨优先处理长事务,收缩是后手。
- 设容量告警,提前预警。