搞網站或者其餘須要使用數據庫的童鞋都對數據庫備份有需求的,備份數據庫的時候最好是選擇在晚間,這個時候使用的頻率比較少,那麼咱們就須要對數據庫備份作一個計劃了。sql
使用SQL做業中執行SQL腳本進行備份的方法雖然已經很簡單了,可是至少仍是要去寫BACKUP腳本,這點有些人以爲不爽,那有沒有更簡單,更懶的方法來實現數據庫的自動定時備份呢?有,那就是「維護計劃」。數據庫
「維護計劃」是在SSMS的對象資源管理中「管理」節點下面。使用維護計劃能夠經過可視化的操做,只點點鼠標就能夠建立數據庫維護的SSIS包,而後仍然是經過SQL Server做業的方式來運行。維護計劃與前面說到的備份方法本質的不一樣就是:維護計劃是SSIS包,上面的是T-SQL腳本。安全
假設咱們如今有一個生產系統的數據庫須要進行備份,因爲數據庫中的數據不少,數據文件很大,若是每次都進行完整備份那麼硬盤佔用了很大空間,並且備份時間很長,維護起來也很麻煩。對此咱們能夠採用完整備份+差別備份的方式,每週日進行一次完整備份,天天晚上進行一次差別備份。使用差別備份能夠減少備份文件的大小,同時還能夠提升備份的速度,不過缺點就是必須使用上一次完整備份的文件和差別備份的文件才能還原差別備份時刻的數據庫,單獨只有差別備份文件是沒有意義。ide
下面我來說一下如何經過維護計劃來實現完整備份+差別備份:工具
(1)在SSMS的對象資源管理器中右擊「維護計劃」,選擇「維護計劃嚮導」,系統將彈出嚮導窗口,如圖:網站
這裏嚮導已經告訴咱們維護計劃到底可以幹什麼了,其中最後一項「執行數據庫備份」正是咱們所須要的。spa
(2)點擊「下一步」按鈕,進入選擇計劃屬性窗口,輸入計劃的名稱,因爲咱們的計劃包括2部分:完整備份和差別備份,這2部分的執行計劃是不同的,一個是一週執行一次,另外一個是一天執行一次,因此要選擇「每項任務單獨計劃」,如圖:設計
(3)單擊「下一步」按鈕,選擇維護任務,這裏就是能夠在維護計劃中執行的任務,若是你想執行的任務在這裏沒有,那就仍是不用維護計劃來作,本身寫SSIS包或者SQL語句吧。咱們要執行的任務都在這裏,選中這2個任務,如圖:代理
(4)單擊「下一步」進入選擇維護任務順序的界面,這裏咱們能夠看到選中的任務出如今列表中,可是咱們並不能調整其順序,那是由於在步驟2中咱們選擇的是每項任務單獨計劃,因此這2個任務是獨立的,沒有前後順序可言。若是當時選擇的是另外一個選項,那麼這裏就能夠調整順序了。日誌
(5)選中「備份數據庫(完整)」而後單擊「下一步」按鈕,系統將轉到定義完整備份任務的界面,如圖:
這個界面實在太長了,我把任務欄隱藏了都顯示不完,出現了滾動條,這裏咱們選擇要進行備份的數據庫,選擇爲每一個數據庫建立備份文件,文件保存在C盤Backup目錄下,擴展名是bak,出於安全起見,咱們能夠選中「驗證備份完整性」,固然也能夠不選。在SQL2008中提供了壓縮備份的新特性,使得備份文件更小,備份速度更快,這裏咱們就是由壓縮備份。最後是選擇執行計劃,我這裏選的是每週日晚上0點的時候執行。
(6)單擊「下一步」按鈕,進入差別備份任務的設置界面,和上一步的界面是同樣的,操做也是同樣的,計劃這裏咱們能夠選擇除了週日之外的天天進行差別備份,如圖:
(7)單擊「下一步」按鈕,進入選擇報告選項,這裏咱們能夠將這個維護計劃的執行報告寫入文本文件中,也能夠講報告經過電子郵件發送給管理員。若是要發送郵件的話,那麼須要配置SQL Server的數據庫郵件,另外還要設置SQL Server代理中的操做員,關於郵件通知操做員的配置網上也講的比較多,我這裏就不詳述了。
(8)單擊「下一步」按鈕,進入「完成該向導」的界面,系統列出了嚮導要完成的工做,如圖:
(9)單擊「完成」按鈕,嚮導將建立對應的SSIS包和SQL做業:
(10)完成後,咱們再刷新下對象資源管理器,咱們能夠看到對應的維護計劃和該計劃對應的做業:
如今維護計劃是建立好了,急着想看看執行後的效果如何,不須要等到晚上12點去了,在「做業」下面,右擊DbBackupPlan.Subplan_1,選擇「做業開始步驟」系統便當即執行該做業,系統運行完成後,咱們即可在C:\Backup文件夾下面有咱們作的完整備份的備份文件。
以上的操做能夠是純粹的無鍵盤操做,不用寫任何腳本,只須要點點鼠標便可。
這裏須要注意的是,咱們若是不是週日制定的該維護計劃,那麼制定該維護計劃前必定要作個完整備份,並且該備份至少要保留到下週,否則到時候出了問題,發現只有這幾個工做日的差別備份,而上一次的完整備份又被刪了,那就鬱悶了。
除了使用維護計劃嚮導之外,咱們還能夠直接新建維護計劃,也能夠修改意見建立的維護計劃。咱們就以修改維護計劃爲例。對於前面建立好的完整備份+ 差別備份維護計劃,如今咱們須要每週對數據庫備份進行一次清理,在完整備份完成後,要將1個月前的備份刪除掉。那麼咱們只須要修改一下維護計劃便可,具體操做以下:
(1)右擊咱們的維護計劃,在彈出式菜單中選擇「修改」選項,系統將新建一個選項卡來顯示當前的維護計劃。如圖:
左下角是可用的維護計劃組件,右下面板是維護計劃的流程設置面板,其上面就是該計劃的子計劃列表。
(2)選中Subplan_1子計劃,也就是每週完整備份的子計劃,將「清除歷史記錄」任務從工具箱中拖拽到計劃面板中,而後在面板中單擊「備份數據庫(完整)」組件,系統將顯示一個綠色的箭頭,將綠色箭頭拖拽到「清除歷史記錄」組件上,如圖:
也就是說在成功完整備份了數據庫後,接下來才執行清除歷史記錄任務。
(3)右擊「清除歷史記錄」任務,在彈出式菜單中選擇「編輯」選項,系統將彈出清除歷史記錄任務設置窗口,如圖:
這裏既能夠清除歷史記錄日誌,也能夠刪除硬盤上的歷史數據。這裏咱們要刪除4周前的歷史備份數據,單擊「肯定」回到計劃面板,咱們能夠看到本來「清除歷史記錄」任務上的小紅叉不見了。單擊「保存」按鈕,該計劃便保存起來。(說明:我在SQL2008中文版虛擬機裏面作的時候一旦修改維護計劃,保存的時候就報錯災難性故障,不過我本機的英文版是正常的,不知道是我虛擬機的問題仍是中文版的Bug,反正在英文版裏面是對的。)
這樣修改後,之後咱們都不用手動去刪除那些好久之前的數據庫備份了,系統在執行完備份後就會刪除那些知足條件的備份數據。
另外若是用過SSIS的人應該知道,一個任務在完成時是綠色箭頭,若是是失敗時是紅色箭頭,咱們這裏也能夠設置,若是上一步驟失敗,那麼將執行什麼操做,雙擊綠色箭頭,在彈出的對話框中選擇約束選項中的值爲「失敗」便可。如圖:
在維護計劃中也能夠設置很複雜的邏輯運算和執行流程,就和SSIS設計同樣的,畢竟本質上他們都是在設計SSIS包。