恢復(fù)就是把遭受破壞或丟失數(shù)據(jù)或出現(xiàn)錯誤的數(shù)據(jù)庫恢復(fù)到原來的正常狀態(tài),這一狀態(tài)是由備份決定的,但是為了維護(hù)數(shù)據(jù)庫的一致性,在備份中未完成的事務(wù)并不進(jìn)行恢復(fù)。 進(jìn)行備份和恢復(fù)的工作主要是由數(shù)據(jù)庫管理員來完成的。實際上數(shù)據(jù)庫管理員日常比較重要、比較頻繁的工作就是對數(shù)據(jù)庫進(jìn)行備份和恢復(fù)。 注意:如果在備份或恢復(fù)過程中發(fā)生中斷,則可以重新從中斷點開始執(zhí)行備份或恢復(fù)。這在備份一個大型數(shù)據(jù)庫時極有價值。 15.1.2 數(shù)據(jù)庫備份的類型 在SQL Server 2000 中有四種備份類型,分別為;
1 數(shù)據(jù)庫備份(Database Backups) 數(shù)據(jù)庫備份是指對數(shù)據(jù)庫的完整備份,包括所有的數(shù)據(jù)以及數(shù)據(jù)庫對象。實際上備份數(shù)據(jù)庫過程就是首先將事務(wù)日志寫到磁盤上, 然后根據(jù)事務(wù)創(chuàng)建相同的數(shù)據(jù)庫和數(shù)據(jù)庫對象以及拷貝數(shù)據(jù)的過程。由于是對數(shù)據(jù)庫的完全備份,所以這種備份類型不僅速度較慢, 而且將占用大量磁盤空間。正因為如此,在進(jìn)行數(shù)據(jù)庫備份時,常將其安排在晚間,因為此時整個數(shù)據(jù)庫系統(tǒng)幾乎不進(jìn)行其它事務(wù)操作,從而可以提高數(shù)據(jù)庫備份的速度。 在對數(shù)據(jù)庫進(jìn)行完全備份時,所有未完成的事務(wù)或者發(fā)生在備份過程中的事務(wù)都不會被備份。如果您使用數(shù)據(jù)庫備份類型, 則從開始備份到開始恢復(fù)這段時間內(nèi)發(fā)生的任何針對數(shù)據(jù)庫的修改將無法恢復(fù)。所以我們總是在一定的要求或條件下才使用這種備份類型,比如:
注意:如果對數(shù)據(jù)一致性要求較高(將數(shù)據(jù)庫恢復(fù)到發(fā)生損壞的刻),則不應(yīng)使用數(shù)據(jù)庫備份。 2 事務(wù)日志備份(Transaction Log Backup) 事務(wù)日志備份是指對數(shù)據(jù)庫發(fā)生的事務(wù)進(jìn)行備份,包括從上次進(jìn)行事務(wù)日志備份、差異備份和數(shù)據(jù)庫完全備份之后,所有已經(jīng)完成的事務(wù)。在以下情況下我們常選擇事務(wù)日志備份。
但是,創(chuàng)建事務(wù)日志備份卻相對比較復(fù)雜。因為在使用事務(wù)日志對數(shù)據(jù)庫進(jìn)行恢復(fù)操作時,還必須有一個完整的數(shù)據(jù)庫備份,而且事務(wù)日志備份恢復(fù)時必須要按一定的順序進(jìn)行。比如在上周末對數(shù)據(jù)庫進(jìn)行了完整的數(shù)據(jù)庫備份,在從周一到本周末的每一天都進(jìn)行一次事務(wù)日志備份,那么若要打算對數(shù)據(jù)庫進(jìn)行恢復(fù),則首先恢復(fù)數(shù)據(jù)庫備份,然后按照順序恢復(fù)從周一到本周末的事務(wù)日志備份。 有些時侯數(shù)據(jù)庫事務(wù)日志會被中斷,例如數(shù)據(jù)庫中執(zhí)行了非日志操作(如創(chuàng)建索引、創(chuàng)建或刪除數(shù)據(jù)庫文件、自動或手工縮小數(shù)據(jù)庫文件大小),此時應(yīng)該立即創(chuàng)建數(shù)據(jù)庫或差異備份,然后再進(jìn)行事務(wù)日志備份。以前進(jìn)行的事務(wù)日志備份也沒有必要了。 3 差異備份(Differential Database Backups) 差異備份是指將最近一次數(shù)據(jù)庫備份以來發(fā)生的數(shù)據(jù)變化備份起,來因此差異備份實際上是一種增量數(shù)據(jù)庫備份。與完整數(shù)據(jù)庫備份相比,差異備份由于備份的數(shù)據(jù)量較小,所以備份和恢復(fù)所用的時間較短。通過增加差異備份的備份次數(shù),可以降低丟失數(shù)據(jù)的風(fēng)險,將數(shù)據(jù)庫恢復(fù)至進(jìn)行最后一次差異備份的時刻,但是它無法像事務(wù)日志備份那樣提供到失敗點的無數(shù)據(jù)損失備份。 但在實際中為了最大限度地減少數(shù)據(jù)庫恢復(fù)時間以及降低數(shù)據(jù)損失數(shù)量,我們常一起使用數(shù)據(jù)庫備份、事務(wù)日志備份和差異備份,而采用的備份方案是這樣的;
4 文件和文件組備份(File and File Group Backup) 文件或文件組備份是指對數(shù)據(jù)庫文件或文件夾進(jìn)行備份,但其不像完整的數(shù)據(jù)庫備份那樣同時也進(jìn)行事務(wù)日志備份。使用該備份方法可提高數(shù)據(jù)庫恢復(fù)的速度,因為其僅對遭到破壞的文件或文件組進(jìn)行恢復(fù)。 但是在使用文件或文件組進(jìn)行恢復(fù)時,仍要求有一個自上次備份以來的事務(wù)日志備份來保證數(shù)據(jù)庫的一致性。所以在進(jìn)行完文件或文件組備份后應(yīng)再進(jìn)行事務(wù)日志備份。否則備份在文件或文件組備份中所有數(shù)據(jù)庫變化將無效。 如果需要恢復(fù)的數(shù)據(jù)庫部分涉及到多個文件或文件組,則應(yīng)把這些文件或文件組都進(jìn)行恢復(fù)。例如,如果在創(chuàng)建表或索引時,表或索引是跨多個文件或文件組,則在事務(wù)日志備份結(jié)束后應(yīng)再對表或索引有關(guān)的文件或文件組進(jìn)行備份,否則在文件或文件組恢復(fù)時將會出錯。 15.1.3 備份和恢復(fù)的策略 通常而言,我們總是依賴所要求的恢復(fù)能力(如將數(shù)據(jù)庫恢復(fù)到失敗點)、備份文件的大?。ㄈ缤瓿蓴?shù)據(jù)庫備份或只進(jìn)行事務(wù)日志的備份或是差異數(shù)據(jù)庫備份)以及留給備份的時間等來決定該使用哪種類型的備份。常用的備份選擇方案有:僅僅進(jìn)行數(shù)據(jù)庫備份、或在進(jìn)行數(shù)據(jù)庫備份的同時進(jìn)行事務(wù)日志備份,或使用完整數(shù)據(jù)庫備份和差異數(shù)據(jù)庫備份。 選用怎樣的備份方案將對備份和恢復(fù)產(chǎn)生直接影響,而且也決定了數(shù)據(jù)庫在遭到破壞前后的一致性水平。所以在做出該決策時,您必須認(rèn)識到以下幾個問題:
1 簡單恢復(fù)(Simple Recovery) 所謂簡單恢復(fù)就是指在進(jìn)行數(shù)據(jù)庫恢復(fù)時僅使用了數(shù)據(jù)庫備份或差異備份,而不涉及事務(wù)日志備份。簡單恢復(fù)模式可使數(shù)據(jù)庫恢復(fù)到上一次備份的狀態(tài),但由于不使用事務(wù)日志備份來進(jìn)行恢復(fù),所以無法將數(shù)據(jù)庫恢復(fù)到失敗點狀態(tài)。當(dāng)選擇簡單恢復(fù)模式時常使用的備份策略是:首先進(jìn)行數(shù)據(jù)庫備份,然后進(jìn)行差異備份。 2 完全恢復(fù)(Full Recovery) 完全數(shù)據(jù)庫恢復(fù)模式是指通過使用數(shù)據(jù)庫備份和事務(wù)日志備份將數(shù)據(jù)庫恢復(fù)到發(fā)生失敗的時刻,因此幾乎不造成任何數(shù)據(jù)丟失,這成為對付因存儲介質(zhì)損壞而數(shù)據(jù)丟失的最佳方法。為了保證數(shù)據(jù)庫的這種恢復(fù)能力,所有的批數(shù)據(jù)操作比如SELECT INGO、創(chuàng)建索引都被寫入日志文件。選擇完全恢復(fù)模式時常使用的備份策略是:
批日志恢復(fù)在性能上要優(yōu)于簡單恢復(fù)和完全恢復(fù)模式,它能盡最大努力減少批操作所需要的存儲空間。這些批操作主要是:SELECT INTO 批裝載操作(如bcp 操作或批插入操作)、創(chuàng)建索引針對大文本或圖像的操作(如WRITETEXT、 UPDATETEXT)。選擇批日志恢復(fù)模式所采用的備份策略與完全恢復(fù)所采用的恢復(fù)策略基本相同。 從以上的論述中我們可以看到,在實際應(yīng)用中,備份策略和恢復(fù)策略的選擇不是相互孤立的,而是有著緊密的聯(lián)系。我們并不僅僅是因為數(shù)據(jù)庫備份為數(shù)據(jù)庫恢復(fù)提供了 “原材料”這一事實,以便在采用何種數(shù)據(jù)庫恢復(fù)模式的決策中考慮該怎樣進(jìn)行數(shù)據(jù)庫備份,更多是因為在選擇該使用哪種備份類型時我們必須考慮到當(dāng)使用該備份進(jìn)行數(shù)據(jù)庫恢復(fù)時,它能把遭到損壞的數(shù)據(jù)庫“帶”到怎樣的狀態(tài)(是數(shù)據(jù)庫失敗的時刻,還是最近一次備份的時刻)。但有一點我們必須強(qiáng)調(diào),即備份類型的選擇和恢復(fù)模式的確定都應(yīng)服從于這一目標(biāo):盡最大可能,以最快速度減少或消滅數(shù)據(jù)丟失。 |
|