编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

无需分离清理SQL Server Log文件过大

最近在给客户做一个商城系统,登录服务器发现,磁盘空间快满了,最后排查下来,发现是商城数据库的日志文件过大,150G!

网上查了下方法,都需要分离,如果分离的话,就要影响系统运行了。后来网上找了段SQL语句,试了,有效,代码如下:

USE[master]
GO
ALTER DATABASE 要清理的数据库名称 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE 要清理的数据库名称 SET RECOVERY SIMPLE   --简单模式
GO
USE 要清理的数据库名称
GO
DBCC SHRINKFILE (N'要清理的数据库名称_log' , 2, TRUNCATEONLY)  --设置压缩后的日志大小为2M,可以自行指定
GO
USE[master]
GO
ALTER DATABASE 要清理的数据库名称 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE 要清理的数据库名称 SET RECOVERY FULL  --还原为完全模式
GO

150G的日志文件,几十秒就清理完成了。

如果需要用分离的方式,可以参考下面的方式:

在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完整模式,一定必务要再改回完整模式,不然数据库就不支持时间点备份了。

1、选择数据库–属性—选项—恢复模式–选择简单。

2、收缩数据库后,再调回完整。

未经允许不得转载: 技术文章 » 数据库 » SQL Server » 无需分离清理SQL Server Log文件过大