版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫原理與應(yīng)用教程
―SQLServer第13章數(shù)據(jù)庫備份和還原避免數(shù)據(jù)丟失是數(shù)據(jù)庫管理員需要面對(duì)的最關(guān)鍵的問題之一。盡管在SQLServer2008中采取了許多措施來保證數(shù)據(jù)庫的安全性和完整性,但故障仍不可避免,仍會(huì)影響甚至破壞數(shù)據(jù)庫,造成數(shù)據(jù)丟失。同時(shí)還存在其他一些可能造成數(shù)據(jù)丟失的因素,例如用戶的操作失誤、蓄意破壞、病毒攻擊和自然界不可抗力等。因此,SQLServer2008指定了一個(gè)良好的備份還原策略,定期將數(shù)據(jù)庫進(jìn)行備份以保護(hù)數(shù)據(jù)庫,以便在事故發(fā)生后還原數(shù)據(jù)庫。13.1數(shù)據(jù)庫備份概述對(duì)于計(jì)算機(jī)用戶來說,對(duì)一些重要文件、資料定期進(jìn)行備份是一種良好的習(xí)慣。如果出現(xiàn)突發(fā)情況,比如系統(tǒng)崩潰、系統(tǒng)遭受病毒攻擊等,使得原先的文件遭到破壞以至于全部丟失,啟用文件備份,就可以節(jié)省大量的時(shí)間和精力。數(shù)據(jù)庫備份就是在某種介質(zhì)上(磁盤、磁帶等)創(chuàng)建完整數(shù)據(jù)庫(或者其中一部分)的副本,并將所有的數(shù)據(jù)項(xiàng)都復(fù)制到備份集,以便在數(shù)據(jù)庫遭到破壞時(shí)能夠恢復(fù)數(shù)據(jù)庫。對(duì)SQLServer2008數(shù)據(jù)庫或事務(wù)日志進(jìn)行備份,就是記錄在進(jìn)行備份這一操作時(shí)數(shù)據(jù)庫中所有數(shù)據(jù)的狀態(tài),以便在數(shù)據(jù)庫遭到破壞時(shí)能夠及時(shí)地將其還原。執(zhí)行備份操作必須擁有對(duì)數(shù)據(jù)庫備份的權(quán)限許可,SQLServer2008只允許系統(tǒng)管理員、數(shù)據(jù)庫所有者和數(shù)據(jù)庫備份執(zhí)行者備份數(shù)據(jù)庫。SQLServer2008提供了高性能的備份和還原功能以及保護(hù)手段,以保護(hù)存儲(chǔ)在SQLServer2008數(shù)據(jù)庫中的關(guān)鍵數(shù)據(jù)。通過適當(dāng)?shù)膫浞?,可以使用戶能夠在發(fā)生多種可能的故障后恢復(fù)數(shù)據(jù),這些故障主要包括:系統(tǒng)故障;用戶錯(cuò)誤:例如,誤刪除了某個(gè)表或某些數(shù)據(jù);硬件故障:例如,磁盤驅(qū)動(dòng)器損壞;自然災(zāi)害。13.1.1數(shù)據(jù)庫備份計(jì)劃創(chuàng)建備份的目的是為了可以恢復(fù)已損壞的數(shù)據(jù)庫。但是,備份和還原數(shù)據(jù)需要在特定的環(huán)境中進(jìn)行,并且必須使用一定的資源。因此,在備份數(shù)據(jù)庫之前,需要對(duì)備份內(nèi)容、備份頻率以及數(shù)據(jù)備份存儲(chǔ)介質(zhì)等進(jìn)行計(jì)劃。1.備份內(nèi)容備份內(nèi)容主要包括:系統(tǒng)數(shù)據(jù)庫、用戶數(shù)據(jù)庫和事務(wù)日志。(1)系統(tǒng)數(shù)據(jù)庫記錄了SQLServer系統(tǒng)配置參數(shù)、用戶資料以及所有用戶數(shù)據(jù)庫等重要信息,主要包括master、msdb和model數(shù)據(jù)庫。(2)用戶數(shù)據(jù)庫中存儲(chǔ)了用戶的數(shù)據(jù)。由于用戶數(shù)據(jù)庫具有很強(qiáng)的區(qū)別性,即每個(gè)用戶數(shù)據(jù)庫之間的數(shù)據(jù)一般都有很大差異,所以對(duì)用戶數(shù)據(jù)庫的備份更為重要。(3)事務(wù)日志記錄了用戶對(duì)數(shù)據(jù)庫中數(shù)據(jù)的各種操作,平時(shí)系統(tǒng)會(huì)自動(dòng)管理和維護(hù)所有的數(shù)據(jù)庫事務(wù)日志。相比數(shù)據(jù)庫備份,事務(wù)日志備份所需要的時(shí)間較少,但是還原需要的時(shí)間較多。2.備份頻率數(shù)據(jù)庫備份頻率一般取決于修改數(shù)據(jù)庫的頻繁程度,以及一旦出現(xiàn)意外丟失的工作量的大小,還有發(fā)生意外丟失數(shù)據(jù)的可能性大小。一般來說,在正常使用階段,對(duì)系統(tǒng)數(shù)據(jù)庫的修改不會(huì)十分頻繁,所以對(duì)系統(tǒng)數(shù)據(jù)庫的備份也不需要十分頻繁,只需要在執(zhí)行某些語句或存儲(chǔ)過程導(dǎo)致SQLServer2008對(duì)系統(tǒng)數(shù)據(jù)庫進(jìn)行了修改的時(shí)候備份。當(dāng)在用戶數(shù)據(jù)庫中執(zhí)行了加入數(shù)據(jù)、創(chuàng)建索引等操作時(shí),應(yīng)該對(duì)用戶數(shù)據(jù)庫進(jìn)行備份,此外,如果清除了事務(wù)日志,也應(yīng)該備份數(shù)據(jù)庫。3.備份存儲(chǔ)介質(zhì)常用的備份存儲(chǔ)介質(zhì)包括硬盤、磁帶和命令管道等。具體使用哪一種介質(zhì),要考慮用戶的成本承受能力、數(shù)據(jù)的重要程度、用戶的現(xiàn)有資源等因素。在備份中使用的介質(zhì)確定以后,一定要保持介質(zhì)的持續(xù)性,一般不要輕易地改變。4.其它計(jì)劃(1)確定備份工作的負(fù)責(zé)人。備份負(fù)責(zé)人負(fù)責(zé)備份的日常執(zhí)行工作,并且要經(jīng)常進(jìn)行檢查和督促。這樣,可以明確責(zé)任,確保備份工作得到人力保障。(2)確定使用在線備份還是脫機(jī)備份。在線備份就是動(dòng)態(tài)備份,允許用戶繼續(xù)使用數(shù)據(jù)庫。脫機(jī)備份就是在備份時(shí),不允許用戶使用數(shù)據(jù)庫。雖然備份是動(dòng)態(tài)的,但是用戶的操作會(huì)影響數(shù)據(jù)庫備份的速度。(3)確定是否使用備份服務(wù)器。在備份時(shí),如果有條件最好使用備份服務(wù)器,這樣可以在系統(tǒng)出現(xiàn)故障,迅速還原系統(tǒng)的正常工作。當(dāng)然,使用備份服務(wù)器會(huì)增大備份的成本。(4)確定備份存儲(chǔ)的地方。備份是非常重要的內(nèi)容,一定要保存在安全的地方。在保存?zhèn)浞輹r(shí)應(yīng)該實(shí)行異地存放,并且每套備份的內(nèi)容應(yīng)該有兩份以上的備份。(5)確定備份存儲(chǔ)的期限。對(duì)于一般性的業(yè)務(wù)數(shù)據(jù)可以確定一個(gè)比較短的期限,但是對(duì)于重要的業(yè)務(wù)數(shù)據(jù),需要確定一個(gè)比較長(zhǎng)的期限。期限愈長(zhǎng),需要的備份介質(zhì)就愈多,備份成本也隨之增大??傊?,備份應(yīng)該按照需要經(jīng)常進(jìn)行,并進(jìn)行有效的數(shù)據(jù)管理。SQLServer2008備份可以在數(shù)據(jù)庫使用時(shí)進(jìn)行,但是一般在非高峰活動(dòng)時(shí)備份效率更高。另外,備份是一種十分耗費(fèi)時(shí)間和資源的操作,不能頻繁操作。應(yīng)該根據(jù)數(shù)據(jù)庫的使用情況確定一個(gè)適當(dāng)?shù)膫浞葜芷凇?3.1.2數(shù)據(jù)庫備份的類型在SQLServer系統(tǒng)中,有4種備份類型,分別如下所示:①完整數(shù)據(jù)庫備份。②差異數(shù)據(jù)庫備份。③事務(wù)日志備份。④數(shù)據(jù)庫文件或文件組備份。1.完整數(shù)據(jù)庫備份完整數(shù)據(jù)庫備份將備份整個(gè)數(shù)據(jù)庫,包括事務(wù)日志部分(以便可以恢復(fù)整個(gè)備份)。完整數(shù)據(jù)庫備份代表備份完成時(shí)的數(shù)據(jù)庫,通過包括在備份中的事務(wù)日志,可以使用備份恢復(fù)到備份完成時(shí)的數(shù)據(jù)庫。創(chuàng)建完整數(shù)據(jù)庫備份是單一操作,通常會(huì)安排該操作定期發(fā)生。如果數(shù)據(jù)庫主要是只進(jìn)行讀操作,那么完整數(shù)據(jù)庫備份能有效地防止數(shù)據(jù)丟失。完整數(shù)據(jù)庫備份易于使用。因?yàn)橥暾麛?shù)據(jù)庫備份包含數(shù)據(jù)庫中的所有數(shù)據(jù),所以對(duì)于可以快速備份的小數(shù)據(jù)庫而言,最佳方法就是使用完整數(shù)據(jù)庫備份。但是,隨著數(shù)據(jù)庫的不斷增大,完整備份需花費(fèi)更多時(shí)間才能完成,并且需要更多的存儲(chǔ)空間。因此,對(duì)于大型數(shù)據(jù)庫而言,您可以用差異數(shù)據(jù)庫備份來補(bǔ)充完整數(shù)據(jù)庫備份。2.差異數(shù)據(jù)庫備份差異數(shù)據(jù)庫備份只備份自上一次完整數(shù)據(jù)庫備份發(fā)生改變的內(nèi)容和在差異數(shù)據(jù)庫備份過程中所發(fā)生的所有活動(dòng)。差異數(shù)據(jù)庫備份基于以前的完整數(shù)據(jù)庫備份,因此,這樣的完整數(shù)據(jù)庫備份稱為“基準(zhǔn)備份”。差異備份比完整備份更小、更快,可以簡(jiǎn)化頻繁的備份操作,減少數(shù)據(jù)丟失的風(fēng)險(xiǎn)。為了減少還原頻繁修改數(shù)據(jù)庫的時(shí)間,可以執(zhí)行差異備份。如果數(shù)據(jù)庫的某個(gè)子集比該數(shù)據(jù)庫的其余部分修改得更為頻繁,則差異數(shù)據(jù)庫備份特別有用。在這些情況下,使用差異數(shù)據(jù)庫備份,您可以頻繁執(zhí)行備份,并且不會(huì)產(chǎn)生完整數(shù)據(jù)庫備份的開銷。對(duì)于大型數(shù)據(jù)庫,完整數(shù)據(jù)庫備份需要大量磁盤空間。為了節(jié)省時(shí)間和磁盤空間,可以在一次完整數(shù)據(jù)庫備份后安排多次差異備份。每次連續(xù)的差異數(shù)據(jù)庫備份都大于前一次備份,這就需要更長(zhǎng)的備份時(shí)間、還原時(shí)間和更大的空間。因此,可以定期執(zhí)行新的完整備份以提供新的差異基準(zhǔn)。當(dāng)使用差異數(shù)據(jù)庫備份時(shí),最好遵循以下原則:在每次完整數(shù)據(jù)庫備份后,定期安排差異數(shù)據(jù)庫備份。例如,可以每四小時(shí)執(zhí)行一次差異數(shù)據(jù)庫備份,對(duì)于活動(dòng)性較高的系統(tǒng),此頻率也可以更高。在確保差異備份不會(huì)太大的情況下,定期安排新的完整數(shù)據(jù)庫備份。例如,可以每周備份一次完整數(shù)據(jù)庫。3.事務(wù)日志備份備份事務(wù)日志可以記錄數(shù)據(jù)庫的更改,但前提是在執(zhí)行了完整數(shù)據(jù)庫備份之后??梢允褂檬聞?wù)日志備份將數(shù)據(jù)庫恢復(fù)到特定的即時(shí)點(diǎn)(如輸入多余數(shù)據(jù)前的那一點(diǎn))或恢復(fù)到故障點(diǎn)。恢復(fù)事務(wù)日志備份時(shí),SQLServer2008重做事務(wù)日志中記錄的所有更改。當(dāng)SQLServer2008到達(dá)事務(wù)日志的最后時(shí),已重新創(chuàng)建了與開始執(zhí)行備份操作的那一刻完全相同的數(shù)據(jù)庫狀態(tài)。如果數(shù)據(jù)庫已經(jīng)恢復(fù),則SQLServer2008將回滾備份操作開始時(shí)尚未完成的所有事務(wù)。一般情況下,事務(wù)日志備份比數(shù)據(jù)庫備份使用的資源少,因此可以比數(shù)據(jù)庫備份更經(jīng)常地創(chuàng)建事務(wù)日志備份,經(jīng)常備份將減少丟失數(shù)據(jù)的危險(xiǎn)。圖13-1所示為基于完全恢復(fù)模型(詳見13.2節(jié))下的1個(gè)完全備份+N個(gè)連續(xù)的事務(wù)日志備份的策略。如果中間的日志備份02刪除或者損壞,則數(shù)據(jù)庫只能恢復(fù)到日志備份01的即時(shí)點(diǎn)。假如日志備份01、02和03都是完整的,那么在恢復(fù)時(shí),先恢復(fù)數(shù)據(jù)庫完全備份,然后依次恢復(fù)日志備份01、02和03。如果要恢復(fù)到故障點(diǎn),就需要看數(shù)據(jù)庫的當(dāng)前日志是否完整,如果是完整的,可以做一個(gè)當(dāng)前日志的備份,然后依次恢復(fù)日志備份04就可以了。圖13-1事務(wù)日志備份與恢復(fù)原理數(shù)據(jù)庫完全備份日志備份01日志備份02日志備份01當(dāng)前日志備份04故障點(diǎn)4.?dāng)?shù)據(jù)庫文件或文件組備份對(duì)超大型數(shù)據(jù)庫執(zhí)行完全數(shù)據(jù)庫備份是不可行的,可以執(zhí)行數(shù)據(jù)庫文件或文件組備份。備份文件或文件組時(shí),可以只備份FILE或FILEGROUP選項(xiàng)中指定的數(shù)據(jù)庫文件。在備份數(shù)據(jù)庫文件或文件組時(shí)應(yīng)考慮以下幾點(diǎn)。①必須指定邏輯文件或文件組。②必須執(zhí)行事務(wù)日志備份,使還原的文件與數(shù)據(jù)庫的其他部分相一致。③最多可以指定16個(gè)文件或文件組。④應(yīng)制定輪流備份每個(gè)文件的計(jì)劃。13.2數(shù)據(jù)庫還原概述備份是還原數(shù)據(jù)庫最容易和最能防止意外的有效方法。沒有備份,所有的數(shù)據(jù)都可能會(huì)丟失,而且將造成不可挽回的損失,這時(shí)就不得不從源頭重建數(shù)據(jù);有了備份,萬一數(shù)據(jù)庫被損壞,就可以使用備份來還原數(shù)據(jù)庫。13.2.1數(shù)據(jù)庫還原策略還原數(shù)據(jù)庫是一個(gè)裝載數(shù)據(jù)庫的備份,然后應(yīng)用事務(wù)日志重建的過程,這是數(shù)據(jù)庫管理員另一項(xiàng)非常重要的工作。應(yīng)用事務(wù)日志之后,數(shù)據(jù)庫就會(huì)回到最后一次事務(wù)日志備份之前的狀況。在數(shù)據(jù)庫備份之前,應(yīng)該檢查數(shù)據(jù)庫中數(shù)據(jù)的一致性,這樣才能保證順利地還原數(shù)據(jù)庫備份。在數(shù)據(jù)庫的還原過程中,用戶不能進(jìn)入數(shù)據(jù)庫,當(dāng)數(shù)據(jù)庫被還原后,數(shù)據(jù)庫中的所有數(shù)據(jù)都被替換掉。數(shù)據(jù)庫備份是在正常情況下進(jìn)行的,而數(shù)據(jù)庫還原是在諸如硬件故障、軟件故障或誤操作等非正常的狀態(tài)下進(jìn)行的,因而其工作更加重要和復(fù)雜。數(shù)據(jù)還原策略認(rèn)為所有的數(shù)據(jù)庫一定會(huì)在它們的生命周期的某一時(shí)刻需要還原。數(shù)據(jù)庫管理員職責(zé)中很重要的部分就是將數(shù)據(jù)還原的頻率降到最低,并在數(shù)據(jù)庫遭到破壞之前進(jìn)行監(jiān)視,預(yù)計(jì)各種形式的潛在風(fēng)險(xiǎn)所能造成的破壞,并針對(duì)具體情況制定恢復(fù)計(jì)劃,在破壞發(fā)生時(shí)及時(shí)地恢復(fù)數(shù)據(jù)庫。還原方案從一個(gè)或多個(gè)備份中還原數(shù)據(jù),并在還原最后一個(gè)備份后恢復(fù)數(shù)據(jù)庫。如果數(shù)據(jù)庫做過完全備份和事務(wù)日志備份,那么還原它是很容易的,倘若保持著連續(xù)的事務(wù)日志,就能快速地重新構(gòu)造和建立數(shù)據(jù)庫。還原數(shù)據(jù)庫是一個(gè)裝載最近備份的數(shù)據(jù)庫和應(yīng)用事務(wù)日志來重建數(shù)據(jù)庫到失效點(diǎn)的過程。定點(diǎn)還原可以把數(shù)據(jù)庫還原到一個(gè)固定的時(shí)間點(diǎn),這種選項(xiàng)僅適用于事務(wù)日志備份。當(dāng)還原事務(wù)日志備份時(shí),必須按照它們建造的順序還原。在還原一個(gè)失效的數(shù)據(jù)庫之前,調(diào)查失效背后的原因是很重要的。如果數(shù)據(jù)庫的損壞是由介質(zhì)錯(cuò)誤引起的,那么就需要替換失敗的介質(zhì)。倘若是由于用戶的問題而引起的,那么就需要針對(duì)發(fā)生的問題和今后如何避免采取相應(yīng)的對(duì)策。如果是由系統(tǒng)故障或自然災(zāi)害引起的,那么就只能具體問題具體分析,根據(jù)損害的程度采取相應(yīng)的對(duì)策。比如死機(jī),只需重新啟動(dòng)操作系統(tǒng)和SQLServer服務(wù)器,重做沒有提交的事務(wù);如果數(shù)據(jù)庫損壞,可以通過備份還原;而如果介質(zhì)損壞,只能替換;等等。13.2.2數(shù)據(jù)庫恢復(fù)模式數(shù)據(jù)庫的恢復(fù)模式是數(shù)據(jù)庫遭到破壞時(shí)還原數(shù)據(jù)庫中數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)方式,它與可用性、性能、磁盤空間等因素相關(guān)。備份和還原操作是在“恢復(fù)模式”下進(jìn)行的,恢復(fù)模式是一個(gè)數(shù)據(jù)庫屬性,它用于控制數(shù)據(jù)庫備份和還原操作基本行為。每一種恢復(fù)模式都按照不同的方式維護(hù)數(shù)據(jù)庫中的數(shù)據(jù)和日志。MicrosoftSQLServer2008系統(tǒng)提供了3種數(shù)據(jù)庫的恢復(fù)模式:①完整恢復(fù)模式。②簡(jiǎn)單恢復(fù)模式。③大容量日志恢復(fù)模式。1.完整恢復(fù)模式完整恢復(fù)模式是等級(jí)最高的數(shù)據(jù)庫恢復(fù)模式。在完整恢復(fù)模式中,對(duì)數(shù)據(jù)庫的所有的操作都記錄在數(shù)據(jù)庫的事務(wù)日志中。即使那些大容量數(shù)據(jù)操作和創(chuàng)建索引的操作,也都記錄在了數(shù)據(jù)庫的事務(wù)日志中。當(dāng)數(shù)據(jù)庫遭到破壞之后,可以使用該數(shù)據(jù)庫的事務(wù)日志迅速還原數(shù)據(jù)庫。在完整恢復(fù)模式中,由于事務(wù)日志記錄了數(shù)據(jù)庫的所有變化,所以可以使用事務(wù)日志將數(shù)據(jù)庫還原到任意的時(shí)刻點(diǎn)。但是,這種恢復(fù)模式耗費(fèi)大量的磁盤空間。除非是那種事務(wù)日志非常重要的數(shù)據(jù)庫備份策略,一般不使用這種恢復(fù)模式。這種恢復(fù)模式的特點(diǎn)是:①許將數(shù)據(jù)庫還原到故障點(diǎn)狀態(tài)。②數(shù)據(jù)庫可以進(jìn)行四種備份方式中的任何一種。③可以還原到即時(shí)點(diǎn)。這種模式的優(yōu)點(diǎn)是數(shù)據(jù)丟失或損壞不導(dǎo)致工作損失,可還原到即時(shí)點(diǎn)。但所有修改都記錄在日志中,發(fā)生某些大容量操作時(shí)日志文件增長(zhǎng)太快。如果系統(tǒng)符合下列任何要求,則使用完整恢復(fù)模式:①用戶必須能夠恢復(fù)所有數(shù)據(jù)。②數(shù)據(jù)庫包含多個(gè)文件組,并且希望逐段還原讀寫輔助文件組(以及只讀文件組)。③必須能夠恢復(fù)到故障點(diǎn)。2.簡(jiǎn)單恢復(fù)模式簡(jiǎn)單恢復(fù)模式簡(jiǎn)略地記錄大多數(shù)事務(wù),所記錄的信息只是為了確保在系統(tǒng)崩潰或還原數(shù)據(jù)備份之后數(shù)據(jù)庫的一致性。對(duì)于那些規(guī)模比較小的數(shù)據(jù)庫或數(shù)據(jù)不經(jīng)常改變的數(shù)據(jù)庫來說,可以使用簡(jiǎn)單恢復(fù)模式。當(dāng)使用簡(jiǎn)單恢復(fù)模式時(shí),可以通過執(zhí)行完全數(shù)據(jù)庫備份和差異數(shù)據(jù)庫備份來還原數(shù)據(jù)庫,數(shù)據(jù)庫只能還原到執(zhí)行備份操作的時(shí)刻點(diǎn)。執(zhí)行備份操作之后的所有數(shù)據(jù)修改都丟失并且需要重建。這種恢復(fù)模式的特點(diǎn)是:①允許將數(shù)據(jù)庫還原到最新的備份。②數(shù)據(jù)庫只能進(jìn)行完全數(shù)據(jù)庫備份和差異備份,不能進(jìn)行事務(wù)日志備份以及文件和文件組備份。③不能還原到某個(gè)即時(shí)點(diǎn)。這種模式的優(yōu)點(diǎn)是所有操作使用最少的日志空間記錄,節(jié)省空間,恢復(fù)模式最簡(jiǎn)單。如果系統(tǒng)符合下列所有要求,則使用簡(jiǎn)單恢復(fù)模式:①丟失日志中的一些數(shù)據(jù)無關(guān)緊要。②無論何時(shí)還原主文件組,用戶都希望始終還原讀寫輔助文件組(如果有)。③是否備份事務(wù)日志無所謂,只需要完整差異備份。④不在乎無法恢復(fù)到故障點(diǎn)以及丟失從上次備份到發(fā)生故障時(shí)之間的任何更新。3.大容量日志恢復(fù)模式就像完整恢復(fù)模式一樣,大容量日志恢復(fù)模式也使用數(shù)據(jù)庫備份和日志備份來還原數(shù)據(jù)庫。但是,在使用了大容量日志恢復(fù)模式的數(shù)據(jù)庫中,其事務(wù)日志耗費(fèi)的磁盤空間遠(yuǎn)遠(yuǎn)小于使用完整恢復(fù)模式的數(shù)據(jù)庫的事務(wù)日志。此模式簡(jiǎn)略地記錄大多數(shù)大容量操作(例如,索引創(chuàng)建和大容量加載),完整地記錄其他事務(wù)。大容量日志恢復(fù)提高大容量操作的性能,常用作完整恢復(fù)模式的補(bǔ)充。這種恢復(fù)模式的特點(diǎn)是:①還原允許大容量日志記錄的操作。②數(shù)據(jù)庫可以進(jìn)行四種備份方式中的任何一種。③不能還原到某個(gè)即時(shí)點(diǎn)。這種模式的優(yōu)點(diǎn)是對(duì)大容量操作使用最少的日志記錄,節(jié)省日志空間;缺點(diǎn)是喪失了恢復(fù)到即時(shí)點(diǎn)的功能,如非特別需要,否則不建議使用此模式。在MicrosoftSQLServer2008系統(tǒng)中有兩種設(shè)置數(shù)據(jù)庫恢復(fù)模式的方式,即SQLServerManagementStudio和ALTERDATABASE語句。這里主要介紹前一種方法:在SQLServerManagementStudio環(huán)境下,選中將要設(shè)置恢復(fù)模式的數(shù)據(jù)庫,右擊數(shù)據(jù)庫,從彈出的快捷菜單中選中“屬性”命令,將出現(xiàn)“數(shù)據(jù)庫屬性”對(duì)話框。在該對(duì)話框的“選項(xiàng)”頁中,可以從“恢復(fù)模式”下拉列表中選擇恢復(fù)模式,圖中所示橢圓形區(qū)域內(nèi)指定了“教學(xué)庫”的恢復(fù)模式,即完整恢復(fù)模式。簡(jiǎn)單恢復(fù)模式同時(shí)支持?jǐn)?shù)據(jù)庫備份和文件備份,但不支持事務(wù)日志備份。備份非常易于管理,因?yàn)槭冀K不會(huì)備份事務(wù)日志。但是,如果沒有日志備份,數(shù)據(jù)庫只能還原到最近數(shù)據(jù)備份的末尾。如果操作失敗,則在最近數(shù)據(jù)備份之后所做的更新便會(huì)全部丟失。在完整恢復(fù)模式和大容量日志恢復(fù)模式下,差異數(shù)據(jù)庫備份將最大限度地減少在還原數(shù)據(jù)庫時(shí)回滾事務(wù)日志備份所需的時(shí)間。事務(wù)日志備份只能與完整恢復(fù)模型和大容量日志記錄恢復(fù)模型一起使用。在簡(jiǎn)單模型下,事務(wù)日志有可能被破壞,所以事務(wù)日志備份可能不連續(xù),不連續(xù)的事務(wù)日志備份沒有意義,因?yàn)榛谌罩镜幕謴?fù)要求日志是連續(xù)的。13.3數(shù)據(jù)庫備份操作在MicrosoftSQLServer2008中,數(shù)據(jù)庫備份操作有兩種方式:在SQLServerManagementStudio中使用界面?zhèn)浞輸?shù)據(jù)庫和使用T-SQL語句備份數(shù)據(jù)庫。1.在SQLServerManagementStudio中使用界面?zhèn)浞輸?shù)據(jù)庫【例13-1】在SQLServerManagementStudio的對(duì)象資源管理器中創(chuàng)建“教學(xué)庫”的完整數(shù)據(jù)庫備份,操作步驟如下:(1)在對(duì)象資源管理器中展開“教學(xué)庫”數(shù)據(jù)庫。(2)鼠標(biāo)右擊“教學(xué)庫”,在彈出的快捷菜單中選擇“任務(wù)”子菜單,然后選擇“備份”命令,彈出“備份數(shù)據(jù)庫-教學(xué)庫”窗口。(3)在“數(shù)據(jù)庫”下拉列表框中選擇“教學(xué)庫”作為準(zhǔn)備備份的數(shù)據(jù)庫。在“備份類型”下拉列表框中,選擇需要的類型,這是第一次備份,選擇“完整”選項(xiàng),在“名稱”文本框中輸入要備份的名稱。(4)由于沒有磁帶設(shè)備,所以只能備份到“磁盤”。單擊“添加”按鈕,重新選擇路徑和命名文件名,最后單擊“確定”按鈕。(5)單擊窗口左邊的“選項(xiàng)”選項(xiàng),左上角橢圓形區(qū)域。對(duì)“備份到現(xiàn)有媒體集”選項(xiàng)進(jìn)行設(shè)置,此選項(xiàng)的含義是備份媒體的現(xiàn)有內(nèi)容被新備份重寫。在“備份到現(xiàn)有媒體集”選項(xiàng)中含有兩個(gè)選項(xiàng):“追加到現(xiàn)有備份集”和“覆蓋所有現(xiàn)有備份集”。其中“追加到現(xiàn)有備份集”是媒體上以前的內(nèi)容保持不變,新的備份在媒體上次備份的結(jié)尾處寫入?!案采w所有現(xiàn)有備份集”是重寫備份設(shè)備中任何現(xiàn)有的備份。此處選中“追加到現(xiàn)有備份集”單選按鈕,單擊“確定”按鈕,數(shù)據(jù)備份完成.2.使用T-SQL語句備份數(shù)據(jù)庫使用T-SQL語句備份數(shù)據(jù)庫的基本語法格式如下:BACKUPDATABASE{database_name|@database_name_var
}TO<backup_device>[,...n][WITH
[BLOCKSIZE={blocksize|@blocksize_variable}]
[[,]DESCRIPTION={'text'|@text_variable}]
[[,]DIFFERENTIAL]
[[,]EXPIREDATE={date|@date_var}]
[[,]PASSWORD={password|@password_variable}]
[[,]FORMAT|NOFORMAT]
[[,]{INIT|NOINIT}]]注意:如果要備份特定的文件或文件組在BACKUPDATABASE語句中加入
<file_or_filegroup>[,…n
]參數(shù)即可;如果要進(jìn)行事務(wù)日志備份則使用BACKUPLOG。詳細(xì)內(nèi)容請(qǐng)參考MicrosoftSQLServer2008的聯(lián)機(jī)幫助。【例13-2】將整個(gè)教學(xué)庫完整備份到磁盤上,并創(chuàng)建一個(gè)新的媒體集。BACKUPDATABASE教學(xué)庫TODISK='E:\BACKUP\教學(xué)庫.Bak'WITHFORMAT,NAME='教學(xué)庫的完整備份'在“教學(xué)庫”中,創(chuàng)建一個(gè)任意的新表,表名“Table”?!纠?3-3】創(chuàng)建教學(xué)庫的差異數(shù)據(jù)庫備份。BACKUPDATABASE教學(xué)庫TODISK='E:\BACKUP\教學(xué)庫差異備份.Bak'WITHDIFFERENTIAL13.4數(shù)據(jù)庫還原操作SQLServer提供了數(shù)據(jù)庫的兩種還原過程:自動(dòng)還原過程和手動(dòng)還原過程。13.4.1自動(dòng)還原自動(dòng)還原是指SQLServer數(shù)據(jù)庫在每次出現(xiàn)錯(cuò)誤或關(guān)機(jī)重啟之后SQLServer都會(huì)自動(dòng)運(yùn)行帶有容錯(cuò)功能的特性。SQLServer用事務(wù)日志來完成這項(xiàng)任務(wù),它讀取每個(gè)數(shù)據(jù)庫事務(wù)日志的活動(dòng)部分,標(biāo)識(shí)所有已經(jīng)提交的事務(wù),把它們重新應(yīng)用于數(shù)據(jù)庫,然后標(biāo)識(shí)所有未提交的事務(wù)并回滾,這樣保證刪除所有未完全寫入數(shù)據(jù)庫的未提交事務(wù)。這個(gè)過程保證了每個(gè)數(shù)據(jù)庫邏輯上的一致性。13.4.2手動(dòng)還原手動(dòng)還原數(shù)據(jù)庫需要指定數(shù)據(jù)庫還原工作的應(yīng)用程序和接下來的按照創(chuàng)建順序排列的事務(wù)日志的應(yīng)用程序。完成這些之后,數(shù)據(jù)庫就會(huì)處于和事務(wù)日志最后一次備份時(shí)一致的狀態(tài)。如果使用完全數(shù)據(jù)庫備份來還原,SQLServer重新創(chuàng)建這些數(shù)據(jù)庫文件和所有的數(shù)據(jù)庫對(duì)象;如果使用差異數(shù)據(jù)庫備份來還原,則可以還原最近的差異數(shù)據(jù)庫備份。在MicrosoftSQLServer2008中,數(shù)據(jù)庫還原操作有兩種方式:在SQLServerManagementStudio中使用界面和使用T-SQL語句還原數(shù)據(jù)庫。1.在SQLServerManagementStudio中使用界面還原數(shù)據(jù)庫【例13-4】在SQLServerManagementStudio的對(duì)象資源管理器中利用“教學(xué)庫”的完整數(shù)據(jù)庫備份還原“教學(xué)庫”,操作步驟如下:(1)在對(duì)象資源管理器中展開“教學(xué)庫”數(shù)據(jù)庫。(2)鼠標(biāo)右擊“教學(xué)庫”,在彈出的快捷菜單中選擇“任務(wù)”子菜單,然后選擇“還原”-“數(shù)據(jù)庫”命令,彈出“還原數(shù)據(jù)庫-教學(xué)庫”窗口。(3)選擇要還原的目標(biāo)數(shù)據(jù)庫為“教學(xué)庫”,選擇用于還原的備份集為“教學(xué)庫的完整備份”。選擇左邊的“選項(xiàng)”選項(xiàng)。在“還原選項(xiàng)”中選擇“覆蓋現(xiàn)有數(shù)據(jù)庫”復(fù)選框;在“將數(shù)據(jù)庫文件還原為”中查看或修改“原始文件名”和“還原為”中的文件名,此處都為“教學(xué)庫”的相應(yīng)文件;在“恢復(fù)狀態(tài)”選項(xiàng)區(qū)域中,選擇需要的選項(xiàng),此處為默認(rèn)的第一項(xiàng)。(4)單擊“確定”按鈕,數(shù)據(jù)庫還原操作完成。打開“教學(xué)庫”,可以看到其中的數(shù)據(jù)進(jìn)行了還原??床坏狡渲械摹癟able”表,因?yàn)橹贿M(jìn)行了完整數(shù)據(jù)庫備份的還原?!纠?3-5】在對(duì)象資源管理器中利用教學(xué)庫的差異數(shù)據(jù)庫備份還原教學(xué)庫,操作步驟和還原完整數(shù)據(jù)庫備份基本相同。在“還原數(shù)據(jù)庫-教學(xué)庫”窗口,選擇用于還原的備份集為“教學(xué)庫的差異備份”,“數(shù)據(jù)庫完整備份”會(huì)自動(dòng)被選中,因?yàn)樵谶€原差異備份之前,必須先還原其基準(zhǔn)備份。還原操作完成后,打開“教學(xué)庫”,可以看到完整備份時(shí)的數(shù)據(jù),也可以看到其中的“Table”表,因?yàn)檫€原了完整數(shù)據(jù)庫備份后的差異數(shù)據(jù)庫備份。2.使用T-SQL語句還原數(shù)據(jù)庫RESTOREDATABASE{database_name|@database_name_var}[FROM<backup_device>[,...n]][WITH[[,]FILE={backup_set_file_number|@backup_set_file_number}][[,]KEEP_REPLICATION][[,]MEDIANAME={media_name|@media_name_variable}][[,]MEDIAPASSWORD={mediapassword|@mediapassword_variable}][[,]MOVE'logical_file_name_in_backup'TO'operating_system_file_name']
[,...n][[,]PASSWORD={password|@password_variable}][[,]{RECOVERY|NORECOVERY|STANDBY={standby_file_name|@standby_file_name_var}}][[,]REPLACE]]【例13-6】將“教學(xué)庫”數(shù)據(jù)庫的完整數(shù)據(jù)庫備份進(jìn)行還原。RESTOREDATABASE教學(xué)庫FROMDISK='E\BACKUP\教學(xué)庫.Bak'WITHREPLACE,NORECOVERY【例13-7】將“教學(xué)庫”數(shù)據(jù)庫的差異數(shù)據(jù)庫備份進(jìn)行還原。RESTOREDATABASE教學(xué)庫FROMDISK='E:\BACKUP\教學(xué)庫差異備份.Bak'WITHRECOVERY13.5數(shù)據(jù)庫分離與附加SQLServer2008允許分離數(shù)據(jù)庫的數(shù)據(jù)和事務(wù)日志文件,然后將其重新附加到同一臺(tái)或另一臺(tái)服務(wù)器上。分離數(shù)據(jù)庫將從SQLServer刪除數(shù)據(jù)庫,但是保證在組成該數(shù)據(jù)庫的數(shù)據(jù)和事務(wù)日志文件中的數(shù)據(jù)庫完好無損。然后這些數(shù)據(jù)和事務(wù)日志文件可以用來將數(shù)據(jù)庫附加到任何SQLServer實(shí)例上,這使數(shù)據(jù)庫的使用狀態(tài)與它分離時(shí)的狀態(tài)完全相同。例如,如果您數(shù)據(jù)庫系統(tǒng)安裝在系統(tǒng)盤(比如C盤),由于C盤容易受病毒侵害,您也許希望您的數(shù)據(jù)存放在非系統(tǒng)盤(比如D盤),要做到這點(diǎn)很簡(jiǎn)單,您并不需要重裝數(shù)據(jù)庫,只要把數(shù)據(jù)庫“分離”,然后將相關(guān)文件移動(dòng)到D盤的某個(gè)目錄,接著“附加”數(shù)據(jù)庫即可。13.5.1分離數(shù)據(jù)庫在MicrosoftSQLServer2008中,數(shù)據(jù)庫分離操作有兩種方式:在SQLServerManagementStudio中使用界面和使用T-SQL語句分離數(shù)據(jù)庫。1.在SQLServerManagementStudio中使用界面分離數(shù)據(jù)庫操作步驟如下:(1)在對(duì)象資源管理器中展開要分離的數(shù)據(jù)庫。(2)鼠標(biāo)右擊數(shù)據(jù)庫名稱,在彈出的快捷菜單中選擇“任務(wù)”子菜單,然后選擇“分離”命令(3)彈出“分離數(shù)據(jù)庫”對(duì)話框。單擊“確定”按鈕即可完成數(shù)據(jù)庫的分離。再打開對(duì)象資源管理器,被分離的數(shù)據(jù)庫就不存在了。但是,在存儲(chǔ)此數(shù)據(jù)庫的物理位置(即某磁盤目錄下),其數(shù)據(jù)文件和日志文件仍然存在,可以任意拷貝。注意,只有“使用本數(shù)據(jù)庫的連接”數(shù)為0時(shí),該數(shù)據(jù)庫才能分離。所以分離數(shù)據(jù)庫時(shí)盡量斷開所有對(duì)要分離數(shù)據(jù)庫操作的連接,如果還有連接數(shù)據(jù)庫的程序,會(huì)出現(xiàn)分離數(shù)據(jù)庫失敗對(duì)話框。可以選中“刪除連接”復(fù)選框從服務(wù)器強(qiáng)制斷開現(xiàn)有的連接。2.使用T-SQL語句分離數(shù)據(jù)庫可以使用系統(tǒng)存儲(chǔ)過程sp_detach_db分離該數(shù)據(jù)庫。sp_detach_db存儲(chǔ)過程從服務(wù)器分離數(shù)據(jù)庫,并可以選擇在分離前在所有的表上運(yùn)行UPDATESTATISTICS。其語法格式如下:sp_detach_db[@dbname=]'dbname'[,[@skipchecks=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于2025年度區(qū)塊鏈技術(shù)應(yīng)用合作協(xié)議3篇
- 2025年度汽車租賃市場(chǎng)拓展合作協(xié)議合同4篇
- 2025年度二零二五年度獼猴桃包裝設(shè)計(jì)及品牌推廣合同4篇
- 二零二五版建筑工程安全施工許可證申請(qǐng)合同3篇
- 2025版信托資金借貸合同爭(zhēng)議解決爭(zhēng)議管轄條款3篇
- 2025年度健康管理機(jī)構(gòu)臨時(shí)健康管理師勞動(dòng)合同4篇
- 二零二五年度海上旅游船租賃服務(wù)合同范本3篇
- 個(gè)人住宅買賣法律合同(2024年修訂)版B版
- 2025年度戶外運(yùn)動(dòng)用品門店承包管理服務(wù)協(xié)議4篇
- 二零二五年柑桔加工副產(chǎn)品回收利用合同2篇
- 道路瀝青工程施工方案
- 《田口方法的導(dǎo)入》課件
- 內(nèi)陸?zhàn)B殖與水產(chǎn)品市場(chǎng)營銷策略考核試卷
- 票據(jù)業(yè)務(wù)居間合同模板
- 承包鋼板水泥庫合同范本(2篇)
- DLT 572-2021 電力變壓器運(yùn)行規(guī)程
- 公司沒繳社保勞動(dòng)仲裁申請(qǐng)書
- 損傷力學(xué)與斷裂分析
- 2024年縣鄉(xiāng)教師選調(diào)進(jìn)城考試《教育學(xué)》題庫及完整答案(考點(diǎn)梳理)
- 車借給別人免責(zé)協(xié)議書
- 應(yīng)急預(yù)案評(píng)分標(biāo)準(zhǔn)表
評(píng)論
0/150
提交評(píng)論