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