MS SQL Server 定時任務實現自動備份
阿新 • • 發佈:2018-09-20
repl let onclick users get 監控 sqlcmd 沒有 arc
SQL Server Express 版本是沒有SQL 代理服務的,從而導致不能使用SQL Server的定時自動備份功能。真心感覺這就是一個坑,雖然Express是學習的版本,但是精簡的也太多了。另外一點不能忍受的是居然沒有SQL Profile 監控執行語句數據功能,[手動cry]
好了,來說一下如果你使用了Express,如何進行SQL Server 的自動備份吧:
①方法就是:SQL備份數據庫語句 + windows 定時任務計劃
②目錄結構為:
③DBBacUp.bat 備份的腳本
set YYYYmmdd=%date:~0,4%%date:~5,2%%dateView Code:~8,2% set PathDir="C:\數據庫備份" set "filename= %PathDir%\%YYYYmmdd%.log" echo Start BackUp,Time: %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2% >>%filename% sqlcmd -S . -i C:\Users\JuanFei\Desktop\DBBackup.sql >>%filename% echo. >>%filename%
DeleteTask.bat 刪除7天前的,冗余備份,防止備份數據過多,占用空間
:: 刪除7天以前的備份記錄 set YYYYmmdd=%date:~0,4%%date:~5,2%%date:~8,2% set PathDir="C:\數據庫備份" set "filename= %PathDir%\%YYYYmmdd%.log" echo Start Delete,Time: %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2% >>%filename% forfiles /p %PathDir% /m *.bak /d -7 /c "cmd /c del /f @path" forfilesView Code/p %PathDir% /m *.log /d -7 /c "cmd /c del /f @path" echo. >>%filename%
DBBackup.sql 重點:備份的SQL語句
GO DECLARE @backupTime VARCHAR(20) DECLARE @fileName VARCHAR(1000) SELECT @backupTime=(CONVERT(VARCHAR(8), GETDATE(), 112) +REPLACE(CONVERT(VARCHAR(5), GETDATE(), 114), ‘:‘, ‘‘)) SELECT @fileName=‘c:\數據庫備份\PX_Traceability_‘+@backupTime+‘.bak‘ backup database PX_Traceability to disk=@fileName with INIT,COMPRESSIONView Code
④使用windows任務計劃創建定時任務
參考地址:https://jingyan.baidu.com/article/154b463130041128ca8f41c7.html
網上教程很多,就不贅述了,如果有不懂得,可以評論提問聯系我
MS SQL Server 定時任務實現自動備份