利用bat批處理——實現數據庫的自動備份和刪除


之前見別人一直在玩批處理,最近公司也在用,就順便學習下:

  1. 首先創建一個 txt文件 命名BackupDataBase  並修改后綴為.bat
  2. 編寫兩條命令

       sqlcmd -S . -E -Q "EXEC master.dbo.usp_BackupDatabase" %執行存儲過程實現備份%

  forfiles /p "D:\Backup" /s /m *.BAK /d -7 /c "cmd /c del @path" %刪除7天以前的備份%

注意:這里有個坑就是,要備份的路徑一定要弄成英文,中文的話識別不了,導致無法備份,這也是我搗鼓很久才知道的。

          3.在master數據庫下新建一個存儲過程,腳本如下:

use [master]

go

create proc usp_BackupDatabase

@diskPath as NVARCHAR(300)

as begin

SET @diskPath='D:\Backup\Inferno_'   --設置備份路徑

+CONVERT(VARCHAR, GETDATE(),112)+'_'

+REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')+'.BAK'

 

BACKUP DATABASE Inferno TO DISK = @diskPath WITH FORMAT; --設置要備份的數據庫

end

這樣一個備份批處理就弄好了,我們可以直接雙擊執行批處理文件,就可以看到備份文件了。如果執行不成功的話,可以在數據庫執行存儲過程試試,看看提示什么異常。

emm~ 最后呢,就是我們不可能自己天天手動執行,一般會弄一個計划程序,定時執行批處理文件就OK了。

最后來張效果圖,哈哈~


免責聲明!

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



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