Sql server 2008 R2设置定期清理数据库日志文件

有时候我们会发现数据库本身没有多大,但是数据库日志文件却很大,造成磁盘空间浪费的同时,数据库备份变的很慢,数据库还原也很慢,所以这个时候我们就需要定期清理一下数据库的日志文件,具体步骤如下:

1.打开数据库,找到最下面的sqlsever代理,如果sqlserver代理是关闭的状态,说明你的sqlserver代理服务没有打开,需要右键计算机->管理->服务和应用程序->服务->sql server 代理(MSSQLSERVER)->启动.

sql server 2012定时删除数据 sqlserver定期清理日志_数据库

sql server 2012定时删除数据 sqlserver定期清理日志_数据库_02


2.展开sql server 代理,下面的作业层级,右键作业->新建作业弹出新建作业的功能面板

sql server 2012定时删除数据 sqlserver定期清理日志_日志文件_03

sql server 2012定时删除数据 sqlserver定期清理日志_sql_04


3.设置常规页信息,设置作业名称(自定义)

sql server 2012定时删除数据 sqlserver定期清理日志_数据库_05


4.设置步骤页信息,点击新建步骤->弹出新建步骤功能界面,设置步骤名称(自定义),类型选择Transact-SQL脚本(T-SQL),数据库选择你要执行的数据(我这里是rbmp_dfs),然后将下述代码写道命令栏中,点击确定。

sql server 2012定时删除数据 sqlserver定期清理日志_数据库_06

USE [master]
GO
ALTER DATABASE [数据库名称] SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE [数据库名称] SET RECOVERY SIMPLE
GO
USE [数据库名称]
GO
DBCC SHRINKFILE (N'数据库日志名称' , 0,TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE [数据库名称] SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE [数据库名称] SET RECOVERY FULL
GO
 
--查询指定数据库的日志文件名称
USE [数据库名称] 
GO
SELECT name FROM SYS.database_files WHERE type_desc='LOG'

sql server 2012定时删除数据 sqlserver定期清理日志_数据库_07


5.设置计划页信息,点击新建计划,弹出新建计划功能界面;设置计划名称(自定义),计划类型(这里设置重复执行,你也可以根据需求选择执行一次),设置执行频率(我这里选择是每天,你也可以根据实际需求选择每周、每月),设置执行间隔(我这里设置1天),设置执行的具体时间(我这里设置的是每天上午9点7分执行),设置执行开始时间(我这里是设置的2021年7月7日执行),选择无结束日期,这样就永远执行下去,都设置完成后点击确定,即可完成计划的新建。

sql server 2012定时删除数据 sqlserver定期清理日志_数据库_08


sql server 2012定时删除数据 sqlserver定期清理日志_sql_09


6.上述的常规、步骤、计划都设置完成后,点击确定,即可创建好作业。

sql server 2012定时删除数据 sqlserver定期清理日志_sql_10


sql server 2012定时删除数据 sqlserver定期清理日志_数据库_11


7.这样就会在每天09:07:00的时候执行清理rbmp_dfs日志文件的作业。