You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL Server 2017中关闭备份与恢复历史记录功能?

解决SQL Server 2017 MSDB备份恢复历史膨胀问题

方案1:配置自动清理备份历史(推荐)

SQL Server提供系统存储过程sp_delete_backuphistory,可自动删除指定日期之前的备份与恢复历史,无需手动操作。你可以创建定时作业定期执行:

  1. 打开SQL Server Management Studio,新建SQL Server Agent作业
  2. 添加作业步骤,执行以下SQL(示例保留最近24小时历史,可按需调整):
DECLARE @CutoffDate DATETIME = DATEADD(HOUR, -24, GETDATE());
EXEC sp_delete_backuphistory @CutoffDate;
  1. 设置作业执行频率(比如每天一次,与备份作业错开时间)

该方案不会关闭历史写入,但能自动清理旧数据,避免MSDB持续膨胀,操作简单且安全。

方案2:备份时跳过历史记录写入(不推荐,需谨慎)

SQL Server没有官方支持的直接关闭备份历史写入的开关,但可通过特殊备份命令或第三方工具间接实现:

  • 事务日志备份可尝试使用WITH NO_LOG参数(该参数在SQL Server 2008及以后版本已弃用,仅作临时备选)
  • 部分第三方备份工具支持不写入MSDB历史记录

注意:跳过历史记录会丢失备份审计信息,后续排查备份问题将无据可查,不建议生产环境使用。

方案3:开启MSDB自动收缩(不推荐)

若需临时应急,可开启MSDB自动收缩:

  1. 在SSMS中右键点击MSDB数据库 → 属性 → 选项
  2. 将“自动收缩”设置为“True”

但自动收缩会频繁触发IO操作,影响数据库性能,仅适合短期临时处理,不建议长期启用。


内容的提问来源于stack exchange,提问作者emphyrio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 10:05:30