熱線電話:13121318867

登錄
首頁大數據時代SQL日志太大?教你一鍵清理
SQL日志太大?教你一鍵清理
2020-07-24
收藏

結構化查詢語言,也就是Structured Query Language,簡稱SQL,是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統。由于其語言簡潔,易學易用,在數據分析過程中也經常用到,但是有時候我們會遇到SQL日志文件爆滿的情況,導致任務運行失敗。別擔心,小編今天跟大家分享的這篇文章就是幫你解決SQL日志清理問題的,一起來看吧!

以下文章轉自:微信公眾號 SQL數據庫開發

作者: 丶平凡世界

最近數據倉庫時不時爆磁盤空間不足,導致定時任務執行失敗,這可了得,要知道定時任務執行的可是每天的業務數據。

仔細檢查,發現是日志文件爆滿,這是咋回事呢?

原來數據倉庫中,每天的定時任務需要從其他系統里面抽取數據過來,導致數據文件和日志文件的磁盤空間都增長的飛快。

數據不能清理,但是日志文件是可以清理的,說干就干。

測試環境

SQL Server 2017

操作步驟

1. 將恢復模式改成“簡單”
右鍵要清理的數據庫名 - 屬性,切換到選項,將恢復模式修改為簡單,如下圖1,然后點確定。

圖1

2、收縮日志

還是右鍵要清理的數據庫名任務收縮文件,按如圖2進行設置,設置完后點確定即可

圖2

這樣日志就收縮到1M了,是不是很簡單?

但是如果遇到了需要經常清理日志怎么辦?難道每次都要來這樣設置一遍嗎?就沒有什么辦法讓它自動完成?

答案肯定是有的!下面才是真正的一鍵清理。

這里我們要濃重介紹SQL Server的代理功能了

SQL Server 代理

SQL Server代理功能主要是用來完成一些定時任務的,說白了就是你寫好命令,配置好執行的頻率和時間,它就可以按時執行你寫好的命令。

下面我們將圖1和圖2中的操作使用命令的形式做一個定時任務。

1、新建作業

如下圖3,我們右鍵作業新建作業即可開始新建一個作業了

圖3

2、命名作業

給你的作業命名,這個可以隨便起,能識別就行

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

(提示:可以左右滑動代碼)

然后點確定即可。

4、新建計劃

回到新建作業窗口,點擊左側菜單里的計劃—點擊右邊底部的新建...—在彈出的窗口中做如下配置:

上面的作業計劃就是你要執行上面命令的頻率和具體日期和時間,上面我們設置的是每隔1周,在星期日的上午1點執行該命令。

這樣一個定時清理日志的任務就完成了。

建好后會存在你的作業里面

你也可以隨時手動執行上面的作用,只需要右鍵作業名——作業開始步驟...,然后就開始執行了,如下圖:

這是已經執行完成的界面。

如果下次需要清理了,一鍵搞定。

原文鏈接:https://mp.weixin.qq.com/s/pkyznRF1nkiezawv1SSx7g

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢