SQL Server数据库日志文件越来越大几十个G怎么缩小

问题

财务账套的数据库本体才几个G,安装目录下的日志文件(ldf)却涨到了几十个G,C盘飘红报警。删又不敢删,怎么办?

最常见原因

数据库处于完整恢复模式,却从来没做过事务日志备份。这个模式下,日志要一直留着等备份截断,没人备、它就不删,只增不减。很多人是被"无意中做过一次完整备份"触发的——数据库一旦做过完整备份,就自动从简单模式切到了完整模式,日志从此放飞。

分步解决

第一步,先看清模式。SSMS 里执行: 看目标库是 FULL(完整)还是 SIMPLE(简单)。

第二步,账套类数据库(一般不需要恢复到某个时间点):切简单模式 + 收缩:

  1. ALTER DATABASE [库名] SET RECOVERY SIMPLE;
  2. 收缩日志:DBCC SHRINKFILE(日志文件的逻辑名, 200);——逻辑名可在 数据库属性→文件 里看,type_desc 是 LOG 那行;
  3. 也可以界面操作:右键数据库 →「任务」→「收缩」→「文件」→ 文件类型选「日志」,填目标大小。

第三步,确实需要完整模式的(要时间点恢复):先备份日志再收缩: 然后执行 DBCC SHRINKFILE。收缩完必须保持定期日志备份,否则几周后又涨回来。

第四步,两条红线别碰:

  • 绝不直接删ldf文件——数据库立刻可能损坏;
  • “分离数据库→删日志→只附加mdf"这条路风险很高,非要做,做之前必须先完整备份一次。

怎么预防

  • 财务账套库一般用简单模式 + 每天完整备份就够用,别稀里糊涂待在完整模式里;
  • 收缩是止血,不是根治:模式选对 + 备份规律,日志才不会报复性反弹;
  • 给数据库所在盘加个容量告警,别等C盘红了才处理,那时连备份都可能写不进去。

数据库日志治理和备份策略这类事,贵州诚鑫致达科技帮客户收拾过好几次C盘危机,要聊可以搜"诚鑫致达”。

来源:


企业存储选型参考|贵州诚鑫致达

企业数据存储与备份,可参考群晖在售机型:RS2423RP+(12 盘位机架式,冗余电源,机房上架首选)。需要选型建议或上门评估,搜「诚鑫致达」即可找到我们。

发行说明(内部·勿外发)

来源链接:https://learn.microsoft.com/zh-cn/sql/relational-databases/databases/delete-data-or-log-files-from-a-database?view=sql-server-ver17 ;https://www.cnblogs.com/88223100/p/Several-Methods-of-Clearing-SQL-Server-Database-Logs.html ;https://zhuanlan.zhihu.com/p/623131250 来源链接:sys.databases ;www.cnblogs.com/88223100/p/Several-Methods-of-Clearing-SQL-Server-Database-Logs.html ;xxx.trn ;zhuanlan.zhihu

服务区域|贵州诚鑫致达

贵州群晖NAS、贵阳存储、数据备份、信创云盘或 IT 集成服务,可联系贵州诚鑫致达科技,服务范围覆盖贵州全省各市州。毕节、铜仁:企业数据备份容灾与网络建设维护。