事务日志管理--如何收缩日志文件

管理不正确的日志记录最终将填满磁盘导致没有更多的空间去记录新的数据库操作而使操作失败。事务日志持续增长可以为几个不同的原因。长时间运行的事务、 不正确的恢复模型配置等。日志截断将释放日志文件中的空间,所以事务日志可以重用它。除非有某种意外耽搁,日志截断将发生自动检查点 (如果数据库是在简单恢复模式) 或之后一次日志备份 (如果数据库是在完整或大容量日志恢复模式)。

下面是两种收缩日志方式。

使用SQL Server Management Studio 收缩日志

直接上图

step 1:

Shrink the log in SQL Server Management Studio

 

On the Shrink File window, change the File Type to Log.

使用TSQL收缩日志文件

如果你的数据库备份是简单恢复模式,可以使用 DBCC SHRINKFILE。

例如,收缩日志文件AdventureWorks2012_log到1MB。

DBCC SHRINKFILE (AdventureWorks2012_log, 1)

 

如果数据库是完整备份模式,需要先把它变成简单恢复模式,在使用DBCC SHRINKFILE。如果需要继续变成完整备份模式。

代码如下:

        ALTER DATABASE AdventureWorks2012
        SET RECOVERY SIMPLE
        GO
        DBCC SHRINKFILE (AdventureWorks2012_log, 1)
        GO
        ALTER DATABASE AdventureWorks2012
        SET RECOVERY FULL

 

你可以通过以下命令去找到你所需要的日志文件名

SELECT name FROM sys.master_files WHERE type_desc = 'LOG'

 

另一方面,在完整备份模式下,可以使用 BACKUP LOG 去备份日志。命令如下

BACKUP LOG AdventureWorks2012 TO DISK = 'C:\AdventureWorks.TRN'
posted @ 2015-10-13 21:39  BITALKER  阅读(621)  评论(0)    收藏  举报