最近数据仓库时不时爆磁盘空间不足,导致定时任务执行失败,这可了得,要知道定时任务执行的可是每天的业务数据。
从网站建设到定制行业解决方案,为提供成都网站制作、网站建设服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。创新互联将不断加快创新步伐,提供优质的建站服务。
仔细检查,发现是日志文件爆满,这是咋回事呢?
原来数据仓库中,每天的定时任务需要从其他系统里面抽取数据过来,导致数据文件和日志文件的磁盘空间都增长的飞快。
数据不能清理,但是日志文件是可以清理的,说干就干。
SQL Server 2017
图1
还是右键要清理的数据库名—任务—收缩—文件,按如图2进行设置,设置完后点确定即可
图2
这样日志就收缩到1M了,是不是很简单?
但是如果遇到了需要经常清理日志怎么办?难道每次都要来这样设置一遍吗?就没有什么办法让它自动完成?
答案肯定是有的!下面才是真正的一键清理。
这里我们要浓重介绍SQL Server的代理功能了
SQL Server代理功能主要是用来完成一些定时任务的,说白了就是你写好命令,配置好执行的频率和时间,它就可以按时执行你写好的命令。
下面我们将图1和图2中的操作使用命令的形式做一个定时任务。
如下图3,我们右键作业—新建作业即可开始新建一个作业了
图3
给你的作业命名,这个可以随便起,能识别就行
点击左侧的菜单栏,选择步骤—右侧底部点击新建...—在弹出的窗口中做如下配置:
如果你的数据库名跟我的不一样,可以套用下面的命令:
USE [master]
GO
ALTER DATABASE 要清理的数据库名称 SET RECOVERY SIMPLE WITH NO_WAIT
GO
--将数据库设置为简单模式
ALTER DATABASE 要清理的数据库名称 SET RECOVERY SIMPLE
GO
USE 要清理的数据库名称
GO
--将数据库的日志收缩为2M
DBCC SHRINKFILE (N'要清理的数据库名称_log' , 2, TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE 要清理的数据库名称 SET RECOVERY FULL WITH NO_WAIT
GO
--将数据库恢复为完整模式
ALTER DATABASE 要清理的数据库名称 SET RECOVERY FULL
GO
(提示:可以左右滑动代码)
然后点确定即可。
回到新建作业窗口,点击左侧菜单里的计划—点击右边底部的新建...—在弹出的窗口中做如下配置:
上面的作业计划就是你要执行上面命令的频率和具体日期和时间,上面我们设置的是每隔1周,在星期日的上午1点执行该命令。
这样一个定时清理日志的任务就完成了。
你也可以随时手动执行上面的作用,只需要右键作业名——作业开始步骤...,然后就开始执行了,如下图:
这是已经执行完成的界面。
如果下次需要清理了,一键搞定。
标题名称:SQL日志太大?教你一键清理
URL分享:http://www.shufengxianlan.com/qtweb/news38/31938.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联