利用SQL Server代理服務(wù)-定時(shí)清理SQL Server數(shù)據(jù)庫(kù)日志文件

[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!

說(shuō)到清理SQL Server數(shù)據(jù)庫(kù)日志文件,這件事兒可大可小,有的客戶安裝的是簡(jiǎn)版的sql,再使用的時(shí)候最大2GB的日志文件+數(shù)據(jù)文件,超過(guò)了就不啟動(dòng)或者報(bào)錯(cuò),甚至數(shù)據(jù)也不能寫入,很尷尬,完整版的,在沒(méi)設(shè)置無(wú)限大的時(shí)候,也就是4GB,其實(shí)這東西也占盤不是,沒(méi)啥用處,還得定時(shí)清理才是王道!

利用SQL Server代理服務(wù)-定時(shí)清理SQL Server數(shù)據(jù)庫(kù)日志文件

USE [msdb]
GO

/****** Object:? Job [ClearDBLog]??? Script Date: 2023/6/15 13:44:38 ******/
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object:? JobCategory [Database Maintenance]??? Script Date: 2023/6/15 13:44:38 ******/
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'Database Maintenance' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'Database Maintenance'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END

DECLARE @jobId BINARY(16)
EXEC @ReturnCode =? msdb.dbo.sp_add_job @job_name=N'ClearDBLog',
????????@enabled=1,
????????@notify_level_eventlog=2,
????????@notify_level_email=0,
????????@notify_level_netsend=0,
????????@notify_level_page=0,
????????@delete_level=0,
????????@description=N'無(wú)描述。',
????????@category_name=N'Database Maintenance',
????????@owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object:? Step [ClearDBLogStep1]??? Script Date: 2023/6/15 13:44:38 ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'ClearDBLogStep1',
????????@step_id=1,
????????@cmdexec_success_code=0,
????????@on_success_action=1,
????????@on_success_step_id=0,
????????@on_fail_action=2,
????????@on_fail_step_id=0,
????????@retry_attempts=0,
????????@retry_interval=0,
????????@os_run_priority=0, @subsystem=N'TSQL',
????????@command=N'ALTER DATABASE [laoliang_net] SET RECOVERY SIMPLE WITH NO_WAIT?
GO
--設(shè)置數(shù)據(jù)庫(kù)恢復(fù)模式為簡(jiǎn)單
ALTER DATABASE [laoliang_net] SET RECOVERY SIMPLE;
GO
--收縮日志文件
DBCC SHRINKFILE (N''laoliang_net_log'', 11, TRUNCATEONLY);
GO
ALTER DATABASE [laoliang_net] SET RECOVERY FULL WITH NO_WAIT?
GO?
--恢復(fù)數(shù)據(jù)庫(kù)還原模式為完整
ALTER DATABASE [laoliang_net] SET RECOVERY FULL',
????????@database_name=N'laoliang_net',
????????@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'ClearDBLogPlan',
????????@enabled=1,
????????@freq_type=4,
????????@freq_interval=1,
????????@freq_subday_type=1,
????????@freq_subday_interval=0,
????????@freq_relative_interval=0,
????????@freq_recurrence_factor=0,
????????@active_start_date=20230615,
????????@active_end_date=99991231,
????????@active_start_time=0,
????????@active_end_time=235959,
????????@schedule_uid=N'bddeed70-2db4-4041-99d5-376dadc7870e'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
????IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
GO

其中,laoliang_net為數(shù)據(jù)庫(kù)文件名稱,laoliang_net_log為數(shù)據(jù)庫(kù)日志文件名稱。

具體在使用的時(shí)候,將數(shù)據(jù)庫(kù)文件名稱和數(shù)據(jù)庫(kù)日志文件名稱替換為自己數(shù)據(jù)庫(kù)的相關(guān)文件名稱,然后在數(shù)據(jù)庫(kù)查詢框中執(zhí)行以上代碼,就會(huì)生成SQL Server代理作業(yè)(數(shù)據(jù)庫(kù)需啟用SQL Server代理服務(wù))。

右鍵點(diǎn)擊“屬性”,在彈出界面中選擇“計(jì)劃”

雙擊右側(cè)的計(jì)劃列表,可以設(shè)置作業(yè)運(yùn)行的頻率。

按照以上就可以按照規(guī)劃的時(shí)間來(lái)定時(shí)清理SQL日志文件啦!

問(wèn)題未解決?付費(fèi)解決問(wèn)題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信

所寫所說(shuō),是心之所感,思之所悟,行之所得;文當(dāng)無(wú)敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!

支付寶贊助
微信贊助

免責(zé)聲明,若由于商用引起版權(quán)糾紛,一切責(zé)任均由使用者承擔(dān)。

您必須遵守我們的協(xié)議,如您下載該資源,行為將被視為對(duì)《免責(zé)聲明》全部?jī)?nèi)容的認(rèn)可->聯(lián)系老梁投訴資源
LaoLiang.Net部分資源來(lái)自互聯(lián)網(wǎng)收集,僅供用于學(xué)習(xí)和交流,請(qǐng)勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請(qǐng)聯(lián)系站長(zhǎng)并出示版權(quán)證明以便刪除。 敬請(qǐng)諒解! 侵權(quán)刪帖/違法舉報(bào)/投稿等事物聯(lián)系郵箱:service@laoliang.net
意在交流學(xué)習(xí),歡迎贊賞評(píng)論,如有謬誤,請(qǐng)聯(lián)系指正;轉(zhuǎn)載請(qǐng)注明出處: » 利用SQL Server代理服務(wù)-定時(shí)清理SQL Server數(shù)據(jù)庫(kù)日志文件

發(fā)表回復(fù)

本站承接,網(wǎng)站推廣(SEM,SEO);軟件安裝與調(diào)試;服務(wù)器或網(wǎng)絡(luò)推薦及配置;APP開(kāi)發(fā)與維護(hù);網(wǎng)站開(kāi)發(fā)修改及維護(hù); 各財(cái)務(wù)軟件安裝調(diào)試及注冊(cè)服務(wù)(金蝶,用友,管家婆,速達(dá),星宇等);同時(shí)也有客戶管理系統(tǒng),人力資源,超市POS,醫(yī)藥管理等;

立即查看 了解詳情