ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

数据库霸占的C盘空间

数据库霸占的C盘空间

最近项目都压在了一起,忙起来停不下来,今天在搞数据库备份的时候,突然发现,我的C盘老大竟然就剩下30G了,总容量300G的老大,就剩了十分之一,问题是公司的电脑一直在开发调试公司的项目,没有什么业余的游戏,刷视频等娱乐的任务东西,突然大幅度的缩小让我觉得有点吓人,之前的时候用wps的C盘清理,清理的会细些而且很方便,但是这个功能找不到了,被wps关掉了

那就从C盘来查起,通过文件属性发下了数据库的文件中竟然有近百G的空间占用,最后定位到了,数据库中data文件夹中,每个项目的log文件(wms_log.ldf),一个占了我40多G,好家伙

问了下豆包,如何清理,这个文件中在SSMS中是看不到的,都是日常对数据的操作记录,增删改变更结构的事务日志,在完整恢复模式下会全量的记录,产生的大量的日志信息。

服务器就不建议更改恢复模式了,如果是本地电脑使用,可以通过改变模式来清理日志从而恢复空间内存,以下是切换模式的sql

以下是清理 SQL Server 事务日志文件(.ldf)以释放磁盘空间的 SQL 操作步骤:

-- 1. 切换到目标数据库 USE DB_WMS_BaLing; GO -- 2. 将数据库恢复模式改为“简单”,此模式会自动截断已完成事务的日志空间 ALTER DATABASE DB_WMS_BaLing SET RECOVERY SIMPLE; GO -- 3. 收缩日志文件,第二个参数为目标大小(单位:MB),此处示例收缩到 1024 MB -- 注意:第一个参数是上面查询出的「逻辑文件名」,默认一般与文件名前缀一致 DBCC SHRINKFILE (N'DB_WMS_BaLing_log', 1024); GO

操作说明:

  1. 执行第一步,确保后续操作在正确的数据库上下文中进行。
  2. 第二步将数据库恢复模式从“完整”改为“简单”。在简单恢复模式下,事务日志会在检查点后自动截断,从而显著减少日志文件的增长。
  3. 第三步是收缩日志文件物理大小的关键操作。参数N'DB_WMS_BaLing_log'是日志文件的逻辑名称,1024表示希望将文件收缩到约 1 GB 的大小。执行后,系统会释放未使用的空间还给操作系统。

重要提示:此操作主要适用于开发或测试环境的本地数据库。对于生产服务器,更改恢复模式前请务必评估其对备份和恢复策略的影响。

清理后的结果:

返回列表