1.改成完整模式下,先完整备份,然后只备份事务日志
2. 改成简单模式,然后截断(运行下边示例代码)
3.再备份事务日志(观察LDF文件有没有变小)
-----收缩大日志
SELECT * FROM sys.database_files
USE DBname
GO
--截断日志
CHECKPOINT
--收缩日志
DBCC SHRINKFILE(DBname_Log,1)
--查看
DBCC SQLPERF(LOGSPACE)
--看看是不是有一直没有提交的事务, 影响了事务日志备份, 如果有,看看是否可以kill.
dbcc opentran (DBname)
GO
第二种方法
https://www.cnblogs.com/masahiro/p/13291756.html
使用下面语句截断日志文件,用于缩减日志文件大小
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