文章出處

對于備份計劃,在sql server中微軟提供了相應的功能集,通過Maintenance Plans向導可以對數據庫進行相關維護工作。

通過下圖的向導,可以進行如定期備份和清除工作。

前提是安裝介質包含了sql server維護的功能,并且正常啟動了sql server agent服務。而在express版本中并沒有提供維護計劃功能集。

 

而對于express版本,我們可以通過windows的任務計劃來實現備份操作。

首先我們寫一串sql語句,用作備份清理計劃。

 1 --bk--
 2 declare @filename varchar(255)
 3 set @filename = N'C:\BACKUP\test_' + cast(datepart(yyyy, getdate()) as varchar)
 4 + cast(datepart(mm, getdate()) as varchar) + cast(datepart(dd, getdate()) as varchar) + '.bak'
 5 
 6 backup database[test] to disk = @filename with init
 7 go
 8 
 9 --delete bk--
10 declare @date datetime
11 set @date = getdate() - 3
12 
13 execute master.dbo.xp_delete_file 0, N'C:\BACKUP', N'bak', @date, 1
14 go

上面的sql創建了test數據庫的備份,并保留了3天的備份記錄。

上面用到了一個系統存儲過程xp_delete_file。介紹下這個存儲過程相關參數:

1. File Type = 0 for backup files or 1 for report files.

2. Folder Path = The folder to delete files. The path must end with a backslash "\".

3. File Extension = This could be 'BAK' or 'TRN' or whatever you normally use.

4. Date = The cutoff date for what files need to be deleted.

5. Subfolder = 0 to ignore subfolders, 1 to delete files in subfolders.

 

ok,創建好sql后,需要再寫一個bat。調用到sqlcmd命令,相關參數可以說明可以看一下幫助文檔。下面表示輸入的sql腳本和吐出的執行日志。

1 sqlcmd -i "C:\backup\job.sql" -o "C:\backup\err.txt"

下面可以通過windows附件中的任務計劃工具,將bat腳本作為執行任務,并設置執行時間周期。

2

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()