SQL SERVER 截断大日志文件

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

posted @ 2022-01-03 14:07  易胆大888  阅读(1838)  评论(0编辑  收藏  举报