压缩MS SQL Server数据库的log文件

Posted by Tesla9527 on December 27, 2016

Sql Server数据库的log文件增长的太快了,今天准备还原正在开发的库到阿里云上,发现ldf文件已经有45.5G了,完全没有空间去还原,也想过直接删掉log文件,但是没有成功。

后来用Visual Studio的Schema Compare和SSMS的Import Data解决了这个问题。

1
2
3
1. 新建一个新的空库
2. 使用Visual Studio的Schema Compare来对比原始库和新库,update之后会将原始库的Schema,PK,Index,Procedure,Function等等全都复制到新库上
3. 使用SSMS的Import Data从原始库导入数据到新库

再后来找到一个比较简便的方法,总结下来就是:

1
2
3
4
5
1. 将备份模式修改为Simple模式
2. 选择Tasks->Shrink->File
3. 文件类型选择Log
4. Shrink action选择第一个Release unused space,点击OK
5. 将备份模式修改为Full模式

小乐提供了通过脚本的方式压缩数据库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
USE [Weixin.Kia]; 
GO

-- Truncate the log by changing the database recovery model to SIMPLE.

ALTER DATABASE [Weixin.Kia] SET RECOVERY SIMPLE;

GO

-- Shrink the trun cated log file to 1 MB.

DBCC SHRINKFILE ([Weixin.Kia_Log], 1024); 
GO

-- Reset the database recovery model.

ALTER DATABASE [Weixin.Kia] SET RECOVERY FULL; 
GO