1、使用DBMS收缩
1、收缩日志前需要先将数据库的恢复模式修改为简单模式,选中需要收缩日志的数据库,右键,点击属性(如图1)。
![](https://img.haomeiwen.com/i6620475/f3b0969e00a0b605.png)
2、在数据库属性菜单中,点击“选项”,将恢复模式修改为"简单"后,然后点击确认。将数据库恢复模式修改为简单模式后(如图2),即可进行日志收缩操作。点击“文件”选项,可以看到日志文件大小(如图3),图中的日志大小是17G.....
![](https://img.haomeiwen.com/i6620475/70f931e74a4b799d.png)
![](https://img.haomeiwen.com/i6620475/0be72143ffa1c722.png)
3、修改恢复模式后,右键数据库,依次选择"任务--收缩--文件"(如图5)。进入收缩日志操作页面(如图5),文件类型选择"日志",收缩操作选择“在释放未使用的空间前重新组织页”,同时填写收缩文件的大小。然后点击确定。收缩日志完成!收缩完成后需要将恢复模式修改回原来的值!!
![](https://img.haomeiwen.com/i6620475/66bfb676517a8b69.png)
![](https://img.haomeiwen.com/i6620475/94650817d7c0bcf5.png)
4、可以再次点击数据库属性,查看日志文件的大小是否收缩到指定大小。本例中收缩为1M,结果如图6,收缩成功!
![](https://img.haomeiwen.com/i6620475/eb45175f47b18b14.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 SHIRINKFILE(DW_log,5)
--减小 DW 用户数据库中数据文件和日志文件的大小,以便在数据库中留出 10% 的可用空间。
dbcc SHRINKDATABASE(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 日志无法收缩,收缩后大小不改变
网友评论