最近公司的定时服务出现了莫名奇妙的问题,任务明明在执行,但总是没有记录到同步的数据。远程到服务器查看日志,也没有找到具体的问题。无意间发现服务器的磁盘就快满了,检查后发现是SQL Server中日志占用大量磁盘空间。
本来想通过收缩数据库来释放空间,但发现能释放的空间小的可伶。于是就百度一下,整理一下清理日志的SQL语句。
参考:https://www.cnblogs.com/yunquan/p/9921115.html
USE [master]
GO
ALTER DATABASE 目标数据库 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE 目标数据库 SET RECOVERY SIMPLE --简单模式
GO
USE 目标数据库
GO
DBCC SHRINKFILE (N'目标日志文件逻辑名' , 2000, TRUNCATEONLY) --设置压缩后的日志大小为2M,可以自行指定
GO
USE [master]
GO
ALTER DATABASE 目标数据库 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE 目标数据库 SET RECOVERY FULL --还原为完全模式
GO