SQLServer2008日志收缩

1、使用DBMS收缩

1、收缩日志前需要先将数据库的恢复模式修改为简单模式,选中需要收缩日志的数据库,右键,点击属性(如图1)。

 
图1.SQLserver数据库右键.png

2、在数据库属性菜单中,点击“选项”,将恢复模式修改为"简单"后,然后点击确认。将数据库恢复模式修改为简单模式后(如图2),即可进行日志收缩操作。点击“文件”选项,可以看到日志文件大小(如图3),图中的日志大小是17G.....
 
图2.修改恢复模式.png
 
图3.数据库属性.png

3、修改恢复模式后,右键数据库,依次选择"任务--收缩--文件"(如图5)。进入收缩日志操作页面(如图5),文件类型选择"日志",收缩操作选择“在释放未使用的空间前重新组织页”,同时填写收缩文件的大小。然后点击确定。收缩日志完成!收缩完成后需要将恢复模式修改回原来的值!!

 
图4.收缩日志.png
 
图5.收缩日志操作.png

4、可以再次点击数据库属性,查看日志文件的大小是否收缩到指定大小。本例中收缩为1M,结果如图6,收缩成功!


 
图6.收缩后结果.png

2、使用SQL语句收缩

use master
go
--修改需要收缩的数据库恢复模式
alter database dw set recovery simple with no_wait
go
alter database dw set recovery simple   --把恢复模式设置为简单模式
go

use dw 
--当前数据库日记的逻辑名列表
select name,* from sys.database_files  where type=1 
--1代表是日记文件
go
--把DW_log日记文件收缩到5M
--日志名可以查看数据库属性看到,如图3
dbcc SHRINKFILE(N'DW_log',5)
--减小 DW 用户数据库中数据文件和日志文件的大小,以便在数据库中留出 10% 的可用空间。
dbcc SHRINKDATABASE(N'DW',10)
go
 
use master
go
--收缩日志后恢复数据库恢复模式
alter database dw set recovery full with no_wait
go
 --恢复模式还原为完全模式
alter database dw set recovery full   
go

如果出现收缩后日志文件大小不变的情况,可以参照下这篇文章。解决SQLServer 2008 日志无法收缩,收缩后大小不改变



作者:sky_47
链接:https://www.jianshu.com/p/547b7b74317d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
原文地址:https://www.cnblogs.com/Alex80/p/14669137.html