閔祖國
(1.長江大學(xué),湖北 荊州434020;2.武漢職業(yè)技術(shù)學(xué)院 輕工學(xué)院,湖北 武漢430074)
在企業(yè)的后臺數(shù)據(jù)庫中存儲了大量重要的數(shù)據(jù)信息,但是由于計算機系統(tǒng)中存在不可避免的硬件和軟件故障、病毒以及用戶的一些誤操作等,數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)存在被破壞或丟失的可能。為企業(yè)數(shù)據(jù)庫制定合理的備份方案,構(gòu)建可靠的備份體系,能夠使數(shù)據(jù)庫在遭受到破壞時,用戶能利用數(shù)據(jù)庫的備份文件將數(shù)據(jù)庫恢復(fù)到原來的正常狀態(tài)。因此,利用數(shù)據(jù)庫的備份和還原功能來對數(shù)據(jù)庫進行保護是一項非常重要的工作,本文對SQL Server 2005數(shù)據(jù)庫的備份類型和策略進行了分析和研究。
數(shù)據(jù)庫備份是指從數(shù)據(jù)庫或者其事務(wù)日志中將數(shù)據(jù)文件或日志記錄復(fù)制到備份設(shè)備,以創(chuàng)建數(shù)據(jù)備份或日志備份,用于在數(shù)據(jù)庫發(fā)生故障時對數(shù)據(jù)庫進行還原或恢復(fù)數(shù)據(jù)的數(shù)據(jù)副本。
備份整個數(shù)據(jù)庫的內(nèi)容,包括用戶表、視圖、索引、存儲過程、系統(tǒng)表、事務(wù)等所有數(shù)據(jù)庫對象,由于這種數(shù)據(jù)庫備份類型要對數(shù)據(jù)庫進行完全備份,因此備份所需要花費的時間較長,備份文件所占用的存儲空間也較大,對企業(yè)應(yīng)用系統(tǒng)的業(yè)務(wù)影響較大,但是其操作簡單,而且完整備份是還原數(shù)據(jù)庫的基礎(chǔ) ,在還原事務(wù)日志備份和差異備份時都依賴完整備份。
也稱為增量備份,只備份最近一次完整數(shù)據(jù)庫備份以后被修改的那部分?jǐn)?shù)據(jù),其備份的數(shù)據(jù)量較少,所占用的存儲空間少,備份需要的時間短,當(dāng)數(shù)據(jù)庫中的數(shù)據(jù)更新較頻繁的時候,應(yīng)該對其進行差異備份,而且提高差異備份的頻率可以將數(shù)據(jù)庫丟失數(shù)據(jù)的風(fēng)險較低,一般推薦每天做一次差異備份,同時必須保證在執(zhí)行差異備份之前,至少完成過一次完整備份。
對數(shù)據(jù)庫的事務(wù)日志文件的內(nèi)容進行備份,因為事務(wù)日志記錄的是自上一次數(shù)據(jù)庫備份之后用戶對數(shù)據(jù)庫所做的更新操作,所以事務(wù)日志備份需要的時間短、備份文件占用的空間少,而且之前必須至少有過一次完整備份。另外,利用事務(wù)日志文件對數(shù)據(jù)庫進行恢復(fù)時需要按照一定的順序重新執(zhí)行事務(wù)日志中記錄的所有更新操作,其恢復(fù)所需要的時間較長。對更新操作比較頻繁、備份操作的時間有限或者重要數(shù)據(jù),推薦每小時執(zhí)行一次事務(wù)日志備份,根據(jù)數(shù)據(jù)的重要程度調(diào)整備份頻率。
為了最大限度地減少數(shù)據(jù)庫中數(shù)據(jù)的損失和還原數(shù)據(jù)庫所需要的時間,在實際應(yīng)用中,一般會將數(shù)據(jù)庫的完整備份、差異備份、事務(wù)日志備份一起使用,比如每周的周三和周日進行數(shù)據(jù)庫的完整備份,每天的零點和12點進行差異備份,在相鄰的兩次差異備份之間每半個小時執(zhí)行一次事務(wù)日志備份,在對數(shù)據(jù)庫進行恢復(fù)時,首先還原最近一次的數(shù)據(jù)庫完整備份,然后還原最近一次的差異備份,接著按照順序依次還原自最近一次差異備份以來所以的事務(wù)日志備份文件。
對數(shù)據(jù)庫的文件或文件組進行備份,如果用戶數(shù)據(jù)庫非常龐大,數(shù)據(jù)庫的內(nèi)容被分散保存在多個文件或文件組中,或者對數(shù)據(jù)庫進行完整備份受到時間和存儲空間上的限制時,可以使用文件或文件組備份方式來備份數(shù)據(jù)庫中的部分文件或文件組,另外,如果被損毀的只是數(shù)據(jù)庫中的某個文件或文件組中的數(shù)據(jù),則只需要對被損毀的文件或者文件組備份進行還原即可。
數(shù)據(jù)庫在何時被破壞或者遭受到何種程度的破壞都是不可預(yù)知的,因此備份數(shù)據(jù)庫是一項非常重要的管理工作。備份數(shù)據(jù)必須要根據(jù)特定的應(yīng)用環(huán)境進行,在充分考慮特定業(yè)務(wù)要求的同時,盡可能地提高數(shù)據(jù)的可用性并最大限度地減少數(shù)據(jù)的丟失,因此在制定備份策略時需要重點考慮以下幾個方面的內(nèi)容。
數(shù)據(jù)庫中數(shù)據(jù)的重要程度決定了數(shù)據(jù)是否需要備份以及如何備份。QL Server 2005的系統(tǒng)數(shù)據(jù)庫master中記錄了用戶賬戶、系統(tǒng)配置等系統(tǒng)級信息,msdb中記錄了Agent服務(wù)的信息,model提供了數(shù)據(jù)庫的模版信息,這些系統(tǒng)數(shù)據(jù)庫需要完全備份,而tempdb存儲的是臨時數(shù)據(jù),則不需要備份。QL Server 2005的用戶數(shù)據(jù)庫存儲的用戶數(shù)據(jù),其中不重要的數(shù)據(jù)很容易從其他來源進行重建,可以不備份,而重要數(shù)據(jù)則需要進行完善的備份,像銀行的業(yè)務(wù)數(shù)據(jù)庫里邊其絕大部分?jǐn)?shù)據(jù)都是非常重要的,一定要采取合理的備份策略進行妥善的備份。
備份介質(zhì)是指用來存儲備份數(shù)據(jù)的物理設(shè)備,常用的有磁盤、磁帶和命名管道。硬盤空間不斷增加,價格逐步下降,是個不錯的選擇;磁帶成本低廉,但不支持遠(yuǎn)程備份;命名管道備份設(shè)備為第三方備份軟件和設(shè)備的使用提供了一種邏輯通道。
SQL Server 2005數(shù)據(jù)庫的備份工作既可以手工完成,也可以通過SQL Server Agent在設(shè)定的任何時候自動執(zhí)行備份計劃。數(shù)據(jù)庫備份可以按照一定的周期定期進行,也可以不定期的進行。不定期的數(shù)據(jù)庫備份一般是在數(shù)據(jù)庫發(fā)生某些改變后進行的如:當(dāng)master、model和msdb系統(tǒng)數(shù)據(jù)庫被修改或者創(chuàng)建、修改、刪除用戶數(shù)據(jù)庫等情況時,應(yīng)備份數(shù)據(jù)庫。另外,數(shù)據(jù)庫的備份工作盡量選擇在系統(tǒng)運行的低峰時段進行。
雖然數(shù)據(jù)庫的備份工作越精細(xì)越能夠保障數(shù)據(jù)庫的安全,但是備份是特別耗費時間和系統(tǒng)資源的,不能頻繁進行。應(yīng)該根據(jù)數(shù)據(jù)的重要程度、數(shù)據(jù)庫恢復(fù)的工作量以及應(yīng)用系統(tǒng)執(zhí)行的業(yè)務(wù)量等情況綜合考慮確定一個最佳的備份周期。對于系統(tǒng)環(huán)境為聯(lián)機事務(wù)處理的數(shù)據(jù)庫、數(shù)據(jù)較重要或者丟失了很難重新得到的數(shù)據(jù)庫以及數(shù)據(jù)更新頻繁的數(shù)據(jù)庫,其備份的頻率應(yīng)該較高。另外,不同的數(shù)據(jù)庫備份方法,其備份頻率也不同,一般完整備份的頻率應(yīng)該低些,差異備份和事務(wù)日志備份的頻率要高些。
備份數(shù)據(jù)庫會影響系統(tǒng)性能,因盡量想辦法把其影響降至最低,比如使用多個數(shù)據(jù)庫備份設(shè)備同時進行備份,選擇磁盤而不是磁帶作為備份設(shè)備,在備份數(shù)據(jù)庫時減少系統(tǒng)的并非活動等方式可以減少數(shù)據(jù)庫備份所需要的時間,綜合使用完整備份、差異備份和事務(wù)日志備份各取所長減少每次備份的數(shù)據(jù)量等。
數(shù)據(jù)庫的備份是一項周期性的長期工作,其在保障數(shù)據(jù)庫系統(tǒng)的安全性和可靠性方面發(fā)揮了重要的作用,SQL Server 2005提供了完整備份、差異備份、事務(wù)日志備份、文件或文件組備份四中備份類型,各有優(yōu)缺點,而實現(xiàn)數(shù)據(jù)庫安全有效的備份,關(guān)鍵在于如何正確的選擇備份策略,一個完善的數(shù)據(jù)庫備份方案需要考慮將數(shù)據(jù)的損失降至最低,盡量減少其對業(yè)務(wù)處理的影響,能夠兼顧備份設(shè)備的投入等。但是結(jié)合企業(yè)的實際應(yīng)用環(huán)境,制定最合理的備份方案——以最小的代價恢復(fù)數(shù)據(jù)庫,這一目標(biāo)的實現(xiàn)仍需在實踐中不斷累積經(jīng)驗。
[1]詹英.基于SQL Server的數(shù)據(jù)庫備份恢復(fù)策略[J].計算機時代,2007(12):23-24.
[2]何亮.基于SQL Server的教據(jù)庫備份與還原[J].信息與電腦,2010(8):100.