1. 程式人生 > >MS SQL Server 定時任務實現自動備份

MS SQL Server 定時任務實現自動備份

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%%date
:~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%
View Code

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"
forfiles 
/p %PathDir% /m *.log /d -7 /c "cmd /c del /f @path" echo. >>%filename%
View Code

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,COMPRESSION
View Code

④使用windows任務計劃創建定時任務

參考地址:https://jingyan.baidu.com/article/154b463130041128ca8f41c7.html

網上教程很多,就不贅述了,如果有不懂得,可以評論提問聯系我

MS SQL Server 定時任務實現自動備份