標籤:style blog http color io sp 檔案 資料 div
SQL Server的維護計劃Maintenance Plan是一個非常實用的維護工具,可以完成大多數的資料庫維護任務,通過對這些功能的封裝,可以省去很多的代碼編寫時間。網路上完整介紹的不是很多,特此補上一篇。
資料庫的備份是日常操作非常重要的一個環節,備份的方法也很多,其中最簡單的方法就是通過Management Studio的圖形介面,這種方法對於即時性的備份需求是最快的。
也可以通過SQL語句,直接通過語句相對來說對於自訂的自動化備份更靈活:
BACKUP DATABASE mydb to DISK=‘D:\Backup\mydb
但有時備份操作往往在具體的要求和自動化的要求上會更高一些,尤其是在資料倉儲系統,比如對一個生產系統的備份通常是這樣要求的:
- 每周六一個全量備份
- 工作日時間每天一個增量備份
- 所有的備份在一個月之後自動刪除
如果你是一個很厲害的Coder,通過SQL編程,或者.net c# code,以及powershell等等方式來實現這個需求雖說不難,但也不簡單。而實際上SQLServer早就為我們考慮好了這樣的需求,那就是通過SQLServer內建的Maintenance Plan。
可以在SQL Server Management Studio的Management下找到Maintenance Plans。
首先右鍵這個檔案夾建立一個維護計劃。
給維護計劃取個名字。
維護計劃介面。對於上面我們提到的需求,在維護計劃裡對應的就是三個Subplan。系統會預設建立一個空的Subplan。
Subplan裡都支援哪些功能呢?讓我們點擊View菜單下的Toolbox。
可以看到在維護計划下支援的任務類型(熟悉SSIS的朋友對這個或許再熟悉不過)。
將Back Up Database Task拖拽到右側。
雙擊設計介面的Back Up Database Task,彈出備份設計介面,首先指定要備份哪一個資料庫。這裡支援多選,所以在維護整台伺服器的時候很方便。這裡我們只示範備份AdventureWorksDW2012資料庫。
備份類型選擇Full完整。然後依次指定備份路徑等資訊。
完整備份建立完畢後,再建立一個Subplan,來完成增量備份的設定。
點擊Add Subplan後,給子計劃取個名字。
資料庫還是選擇AdventureWorksDW2012,備份類型選擇"差異"。其它設定跟以前相同,當然如果考慮將差異備份和完整備份分開的話,可以考慮重新設定備份路徑。
完整備份和差異備份的設定完成了,接下來需要設定的是清空曆史備份。這裡再添加一個Subplan,將Maintenance Cleanup Task拖拽到設計介面中。
設定要清理的檔案夾,指向剛才我們設定的備份路徑,然後在底部設定多久的檔案需要被清理掉,這裡選擇1 Month。
三個步驟設定完畢了,以此為全量備份,差異備份以及備份清理,問了維護方便,將這三個Subplan重新命名:
接下來設定每個步驟的運行周期。按照先前的需求定義,周六一個完整備份,平日一個差異備份,然後自動清理一個月前的備份。
首先點擊第一個Subplan的Schedule按鈕,按照如下設定全量備份的周期設定。
然後以此設定差異備份的周期。
最後檔案清理的周期。
設定好之後,儲存,維護計劃就設定完畢了。
而實際上,SQL Server是根據剛才的操作,自動產生了相應的SSIS Package和Job,在SQL Server Agent的Jobs下可以看到產生的相應的三個Job。
點開每個Job,可以看到Job步驟下是在SSIS下產生的對應的Package。
至此,通過維護計劃來實現複雜的備份任務介紹至此。也許這個備份介紹的還不是很全面,但基本足以滿足大多數的需求情境,尤其是對資料倉儲的備份,而且再複雜的備份任務基本也都可以通過維護計劃來實現。
SQL Server Database 維護計劃建立完整的備份策略