余守武
摘要:數(shù)據(jù)庫的備份與恢復在高校圖書館的日常工作中是一項非常重要的技術,工作人員對數(shù)據(jù)庫的誤操作、病毒的破壞、硬件損壞、軟件沖突和外界突發(fā)事件等都可能導致數(shù)據(jù)丟失或系統(tǒng)崩潰。而該文主要介紹了數(shù)據(jù)庫的幾種備份與恢復的方法以及策略,這些方法和策略可以為各個高校的圖書館圖書集成管理系統(tǒng)建立完善的數(shù)據(jù)備份和恢復策略提供參考,使得圖書館的數(shù)據(jù)庫數(shù)據(jù)更加安全可靠。
關鍵詞:SQL Server2000;數(shù)據(jù)庫;備份與恢復
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)10-2177-03
數(shù)據(jù)庫管理系統(tǒng)(Data Base Management System)是一種操縱和管理數(shù)據(jù)庫的大型軟件,用于建立、使用和維護數(shù)據(jù)庫,它對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。常見的數(shù)據(jù)庫管理系統(tǒng)有Oracle、Sybase、Informix、Microsoft SQL Server、Microsoft Access等產(chǎn)品[1]。Microsoft SQL Server2000是微軟公司于2000年底推出的采用客戶/服務器模式設計的關系數(shù)據(jù)庫管理系統(tǒng),它具有豐富的圖形化管理界面、動態(tài)自動管理和優(yōu)化功能以及豐富多樣的編程接口工具,有非常好的伸縮性和可靠性等優(yōu)點。SQL Server2000作為現(xiàn)如今主流的數(shù)據(jù)庫之一,以其方便的管理、優(yōu)異的性能和比較低廉的價格贏得越來越多的企事業(yè)單位和個人客戶的青睞 。
1 數(shù)據(jù)庫備份和恢復的重要性
在計算機技術和互聯(lián)網(wǎng)技術飛速發(fā)展的今天,各高校圖書館數(shù)據(jù)庫的數(shù)據(jù)量也是與日俱增,而圖書館數(shù)據(jù)的安全、可靠和正確才是數(shù)據(jù)庫管理員最關心的問題。由于許多潛在因素如計算機硬件故障、計算機系統(tǒng)和應用軟件出錯、電源故障、數(shù)據(jù)庫管理員誤操作、自然災害(如地震、火災、水災等)、黑客和病毒攻擊等因素都會威脅數(shù)據(jù)庫數(shù)據(jù)的安全。如果我們沒有對圖書館的數(shù)據(jù)進行備份,一旦圖書館圖書集成管理系統(tǒng)的服務器軟硬件等產(chǎn)生故障就不可能對丟失或被破壞的數(shù)據(jù)進行恢復。盡管數(shù)據(jù)庫系統(tǒng)本身具有一套完整的數(shù)據(jù)安全性防護,然而并不是萬事無憂,任何數(shù)據(jù)庫系統(tǒng)都無法防止因系統(tǒng)癱瘓或硬件問題等因素而造成數(shù)據(jù)丟失。就圖書館工作來說,流通借還和閱覽室讀者登到等動態(tài)數(shù)據(jù)的丟失是無法通過重新輸入來恢復的,所以必須為服務器設置一個有效的備份策略,盡可能地保障數(shù)據(jù)庫的安全。
高校圖書館不僅擔負為校內(nèi)成千上萬的學生和教師提供圖書借閱、期刊閱覽和教學科研等服務的任務,而且還是培養(yǎng)師生信息意識和信息能力的最佳場所,它能夠對教師的課堂教學起著深化和補充的重要作用。而圖書館的數(shù)據(jù)主要包括讀者數(shù)據(jù)、流通數(shù)據(jù)、閱覽數(shù)據(jù)和圖書期刊的數(shù)據(jù)等。其中流通部、期刊部和采編部每天更新成千上萬條的動態(tài)數(shù)據(jù)和幾十萬冊甚至幾百萬冊圖書期刊的數(shù)據(jù)都存儲在服務器內(nèi)的數(shù)據(jù)庫中,如果沒有提前制定備份策略對數(shù)據(jù)庫中的數(shù)據(jù)進行備份,一旦服務器的軟硬件出現(xiàn)故障或其他因素導致數(shù)據(jù)庫破壞或數(shù)據(jù)丟失,那么我們將無法恢復數(shù)據(jù)。它給圖書館帶來的不僅僅是在經(jīng)濟上和業(yè)務上的損失,還有形象上的損失都是巨大的。雖然圖書館的靜態(tài)數(shù)據(jù)(如圖書期刊的館藏數(shù)據(jù))可以通過手工一條一條的錄入來恢復,但是它所花費的時間將是無法估量的,而且是不切實際的;而動態(tài)數(shù)據(jù)(如讀者的借還、預約和續(xù)借數(shù)據(jù)、閱覽室的讀者登到數(shù)據(jù)和歷屆讀者數(shù)據(jù)等)卻是無法通過手工恢復的。所以我們在每天的工作中必須定期對數(shù)據(jù)庫數(shù)據(jù)進行本地備份,而且必須對數(shù)據(jù)庫數(shù)據(jù)定期進行異地備份并存儲至移動設備。當故障發(fā)生造成數(shù)據(jù)丟失或破壞時,我們只需使用之前的備份數(shù)據(jù)文件對數(shù)據(jù)庫進行恢復,并且可恢復至備份時的數(shù)據(jù)庫狀態(tài),這個過程就是利用數(shù)據(jù)庫的備份文件來恢復數(shù)據(jù)庫數(shù)據(jù)。我們所說的數(shù)據(jù)庫的備份,就是將數(shù)據(jù)庫內(nèi)的數(shù)據(jù)完全一樣的復制下來,并存儲到指定位置;而數(shù)據(jù)庫恢復便是使用備份文件將數(shù)據(jù)庫恢復到備份時的狀態(tài)。
無論多么完善的軟件,還是多么高質(zhì)量的硬件,在連續(xù)不間斷的高負荷運行中,都有出現(xiàn)故障的可能性。而當數(shù)據(jù)庫出現(xiàn)問題的時候,管理員只能通過備份文件對數(shù)據(jù)庫進行重建和恢復使系統(tǒng)正常運行,從而不影響廣大師生讀者對圖書館的利用。因此,數(shù)據(jù)庫的備份和恢復在圖書館的工作中是非常重要的。
2 硬件服務器選購
硬件服務器的合理選擇對數(shù)據(jù)庫的數(shù)據(jù)安全也是非常重要的。目前,我館的硬件服務器為浪潮NF5220,內(nèi)存8GB, CPU是Intel Xeon E5606。配套軟件有金盤軟件公司開發(fā)的金盤圖書館集成管理系統(tǒng)Gdlis XP4.0版本、Windows 2003、SQL Server2000以及瑞星殺毒軟件。
在選購圖書館集成管理系統(tǒng)服務器的時候,需要考慮以下幾個方面:
1) 配置多套電源供電系統(tǒng),并外接兩個(甚至多個)電源。多套供電系統(tǒng)可以保證其中一套供電系統(tǒng)出現(xiàn)問題后,另一套供電系統(tǒng)可以保障服務器正常工作。
2)配置兩個(甚至多個)CPU,若其中的一個CPU壞了,剩下的CPU還可以保證服務器繼續(xù)工作。
3) Raid5。服務器上最重要的就是圖書館管理系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)了,而數(shù)據(jù)只能是存放在硬盤上。所以在購買服務器時最好配置四塊服務器硬盤,其中三塊硬盤做Raid5,剩下的一塊做為備用硬盤。Raid5保證了當服務器損壞一塊硬盤時不會影響服務器正常運行,同時盡快使用備用硬盤更換損壞的硬盤,以防再有硬盤損壞導致服務器無法正常工作。
4) 高速硬盤?,F(xiàn)在一般服務器都配置SAS硬盤,這種硬盤穩(wěn)定并且其轉速要遠遠高于普通硬盤,能夠應付快速的數(shù)據(jù)讀寫。
3 Microsoft SQL Server2000數(shù)據(jù)庫備份和備份策略
3.1 數(shù)據(jù)庫備份
為了能夠利用盡可能少的時間和資源給數(shù)據(jù)庫提供更安全可靠的數(shù)據(jù)保護,定期對數(shù)據(jù)庫數(shù)據(jù)進行備份是最穩(wěn)妥的防止軟硬件等故障的最好方法,它能夠在短時間內(nèi)恢復丟失的數(shù)據(jù)或被破壞的數(shù)據(jù)庫,這是一種對數(shù)據(jù)庫安全比較經(jīng)濟實惠的保障手段,同時也是最簡單的確保能恢復全部或大部分數(shù)據(jù)信息的方法。而對數(shù)據(jù)庫進行備份需要考慮到很多因素。包括備份時間、備份周期、備份方法、備份存儲和完善備份數(shù)據(jù)檢查制度等。
3.1.1備份時間
每次對數(shù)據(jù)庫數(shù)據(jù)進行備份需要選擇合適的時間段。SQL Server2000數(shù)據(jù)庫備份時間的確定非常重要,這是由于每次備份數(shù)據(jù)的時候需要占用服務器大量的資源。為了在備份數(shù)據(jù)時不影響正常工作,我們一般選擇服務器工作不太繁忙的時候進行備份。針對圖書館開放時間的特殊性,我們可以在中午和晚上閉館期間分別對數(shù)據(jù)庫進行一次備份,并且在工作期間的每小時進行一次事務日志備份。
3.1.2備份周期
依據(jù)數(shù)據(jù)庫數(shù)據(jù)的重要程度,可采取每小時、每一天、每一周和每個月執(zhí)行備份操作。圖書館最重要的數(shù)據(jù)莫過于圖書期刊的館藏數(shù)據(jù)、讀者信息以及流通數(shù)據(jù),其中讀者信息一般每年新生入學時才會大批量注冊更新,而平時即使有新注冊讀者也是非常少的,當天數(shù)據(jù)丟失對讀者信息影響不大;圖書期刊的館藏數(shù)據(jù)則是每天加工作多少就更新多少,每天所更新的數(shù)據(jù)量也有限,即使當天所加工的數(shù)據(jù)丟失,只需將所加工圖書期刊重新加工即可恢復;但是流通數(shù)據(jù)每天都是成千上萬條的更新,如果該數(shù)據(jù)丟失,那么讀者借還、預約、續(xù)借、繳納罰金和賠還圖書等數(shù)據(jù)將全部丟失,將會嚴重影響圖書館的工作。由于圖書館工作期間數(shù)據(jù)傳輸頻繁,如果數(shù)據(jù)備份次數(shù)過多,則會影響正常的開放工作,并且過于浪費時間和資源,所以我們一般選擇在每天中午和晚上休息期間分別對數(shù)據(jù)庫做一次差異備份和一次完全備份,并且在正常工作期間每小時進行一次事務日志備份,這樣可最大限度的保證數(shù)據(jù)安全。
3.1.3備份方法
SQL Server2000的備份方法有很多,可分為完全備份、差異備份和增量備份等,與此同時SQL Server2000支持獨自用其中一種備份方法或同時組合應用多種備份方法。
1)完全備份。數(shù)據(jù)庫完全備份是備份數(shù)據(jù)庫上的所有數(shù)據(jù),并隨著這項操作的完成將這些數(shù)據(jù)標記為已備份數(shù)據(jù)。定期執(zhí)行全備,以保證全部數(shù)據(jù)都存在于介質(zhì)的某個獨立部分或集合上。事務日志備份、增量備份和差異備份的前提是完全備份,同時全備的數(shù)據(jù)是最全面的和最完整的,而且可恢復性也是最強的,但是它所占用的存儲空間更大、花費的時間更長和消耗的資源更多,因此完全備份創(chuàng)建的頻率不能過高,并且無法對任意時間點的數(shù)據(jù)進行恢復,只能恢復到備份時的狀態(tài)。
2) 差異備份。如果數(shù)據(jù)庫中的數(shù)據(jù)經(jīng)常被修改或更新,可以采用差異備份來縮短數(shù)據(jù)庫的備份和恢復時間。差異備份能夠保存自上一次全備以來被改動過的一切文件,也就是進行修改過或新增加過的數(shù)據(jù),不過這些文件并沒有被標記為已備份文件。在差異備份的過程當中自前一次全備后一切被改動過的信息都將被備份,與全備相比,差異備份的效率更高、占用的空間更少、所花費時間更短。但是使用差異備份進行數(shù)據(jù)庫恢復時,必須要有它之前的完全備份和差異備份,不然將無法對數(shù)據(jù)庫的數(shù)據(jù)進行恢復。
3) 增量備份。增量備份可以保存自上一次全備后被改動過的一切文件,并被標記為已備份文件。增量備份只備份自上一次全備或增量備份后更改的一切數(shù)據(jù)。當使用增量備份進行數(shù)據(jù)恢復時,需要組合使用最近的完全備份和所有增量備份集合。
4) 事務日志備份。事務日志是記錄自上一次事務日志備份后對數(shù)據(jù)庫執(zhí)行的一切寫入或修改操作。對于數(shù)據(jù)庫數(shù)據(jù)變化的一切操作,在事務日志中都有明確的記錄,可用事務日志對這些操作進行撤銷或重做。用事物日志備份能夠把數(shù)據(jù)庫數(shù)據(jù)恢復到特定的即時點或故障點。一般來說,事物日志備份比全備耗時短且占用系統(tǒng)資源少,所以事物日志備份的創(chuàng)建頻率可更高,如此一來數(shù)據(jù)庫數(shù)據(jù)丟失的危險將大大降低[2]。
3.1.4備份存儲
數(shù)據(jù)庫備份的目的是數(shù)據(jù)庫出現(xiàn)問題后,可以使用備份文件將數(shù)據(jù)庫恢復到備份時的狀態(tài)。數(shù)據(jù)庫管理員不僅要重視數(shù)據(jù)庫的備份工作,還必須要妥善管理好備份文件和備份設備,備份文件及設備盡可能不要和數(shù)據(jù)庫系統(tǒng)存放在同一臺服務器上,以防服務器硬件出現(xiàn)故障時連同備份文件一起丟失或損壞。由于我校圖書館數(shù)據(jù)庫備份文件占用空間較小,每次備份可以存放在服務器本地磁盤(如果是軟件問題而不是硬件故障時,就可以利用本地備份文件直接恢復數(shù)據(jù)庫,非常方便。),同時為了防止硬件故障導致本地磁盤備份文件丟失或損壞,我們必須將每次的備份文件存放至其他服務器硬盤和移動設備中,并且定期將備份文件存放至異地[3]。
3.1.5完善備份數(shù)據(jù)檢查制度
盡管SQL Server2000企業(yè)管理器可設置數(shù)據(jù)庫定期按時進行自動備份,然而數(shù)據(jù)庫管理員依然不能麻痹大意,因為自動備份的成功與否和操作系統(tǒng)以及數(shù)據(jù)庫軟件能否正常運行是密切相關的,所以管理員應該定期檢查備份是否正常進行,以便及時發(fā)現(xiàn)并處理自動備份過程中出現(xiàn)的問題,確保備份數(shù)據(jù)的正確性和可用性。
3.2數(shù)據(jù)庫備份策略
事先制定數(shù)據(jù)庫的備份策略是非常重要的,一個合理完善的備份策略能夠讓數(shù)據(jù)庫管理員在最短的時間內(nèi),使用最少的資源將數(shù)據(jù)庫恢復到正常的運行狀態(tài)。而一個完善的備份策略需要根據(jù)實際使用數(shù)據(jù)庫的大小、使用頻率和數(shù)據(jù)的重要程度等等因素來建立。
根據(jù)圖書館利用率、開放時間、數(shù)據(jù)庫的大小和其數(shù)據(jù)的重要程度,為我校圖書館圖書集成管理系統(tǒng)數(shù)據(jù)庫建立一個合適的備份策略。
1)我館圖書集成管理系統(tǒng)數(shù)據(jù)庫占用存儲空間較小(約為2.5GB),且備份所需時間較短,因此我們可以利用中午休息時間(12:00—14:30)和晚上閉館時間(21:30—早上8:00)分別對數(shù)據(jù)庫進行一次差異備份和完全備份,兩次備份均由SQL Server2000企業(yè)管理器的數(shù)據(jù)庫維護計劃設置成自動備份。
2) 由于讀者的借還、續(xù)借、預約以及賠罰款等數(shù)據(jù)和閱覽室的讀者登到數(shù)據(jù)是時刻變化的,而且每天都是成千上萬條的更新,如果在工作期間數(shù)據(jù)庫遭到破壞而無法使用,那么在這期間更新的數(shù)據(jù)將全部丟失,將給我們圖書館工作造成嚴重的影響,并且給讀者利用圖書館帶來不便。因此,我們可以在圖書館對讀者開放期間的每一個小時由SQL Server2000自動進行一次事務日志備份,并直接存儲至移動設備或其他服務器上。這樣一來,即使工作期間數(shù)據(jù)庫出現(xiàn)問題而無法使用,數(shù)據(jù)庫管理員也可利用事物日志備份文件在短時間內(nèi)恢復數(shù)據(jù)庫數(shù)據(jù),從而將對讀者的影響降至最低。
3) 作為一名優(yōu)秀的數(shù)據(jù)庫管理員,不但要合理備份數(shù)據(jù)庫數(shù)據(jù),同時也要重視備份數(shù)據(jù)文件的存儲。數(shù)據(jù)庫管理員要做到在每次上班的時候,將前一天晚上的完全備份文件或者每天中午的差異備份文件拷貝至移動設備或其他服務器上存儲,以便于保證備份數(shù)據(jù)文件存儲的安全性和可用性。
4)數(shù)據(jù)庫管理員每周需要登錄一次服務器,并對服務器軟硬件進行檢查以及檢查數(shù)據(jù)庫自動備份是否正常。而且管理員需要手工對數(shù)據(jù)庫數(shù)據(jù)進行一次完全備份,并拷貝至移動設備,以防自動備份文件損壞或丟失而無法使用。
5) 定期檢查服務器可用存儲空間和軟件等應用程序,防止存儲空間不足和軟件故障等原因造成數(shù)據(jù)庫自動備份失敗,發(fā)現(xiàn)問題并及時解決。
4 Microsoft SQL Server2000數(shù)據(jù)庫恢復方法和恢復策略
4.1 數(shù)據(jù)庫的恢復方法
4.1.1完全備份的恢復方法
對于只做了完全備份的數(shù)據(jù)庫數(shù)據(jù)被破壞而無法使用時,我們只能通過該完全備份文件恢復數(shù)據(jù)庫數(shù)據(jù)。該方法可以把數(shù)據(jù)庫的數(shù)據(jù)文件和日志文件恢復到備份時間點的狀態(tài)上,并且數(shù)據(jù)保持原樣。
4.1.2 增量+全備的恢復方法
組合使用增量備份和完全備份文件對數(shù)據(jù)庫進行恢復時,首先要恢復最近一次的完全備份,然后再按備份的先后順序恢復該完全備份后的若干增量備份,最后一次的增量備份只有到最后才恢復。由于增量備份恢復是基于日志原理的,SQL Server2000會重做自全備后的一切數(shù)據(jù)庫日志,倘若增量備份文件過多,則會導致恢復速度變慢。
4.1.3 差異+全備的恢復方法
組合使用差異備份和完全備份文件對數(shù)據(jù)庫進行恢復時,首先要恢復最新的完全備份并將數(shù)據(jù)庫置于恢復狀態(tài)中,然后再恢復離該全備最遠的一個差異備份文件(也就是最新的一次差異備份),此種數(shù)據(jù)庫的恢復方法執(zhí)行起來方便且所需時間較短[4]。
4.1.4 全備+事務日志的恢復方法
使用事物日志對數(shù)據(jù)庫進行恢復時,一定要使用有效的全備或差異備份來執(zhí)行數(shù)據(jù)庫的恢復,同時必須按順序來還原事務日志的備份文件。只有在上一次的全備或者差異備份組可用時,才能順序使用事務日志備份將數(shù)據(jù)庫恢復到發(fā)生故障的最后那個時刻相一致的狀態(tài)。因為事務日志備份文件中的每一個都是未斷開連接的,所以應該非常小心地確保這些文件在備份過程中都是有效的。如果其中的一個文件損壞、丟失或者處于其他不可用的情況下,那么將只能還原到鏈接斷開的那個時刻。
4.2 數(shù)據(jù)庫的恢復策略
為圖書館數(shù)據(jù)庫制定一個合理完善的恢復策略,在數(shù)據(jù)庫遭到破壞時,可以在恢復數(shù)據(jù)庫的時候節(jié)約資源和節(jié)省時間。而數(shù)據(jù)庫恢復策略的制定,需要根據(jù)實際使用數(shù)據(jù)庫的具體情況而定。
我館的數(shù)據(jù)庫占用空間較小,而且每天在中午和晚上休息時間分別進行一次差異備份和一次完全備份以及在工作期間每小時進行一次事物日志備份。對于上班前和上班期間發(fā)現(xiàn)數(shù)據(jù)庫被破壞以及服務器硬件損壞時,我們可以采用以下策略對數(shù)據(jù)庫進行恢復重建。
1)如果在上班前(上午上班或下午上班時)發(fā)現(xiàn)數(shù)據(jù)庫被破壞而無法正常使用時,那么我們可使用前一天晚上的完全備份或最新的完全備份和當天中午的差異備份對數(shù)據(jù)庫進行恢復重建,這種恢復策略可以將數(shù)據(jù)庫還原成原有的狀態(tài),不會造成數(shù)據(jù)庫丟失。
2) 如果在上午上班期間數(shù)據(jù)庫被破壞而無法正常使用時,則可組合使用前一天晚上的完全備份文件和當天上午的事務日志備份文件對數(shù)據(jù)庫進行恢復重建;如果在下午上班期間數(shù)據(jù)庫被破壞而無法正常使用時,則可組合使用最新的完全備份文件、中午的差異備份文件和下午的事務日志備份文件對數(shù)據(jù)庫進行恢復重建。此種方法可將數(shù)據(jù)庫恢復到最后一次事務日志備份時的狀態(tài)。
3) 在服務器硬件正常運行的情況下,可以通過以上兩種策略直接恢復數(shù)據(jù)庫數(shù)據(jù),而一旦服務器硬件出現(xiàn)問題,將無法直接恢復數(shù)據(jù)庫數(shù)據(jù)。服務器硬件出現(xiàn)問題后,無論是維修還是重新購買,都需要一定的周期,在此期間圖書館只能閉館,將嚴重影響讀者利用圖書館資源。
針對服務器硬件故障導致數(shù)據(jù)庫不能在短時間內(nèi)恢復使用,可以采用以下方法來解決:①對于經(jīng)費充足的圖書館,可以通過選擇雙機熱備的方式來解決或購買兩臺完全一樣的服務器,并且軟件環(huán)境完全一致。其中一臺作為主服務器使用,另外一臺作為后備服務器。在主服務器硬件出現(xiàn)故障后,可以啟用后備服務器恢復數(shù)據(jù)庫;②對于經(jīng)費并不充裕的圖書館,可以準備一臺PC機,并將軟件環(huán)境配置與主服務器一致。在主服務器硬件出現(xiàn)故障后,可啟用此PC機來恢復數(shù)據(jù)庫,暫時代替服務器工作,并及時維修或購買新服務器。
5 結束語
Microsoft SQL Server2000數(shù)據(jù)庫的備份和恢復的方法及策略非常多,但是針對不同的數(shù)據(jù)庫我們所采用的方法和策略也不同。對于圖書館來說,最好是使用雙機熱備的方式來保障數(shù)據(jù)庫數(shù)據(jù)的安全,但是出于成本或其他因素考慮,雙機熱備的方式使用較少。該文所介紹的備份和恢復方法,適用于大部分高校圖書館,它可以在服務器崩潰或軟件等問題導致數(shù)據(jù)丟失時能夠及時恢復數(shù)據(jù),從而將損失降至最低。
參考文獻:
[1] 于洋.大型數(shù)據(jù)庫遠程備份研究[J].煙臺職業(yè)學院學報,2012(1):80-83.
[2] 丁向朝.SQLServer數(shù)據(jù)庫備份與還原應用[J].信息與電腦,2012(7):98-99.
[3] 王紅建.SQL數(shù)據(jù)庫的備份與恢復技巧[J].科技視界,2012(28):175,202.