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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM