- 類(lèi)型:數(shù)據(jù)庫(kù)類(lèi)大。40.7M語(yǔ)言:中文 評(píng)分:6.6
- 標(biāo)簽:
搞網(wǎng)站或者其他需要使用數(shù)據(jù)庫(kù)的童鞋都對(duì)數(shù)據(jù)庫(kù)備份有需求的,備份數(shù)據(jù)庫(kù)的時(shí)候最好是選擇在晚間,這個(gè)時(shí)候使用的頻率比較少,那么我們就需要對(duì)數(shù)據(jù)庫(kù)備份做一個(gè)計(jì)劃了。
使用SQL作業(yè)中執(zhí)行SQL腳本進(jìn)行備份的方法雖然已經(jīng)很簡(jiǎn)單了,但是至少還是要去寫(xiě)B(tài)ACKUP腳本,這點(diǎn)有些人覺(jué)得不爽,那有沒(méi)有更簡(jiǎn)單,更懶的方法來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的自動(dòng)定時(shí)備份呢?有,那就是“維護(hù)計(jì)劃”。
“維護(hù)計(jì)劃”是在SSMS的對(duì)象資源管理中“管理”節(jié)點(diǎn)下面。使用維護(hù)計(jì)劃可以通過(guò)可視化的操作,只點(diǎn)點(diǎn)鼠標(biāo)就可以創(chuàng)建數(shù)據(jù)庫(kù)維護(hù)的SSIS包,然后仍然是通過(guò)SQL Server作業(yè)的方式來(lái)運(yùn)行。維護(hù)計(jì)劃與前面說(shuō)到的備份方法本質(zhì)的不同就是:維護(hù)計(jì)劃是SSIS包,上面的是T-SQL腳本。
假設(shè)我們現(xiàn)在有一個(gè)生產(chǎn)系統(tǒng)的數(shù)據(jù)庫(kù)需要進(jìn)行備份,由于數(shù)據(jù)庫(kù)中的數(shù)據(jù)很多,數(shù)據(jù)文件很大,如果每次都進(jìn)行完整備份那么硬盤(pán)占用了很大空間,而且備份時(shí)間很長(zhǎng),維護(hù)起來(lái)也很麻煩。對(duì)此我們可以采用完整備份+差異備份的方式,每周日進(jìn)行一次完整備份,每天晚上進(jìn)行一次差異備份。使用差異備份可以減小備份文件的大小,同時(shí)還可以提高備份的速度,不過(guò)缺點(diǎn)就是必須使用上一次完整備份的文件和差異備份的文件才能還原差異備份時(shí)刻的數(shù)據(jù)庫(kù),單獨(dú)只有差異備份文件是沒(méi)有意義。
下面我來(lái)講一下如何通過(guò)維護(hù)計(jì)劃來(lái)實(shí)現(xiàn)完整備份+差異備份:
(1)在SSMS的對(duì)象資源管理器中右擊“維護(hù)計(jì)劃”,選擇“維護(hù)計(jì)劃向?qū)А保到y(tǒng)將彈出向?qū)Т翱,如圖:
這里向?qū)б呀?jīng)告訴我們維護(hù)計(jì)劃到底能夠干什么了,其中最后一項(xiàng)“執(zhí)行數(shù)據(jù)庫(kù)備份”正是我們所需要的。
(2)點(diǎn)擊“下一步”按鈕,進(jìn)入選擇計(jì)劃屬性窗口,輸入計(jì)劃的名稱(chēng),由于我們的計(jì)劃包括2部分:完整備份和差異備份,這2部分的執(zhí)行計(jì)劃是不一樣的,一個(gè)是一周執(zhí)行一次,另一個(gè)是一天執(zhí)行一次,所以要選擇“每項(xiàng)任務(wù)單獨(dú)計(jì)劃”,如圖:
(3)單擊“下一步”按鈕,選擇維護(hù)任務(wù),這里就是可以在維護(hù)計(jì)劃中執(zhí)行的任務(wù),如果你想執(zhí)行的任務(wù)在這里沒(méi)有,那就還是不用維護(hù)計(jì)劃來(lái)做,自己寫(xiě)SSIS包或者SQL語(yǔ)句吧。我們要執(zhí)行的任務(wù)都在這里,選中這2個(gè)任務(wù),如圖:
(4)單擊“下一步”進(jìn)入選擇維護(hù)任務(wù)順序的界面,這里我們可以看到選中的任務(wù)出現(xiàn)在列表中,但是我們并不能調(diào)整其順序,那是因?yàn)樵诓襟E2中我們選擇的是每項(xiàng)任務(wù)單獨(dú)計(jì)劃,所以這2個(gè)任務(wù)是獨(dú)立的,沒(méi)有先后順序可言。如果當(dāng)時(shí)選擇的是另一個(gè)選項(xiàng),那么這里就可以調(diào)整順序了。
(5)選中“備份數(shù)據(jù)庫(kù)(完整)”然后單擊“下一步”按鈕,系統(tǒng)將轉(zhuǎn)到定義完整備份任務(wù)的界面,如圖:
這個(gè)界面實(shí)在太長(zhǎng)了,我把任務(wù)欄隱藏了都顯示不完,出現(xiàn)了滾動(dòng)條,這里我們選擇要進(jìn)行備份的數(shù)據(jù)庫(kù),選擇為每個(gè)數(shù)據(jù)庫(kù)創(chuàng)建備份文件,文件保存在C盤(pán)Backup目錄下,擴(kuò)展名是bak,出于安全起見(jiàn),我們可以選中“驗(yàn)證備份完整性”,當(dāng)然也可以不選。在SQL2008中提供了壓縮備份的新特性,使得備份文件更小,備份速度更快,這里我們就是由壓縮備份。最后是選擇執(zhí)行計(jì)劃,我這里選的是每周日晚上0點(diǎn)的時(shí)候執(zhí)行。
(6)單擊“下一步”按鈕,進(jìn)入差異備份任務(wù)的設(shè)置界面,和上一步的界面是一樣的,操作也是一樣的,計(jì)劃這里我們可以選擇除了周日以外的每天進(jìn)行差異備份,如圖:
(7)單擊“下一步”按鈕,進(jìn)入選擇報(bào)告選項(xiàng),這里我們可以將這個(gè)維護(hù)計(jì)劃的執(zhí)行報(bào)告寫(xiě)入文本文件中,也可以講報(bào)告通過(guò)電子郵件發(fā)送給管理員。如果要發(fā)送郵件的話(huà),那么需要配置SQL Server的數(shù)據(jù)庫(kù)郵件,另外還要設(shè)置SQL Server代理中的操作員,關(guān)于郵件通知操作員的配置網(wǎng)上也講的比較多,我這里就不詳述了。
(8)單擊“下一步”按鈕,進(jìn)入“完成該向?qū)А钡慕缑,系統(tǒng)列出了向?qū)б瓿傻墓ぷ,如圖:
(9)單擊“完成”按鈕,向?qū)?chuàng)建對(duì)應(yīng)的SSIS包和SQL作業(yè):
(10)完成后,我們?cè)偎⑿孪聦?duì)象資源管理器,我們可以看到對(duì)應(yīng)的維護(hù)計(jì)劃和該計(jì)劃對(duì)應(yīng)的作業(yè):
現(xiàn)在維護(hù)計(jì)劃是創(chuàng)建好了,急著想看看執(zhí)行后的效果如何,不需要等到晚上12點(diǎn)去了,在“作業(yè)”下面,右擊DbBackupPlan.Subplan_1,選擇“作業(yè)開(kāi)始步驟”系統(tǒng)便立即執(zhí)行該作業(yè),系統(tǒng)運(yùn)行完成后,我們便可在C:\Backup文件夾下面有我們做的完整備份的備份文件。
以上的操作可以是純粹的無(wú)鍵盤(pán)操作,不用寫(xiě)任何腳本,只需要點(diǎn)點(diǎn)鼠標(biāo)即可。
這里需要注意的是,我們?nèi)绻皇侵苋罩贫ǖ脑摼S護(hù)計(jì)劃,那么制定該維護(hù)計(jì)劃前一定要做個(gè)完整備份,而且該備份至少要保留到下周,不然到時(shí)候出了問(wèn)題,發(fā)現(xiàn)只有這幾個(gè)工作日的差異備份,而上一次的完整備份又被刪了,那就郁悶了。
除了使用維護(hù)計(jì)劃向?qū)б酝,我們還可以直接新建維護(hù)計(jì)劃,也可以修改意見(jiàn)創(chuàng)建的維護(hù)計(jì)劃。我們就以修改維護(hù)計(jì)劃為例。對(duì)于前面創(chuàng)建好的完整備份+ 差異備份維護(hù)計(jì)劃,現(xiàn)在我們需要每周對(duì)數(shù)據(jù)庫(kù)備份進(jìn)行一次清理,在完整備份完成后,要將1個(gè)月前的備份刪除掉。那么我們只需要修改一下維護(hù)計(jì)劃即可,具體操作如下:
(1)右擊我們的維護(hù)計(jì)劃,在彈出式菜單中選擇“修改”選項(xiàng),系統(tǒng)將新建一個(gè)選項(xiàng)卡來(lái)顯示當(dāng)前的維護(hù)計(jì)劃。如圖:
左下角是可用的維護(hù)計(jì)劃組件,右下面板是維護(hù)計(jì)劃的流程設(shè)置面板,其上面就是該計(jì)劃的子計(jì)劃列表。
(2)選中Subplan_1子計(jì)劃,也就是每周完整備份的子計(jì)劃,將“清除歷史記錄”任務(wù)從工具箱中拖拽到計(jì)劃面板中,然后在面板中單擊“備份數(shù)據(jù)庫(kù)(完整)”組件,系統(tǒng)將顯示一個(gè)綠色的箭頭,將綠色箭頭拖拽到“清除歷史記錄”組件上,如圖:
也就是說(shuō)在成功完整備份了數(shù)據(jù)庫(kù)后,接下來(lái)才執(zhí)行清除歷史記錄任務(wù)。
(3)右擊“清除歷史記錄”任務(wù),在彈出式菜單中選擇“編輯”選項(xiàng),系統(tǒng)將彈出清除歷史記錄任務(wù)設(shè)置窗口,如圖:
這里既可以清除歷史記錄日志,也可以刪除硬盤(pán)上的歷史數(shù)據(jù)。這里我們要?jiǎng)h除4周前的歷史備份數(shù)據(jù),單擊“確定”回到計(jì)劃面板,我們可以看到原本“清除歷史記錄”任務(wù)上的小紅叉不見(jiàn)了。單擊“保存”按鈕,該計(jì)劃便保存起來(lái)。(說(shuō)明:我在SQL2008中文版虛擬機(jī)里面做的時(shí)候一旦修改維護(hù)計(jì)劃,保存的時(shí)候就報(bào)錯(cuò)災(zāi)難性故障,不過(guò)我本機(jī)的英文版是正常的,不知道是我虛擬機(jī)的問(wèn)題還是中文版的Bug,反正在英文版里面是對(duì)的。)
這樣修改后,以后我們都不用手動(dòng)去刪除那些很久以前的數(shù)據(jù)庫(kù)備份了,系統(tǒng)在執(zhí)行完備份后就會(huì)刪除那些滿(mǎn)足條件的備份數(shù)據(jù)。
另外如果用過(guò)SSIS的人應(yīng)該知道,一個(gè)任務(wù)在完成時(shí)是綠色箭頭,如果是失敗時(shí)是紅色箭頭,我們這里也可以設(shè)置,如果上一步驟失敗,那么將執(zhí)行什么操作,雙擊綠色箭頭,在彈出的對(duì)話(huà)框中選擇約束選項(xiàng)中的值為“失敗”即可。如圖:
在維護(hù)計(jì)劃中也可以設(shè)置很復(fù)雜的邏輯運(yùn)算和執(zhí)行流程,就和SSIS設(shè)計(jì)一樣的,畢竟本質(zhì)上他們都是在設(shè)計(jì)SSIS包。
一般西西選擇的是完整性備份。