mssql日志清理:让系统运行有效果

1. 概述

随着MSSQL服务器运行时间的增加,数据库日志文件逐渐变大,不仅占用服务器硬盘空间,还会影响数据库的性能。因此进行定期的日志清理是非常必要的。

本文将介绍如何清理MSSQL数据库日志文件,以及如何设置定期的日志清理任务。以下步骤适用于MSSQL Server 2008及更高版本。

2. 清理日志文件

2.1 检查日志文件大小

在清理日志文件之前,首先要对日志文件进行检查,确定日志文件的大小和剩余空间。

可以通过以下代码查询数据库日志文件的大小:

USE [YourDBName];

GO

EXEC sp_helpfile;

执行以上代码后,在结果中查找“log”文件后缀的文件,可以看到日志文件的大小。如下图所示:

![](https://pic.downk.cc/item/5f39806a160a154a67efa0b1.png)

上图中红色框中的数字即为日志文件的大小,单位为KB。

2.2 手动清理日志文件

在确定了日志文件的大小后,可以通过以下代码手动清理日志文件:

USE [YourDBName];

GO

BACKUP LOG [YourDBName] TO DISK='备份文件路径' WITH NOFORMAT, NOINIT, NAME='备份文件名', SKIP, NOREWIND, NOUNLOAD, STATS=10;

GO

DBCC SHRINKFILE ([YourDBName]_log, 目标文件大小);

GO

其中,\备份文件路径\和\备份文件名\为备份文件的保存路径和文件名,\目标文件大小\为想要将日志文件缩小到的目标文件大小,单位为MB。

2.3 设置定期的日志清理任务

手动清理日志文件虽然可以立即释放硬盘空间,但不利于长期维护。因此,最好设置定期的日志清理任务,定期自动清理过期日志文件。

可以通过以下步骤设置定期的日志清理任务:

2.3.1 配置备份任务

在设置日志清理任务前,需要先配置备份任务。在备份任务中,可以选择备份类型和备份文件的保存路径。

2.3.1.1 新增备份类型

在SSMS(SQL Server Management Studio)中打开“管理”窗口,选择“维护计划”选项卡,右键单击“维护计划”文件夹,选择“新增维护计划”。

在弹出的窗口中,依次选择“名称”、“计划”、“目标”和“维护计划日志”,然后单击“确定”按钮,新建一个维护计划。

接着,在新建的维护计划中,右键单击“备份数据库任务”,选择“编辑”。

2.3.1.2 配置备份文件的保存路径

在“备份数据库”页面中,选择“备份选项”选项卡,可以设置备份类型、备份文件的保存路径以及是否压缩备份文件。

![](https://pic.downk.cc/item/5f39842b160a154a67f0e7bb.png)

2.3.2 配置日志清理任务

在配置完备份任务后,可以配置日志清理任务。在日志清理任务中,可以选择保留最近一段时间内的日志文件,清理过期的日志文件。

2.3.2.1 新增日志清理任务

在维护计划中,右键单击“新增作业”。

在弹出的窗口中,依次选择“名称”、“步骤”、“时间表”和“报告”,然后单击“确定”按钮,新建一个作业。

2.3.2.2 配置日志清理选项

在新建的作业中,右键单击“新增作业步骤”,选择“新增 Transact-SQL 作业步骤”。

在弹出的窗口的“通用”选项卡中,输入步骤名称和输出文件的路径。

![](https://pic.downk.cc/item/5f398640160a154a67f23c4c.png)

接着,在“Transact-SQL 脚本”选项卡中,将以下代码复制粘贴到文本框中:

USE [YourDBName];

GO

DECLARE @dt datetime;

SET @dt = GETDATE() - 过期天数;

EXEC sp_executesql 'USE [YourDBName]; EXEC sp_clean_db_free_space @dt';

GO

其中,\过期天数\为指定要保留的最近天数,这些天数内的日志文件将不被清理。

2.3.2.3 配置作业启动选项

配置完日志清理任务后,还需要配置作业的启动选项。在作业中,右键单击“属性”,进入作业属性窗口。

在作业属性窗口的“步骤”选项卡中,选择刚才新增的步骤,在“高级”选项卡中配置作业的启动选项。

![](https://pic.downk.cc/item/5f39892c160a154a67f54785.png)

配置完启动选项后,保存作业属性,关闭窗口。

3. 总结

通过本文介绍的方法,可以清理MSSQL数据库的日志文件,并设置定期的日志清理任务。实施日志清理可以释放硬盘空间,减少数据库运行的负载,从而提高系统的稳定性和性能。

数据库标签