旧备份文件怎么清理、保留多久
SQL Server 备份文件的保留策略:保留天数怎么定、谁负责清理、自动与手动两条清理路线,以及「只留最近一份」的常见误区。
结论先行
保留多久取决于两件事:合规/审计要求(金融类常要 30 天以上)与磁盘容量。清理动作本身要「先定策略再动手」:维护计划勾「保留 N 天」是最省心的自动方案;手动清理务必按完整备份时间线成组清理,别只删零头。
三条清理路线
| 路线 | 做法 | 适用 |
|---|---|---|
| 维护计划自动清理 | 备份任务勾选「保留 N 天」,Agent 每天跑时顺手清 | 开发/小生产库 |
| 作业 + T-SQL | 脚本查询 master..backupset 元数据,按时间删文件 | 需要精细化策略的生产库 |
| 人工 | 到期前手动删 | 库少、量少时的兜底 |
维护计划的保留天数只对该计划自己生成的备份有效;别处产生的备份文件它不认,清理前先核对备份目录里到底谁是谁。
自动清理脚本示例(T-SQL 骨架)
-- 删除 N 天前的 .bak 文件(示例 7 天)
EXEC xp_cmdshell N'FORFILES /P "E:\backup" /M *.bak /D -7 /C "CMD /C DEL @F"';
或按备份元数据精确清理(msdb..backupset + sys.backupmedias 关联出物理路径再删文件)。
决定保留天数的三个参考
- 数据回滚需求:最近一次「确认无误」的完整备份至少保留 7 天。
- 合规:法规/客户合同要求的保留窗口(以实际合同为准,站点不代行判断)。
- 容量:备份目录余量 / 日增量 ≈ 可保留天数,预留 2 倍以上冗余。
清理前先 RESTORE VERIFYONLY 抽样确认留下的备份仍可用;SQL Server 2022 Developer 与 SQL Server 2025 Developer 条目环境下清理口径一致。备份目录与保留策略的配合参见 SSMS 管理工具条目 中的维护计划配置。