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


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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM