新聞中心
最近數(shù)據(jù)倉庫時不時爆磁盤空間不足,導(dǎo)致定時任務(wù)執(zhí)行失敗,這可了得,要知道定時任務(wù)執(zhí)行的可是每天的業(yè)務(wù)數(shù)據(jù)。

從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供成都網(wǎng)站制作、網(wǎng)站建設(shè)服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。創(chuàng)新互聯(lián)將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。
仔細檢查,發(fā)現(xiàn)是日志文件爆滿,這是咋回事呢?
原來數(shù)據(jù)倉庫中,每天的定時任務(wù)需要從其他系統(tǒng)里面抽取數(shù)據(jù)過來,導(dǎo)致數(shù)據(jù)文件和日志文件的磁盤空間都增長的飛快。
數(shù)據(jù)不能清理,但是日志文件是可以清理的,說干就干。
測試環(huán)境
SQL Server 2017
操作步驟
1. 將恢復(fù)模式改成“簡單”右鍵要清理的數(shù)據(jù)庫名 - 屬性,切換到選項,將恢復(fù)模式修改為簡單,如下圖1,然后點確定。
圖1
2、收縮日志
還是右鍵要清理的數(shù)據(jù)庫名—任務(wù)—收縮—文件,按如圖2進行設(shè)置,設(shè)置完后點確定即可
圖2
這樣日志就收縮到1M了,是不是很簡單?
但是如果遇到了需要經(jīng)常清理日志怎么辦?難道每次都要來這樣設(shè)置一遍嗎?就沒有什么辦法讓它自動完成?
答案肯定是有的!下面才是真正的一鍵清理。
這里我們要濃重介紹SQL Server的代理功能了
SQL Server 代理
SQL Server代理功能主要是用來完成一些定時任務(wù)的,說白了就是你寫好命令,配置好執(zhí)行的頻率和時間,它就可以按時執(zhí)行你寫好的命令。
下面我們將圖1和圖2中的操作使用命令的形式做一個定時任務(wù)。
1、新建作業(yè)
如下圖3,我們右鍵作業(yè)—新建作業(yè)即可開始新建一個作業(yè)了
圖3
2、命名作業(yè)
給你的作業(yè)命名,這個可以隨便起,能識別就行
3、新建步驟
點擊左側(cè)的菜單欄,選擇步驟—右側(cè)底部點擊新建...—在彈出的窗口中做如下配置:
如果你的數(shù)據(jù)庫名跟我的不一樣,可以套用下面的命令:
USE [master]
GO
ALTER DATABASE 要清理的數(shù)據(jù)庫名稱 SET RECOVERY SIMPLE WITH NO_WAIT
GO
--將數(shù)據(jù)庫設(shè)置為簡單模式
ALTER DATABASE 要清理的數(shù)據(jù)庫名稱 SET RECOVERY SIMPLE
GO
USE 要清理的數(shù)據(jù)庫名稱
GO
--將數(shù)據(jù)庫的日志收縮為2M
DBCC SHRINKFILE (N'要清理的數(shù)據(jù)庫名稱_log' , 2, TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE 要清理的數(shù)據(jù)庫名稱 SET RECOVERY FULL WITH NO_WAIT
GO
--將數(shù)據(jù)庫恢復(fù)為完整模式
ALTER DATABASE 要清理的數(shù)據(jù)庫名稱 SET RECOVERY FULL
GO(提示:可以左右滑動代碼)
然后點確定即可。
4、新建計劃
回到新建作業(yè)窗口,點擊左側(cè)菜單里的計劃—點擊右邊底部的新建...—在彈出的窗口中做如下配置:
上面的作業(yè)計劃就是你要執(zhí)行上面命令的頻率和具體日期和時間,上面我們設(shè)置的是每隔1周,在星期日的上午1點執(zhí)行該命令。
這樣一個定時清理日志的任務(wù)就完成了。
建好后會存在你的作業(yè)里面
你也可以隨時手動執(zhí)行上面的作用,只需要右鍵作業(yè)名——作業(yè)開始步驟...,然后就開始執(zhí)行了,如下圖:
這是已經(jīng)執(zhí)行完成的界面。
如果下次需要清理了,一鍵搞定。
網(wǎng)站欄目:SQL日志太大?教你一鍵清理
當(dāng)前網(wǎng)址:http://m.fisionsoft.com.cn/article/djeiedd.html


咨詢
建站咨詢
