程代娣,王鶴琴
(安徽警官職業(yè)學院,安徽 合肥230031)
在互聯(lián)網和云技術時代,網絡數(shù)據(jù)庫技術在很多行業(yè)和部門管理數(shù)據(jù)中得到廣泛采用,因而,數(shù)據(jù)安全問題倍受用戶重視。對于一個數(shù)據(jù)庫應用系統(tǒng)來說,數(shù)據(jù)是至關重要的資源,一旦數(shù)據(jù)丟失,可能影響正常的業(yè)務活動,甚至造成災難性后果。盡管SQL Server 的安全管理機制采取了各種保護措施來維護數(shù)據(jù)的安全性和完整性,但在計算機系統(tǒng)中常常出現(xiàn)硬件故障、軟件故障、誤操作和惡意破壞行為,這些故障的出現(xiàn)在不同程度上會破壞數(shù)據(jù)庫中的數(shù)據(jù),甚至引起災難性的后果。因此,僅僅靠登錄帳號、數(shù)據(jù)庫用戶賬號和權限管理措施,還不能完全確保數(shù)據(jù)庫的安全。本文提出了一系列的數(shù)據(jù)備份和恢復措施,以保證SQL Server 數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的完整性和安全性,將損失減少到最小程度。
數(shù)據(jù)庫備份是指對數(shù)據(jù)庫中的數(shù)據(jù)定期進行復制保存到本地存儲設備或其他機器存儲設備上,當數(shù)據(jù)庫系統(tǒng)故障發(fā)生時,能盡快地利用這些數(shù)據(jù)備份把數(shù)據(jù)庫恢復到破壞前的狀態(tài),使系統(tǒng)能在較短的時間內恢復正常,將損失減小到最低[1]。
2.2.1 完全數(shù)據(jù)庫備份
完全數(shù)據(jù)庫備份是備份數(shù)據(jù)庫中的所有數(shù)據(jù)信息,包括備份數(shù)據(jù)文件、事務日志部分(以便可以恢復整個備份)及數(shù)據(jù)庫中的所有對象,也稱全庫備份[2]。完整數(shù)據(jù)庫備份還原到備份時刻的數(shù)據(jù)庫狀態(tài),但從備份以后到發(fā)生故障的這段時間對數(shù)據(jù)庫的修改將被丟失。完全備份是所有備份的基點,其他備份只有在執(zhí)行了完全備份之后才能被執(zhí)行。它的優(yōu)點是操作簡單,備份數(shù)據(jù)庫所有信息。完全數(shù)據(jù)庫備份適合數(shù)據(jù)庫數(shù)量少,且數(shù)據(jù)更改不是很頻繁的情況,一般設定系統(tǒng)1 周做1 次全庫備份。
2.2.2 數(shù)據(jù)庫差異備份
數(shù)據(jù)庫差異備份,是指只備份從最近完全備份以后的對數(shù)據(jù)庫進行修改更新的數(shù)據(jù)。它以最近一次全庫備份為基點,備份最近一次全庫備份后變化的內容,也稱增量備份[3]。備份內容少且備份速度快,因而,為減少丟失數(shù)據(jù)的風險可經常備份。若需要使用增量備份還原被破壞的數(shù)據(jù)庫系統(tǒng),不能直接使用數(shù)據(jù)增量備份來還原,而需要先用最新的一次全庫備份進行來恢復,然后再使用一次增量備份進行還原到差異備份的時刻點。
2.2.3 事務日志備份
事務日志是一個記錄數(shù)據(jù)庫改變的單獨文件。事務日志備份指只復制上一次日志備份之后的日志記錄,又稱日志備份。對于大型數(shù)據(jù)庫來說,進行一次完全備份會占用較長的時間,這降低數(shù)據(jù)庫系統(tǒng)的整體性能,為了提高數(shù)據(jù)庫系統(tǒng)的使用效率,此時可采用事務日志備份方式。日志備份也必須要有一個完全備份作為恢復的基準點。當數(shù)據(jù)庫需要事務日志備份時,數(shù)據(jù)庫還原模式應首先設為“完全”或“大容量日志記錄”的方式,然后進行一個完全數(shù)據(jù)庫備份后才能進行事務日志備份。事務日志備份所處理的數(shù)據(jù)量較小,占用較少的備份時間和存儲空間,一般系統(tǒng)每小時進行一次事務日志備份。當使用事務日志備份還原數(shù)據(jù)庫時,不能直接單獨使用,需要用一次完全數(shù)據(jù)庫備份先還原,然后再使用事務日志備份按備份的時間先后順序依次還原。
2.2.4 數(shù)據(jù)文件及文件組備份
數(shù)據(jù)庫一般是保存在存儲介質上的多個文件組成。數(shù)據(jù)文件及文件組備份是指定對數(shù)據(jù)庫中的某一部分文件進行復制。這類恢復過程簡單,在恢復時只對被破壞的數(shù)據(jù)庫文件做恢復,不必對其余部分數(shù)據(jù)庫還原,加快了恢復進度。恢復部分數(shù)據(jù)和文件或文件組后,必須再恢復該備份后所做的所有事務日志備份,通過結合事務日志備份,這樣可避免造成數(shù)據(jù)庫不一致。因此,在做文件或文件組備份之后,有必要立即做一個事務日志備份[4]。
盡管SQL Server 提供了多種備份方式,但要使數(shù)據(jù)庫備份方式符合實際應用需要,還需要制定合適的備份策略。不同的備份適用不同的應用,選擇或制定最合適的備份策略可以最大程度地減少數(shù)據(jù)丟失,并可加快恢復過程。
2.3.1 完全備份策略
完全備份策略適合數(shù)據(jù)庫數(shù)據(jù)量不大,且數(shù)據(jù)修改小或允許一定量的數(shù)據(jù)丟失時,備份的時間間隔較大,一般1 周備份1 次。
2.3.2 完全備份+日志備份策略
如果用戶數(shù)據(jù)十分重要不允許丟失太多的數(shù)據(jù),數(shù)據(jù)庫又更新頻繁,為了節(jié)省時間,不易經常備份數(shù)據(jù)庫,可在完全備份中間進行日志備份。完全備份加日志備份策略特別適合生產數(shù)據(jù)庫系統(tǒng),這時可以在完全備份中間加入日志備份。由于數(shù)據(jù)庫備份的容量較小,可以較頻繁進行,使數(shù)據(jù)庫數(shù)據(jù)丟失程度最小,使用日志備份還可以在還原數(shù)據(jù)時指定到特定的時間點。
2.3.3 完全備份+差異備份+日志備份策略
僅使用完全備份加日志備份的方法恢復數(shù)據(jù)庫,則還原時將會占用大量的時間。差異備份操作速度快,減少備份時間。如果希望加快恢復故障數(shù)據(jù)庫的時間,降低數(shù)據(jù)損失,在進行完全備份中間加一些差異備份,即完全備份+差異備份+日志備份策略組合,在恢復時也只還原最近一次差異備份,然后依次還原日志備份。
2.3.4 數(shù)據(jù)庫鏡像(硬盤鏡像備份)
數(shù)據(jù)庫鏡像也稱磁盤鏡像備份,鏡像就是在不同的存儲設備上同時保存兩個數(shù)據(jù)庫,一個設備稱為主設備,另一個稱為鏡像設備,二者互為鏡像關系。為了防止介質故障影響數(shù)據(jù)庫系統(tǒng)的有用性,SQL Server 數(shù)據(jù)庫管理系統(tǒng)可使用數(shù)據(jù)庫鏡像功能來還原數(shù)據(jù)庫,通常由數(shù)據(jù)庫管理員設定SQL Server 系統(tǒng)自動完成。即按照數(shù)據(jù)庫管理員的指令,數(shù)據(jù)庫管理系統(tǒng)把全部數(shù)據(jù)庫或數(shù)據(jù)庫中核心數(shù)據(jù)自動復制到備用存儲介質上,主數(shù)據(jù)庫修改變化時,自動地把更新后的數(shù)據(jù)拷貝過去,實現(xiàn)了鏡像數(shù)據(jù)和主數(shù)據(jù)庫的同一性。
2.3.5 服務器鏡像備份(雙熱機備份)
在經濟條件允許和數(shù)據(jù)的安全性要求特別高的情況下,可采用雙熱機備份策略。該方法保護數(shù)據(jù)最快,安全性高。雙熱機備份策略就是單獨使用一臺計算機作為備份服務器,此臺計算機的軟硬件配置與服務器配置相當,隨時替代主服務器,如果主服務器受到安全上的攻擊和軟硬件故障,用備份服務器接替主服務器工作即可,就好像什么也沒有發(fā)生,然而這是費用最昂貴的。
2.3.6 異機備份
異機備份則是最好最經濟的備份方式。具體做法是:在局域網的任何一臺工作站計算機上安裝(Windows NT)或SQL Server,并在該機上建立一個與服務器上數(shù)據(jù)庫同名的數(shù)據(jù)庫,利用SQL Server系統(tǒng)本身提供的異機傳送功能(在企業(yè)管理器重的“工具”菜單下的DataBase/Object Transfer)通過設置定時由計算機自動地把服務器中數(shù)據(jù)庫的數(shù)據(jù)傳送到該工作站機的數(shù)據(jù)庫中。
數(shù)據(jù)庫恢復是指利用事先的備份策略將數(shù)據(jù)庫系統(tǒng)從錯誤狀態(tài)還原到最近的正確時刻狀態(tài)的過程[5]。
數(shù)據(jù)庫出現(xiàn)故障的原因多種多樣,不同的故障原因采用還原策略和方法也不一致。對于系統(tǒng)故障、事務故障恢復由系統(tǒng)重新啟動時自動完成。而對于發(fā)生介質故障,磁盤上的物理數(shù)據(jù)和日志被破壞,損失最大,恢復需要用戶干預。這里主要分析當數(shù)據(jù)庫系統(tǒng)出現(xiàn)介質故障或異常毀壞時,適合采用數(shù)據(jù)備份對數(shù)據(jù)庫進行恢復?;謴湍J绞菙?shù)據(jù)庫的一種特性,它控制著數(shù)據(jù)庫備份和還原的基本行為,數(shù)據(jù)庫管理員應根據(jù)實際運作的需求,對數(shù)據(jù)的可用性和恢復需求來選擇合適的恢復模式,對介質引起的故障SQL Server 提供了3 種恢復技術。
3.2.1 利用備份技術恢復
數(shù)據(jù)庫管理員合理規(guī)劃好數(shù)據(jù)庫備份策略,并進行定期備份數(shù)據(jù)瞬時正確狀態(tài),以保證在數(shù)據(jù)庫系統(tǒng)發(fā)生故障時,管理員可以利用備份副本還原數(shù)據(jù)庫到備份完成時刻點的正確狀態(tài)。恢復的方案是首先重裝數(shù)據(jù)庫,使數(shù)據(jù)庫管理系統(tǒng)能正常運行,然后利用介質損壞前對數(shù)據(jù)庫已做的備份或利用鏡像設備恢復數(shù)據(jù)庫。SQL Server 提供了3 種恢復模式。
3.2.1.1 簡單恢復模式
該模式系統(tǒng)自動地定期將事務日志中不活動的部分清除掉,只能進行完全備份和差異備份,不使用事務日志備份,只能還原到執(zhí)行備份操作的那一時刻,不可能恢復到失敗時刻點,將丟失執(zhí)行備份之后的所有修改的數(shù)據(jù)。對生產系統(tǒng)來說,丟失最新的更新時是難以接受的,因此,簡單恢復模式并不適合生產系統(tǒng)。
3.2.1.2 完整恢復模式
該模式使用數(shù)據(jù)庫備份和事務日志備份來對數(shù)據(jù)庫故障進行完全防范,防止最大范圍的故障情形所造成的工作損失,為數(shù)據(jù)提供了最大的保護性。事務日志中記錄了數(shù)據(jù)庫數(shù)據(jù)的全部更新操作,當數(shù)據(jù)庫遭到破壞時,可以利用事務日志快速地將數(shù)據(jù)庫恢復到故障點狀態(tài)?;謴晚樞蚴鞘紫仁褂米罱囊淮瓮暾麄浞莼謴?,其次恢復最近的一個增量備份,最后按備份先后順序還原日志備份。
3.2.1.3 大容量日志恢復模式
作為完全恢復模式的補充模式,大容量日志恢復模式使用最小的方法記錄大規(guī)模大容量操作,其事務日志占用的磁盤空間遠遠小于其他恢復模式。它保護大規(guī)模操作不因介質媒體故障而受到損害,提供最佳性能并占用最小日志空間,為某些大規(guī)模操作提供了更高的性能和最少的日志使用空間。大容量日志恢復模式不能使數(shù)據(jù)庫系統(tǒng)恢復到破壞時的正確狀態(tài),因此該恢復模式下,需要事先進行日志備份。
3.2.2 利用鏡像技術恢復
數(shù)據(jù)庫鏡像功能常用于恢復由磁盤介質引起的數(shù)據(jù)庫故障。當發(fā)生介質故障影響數(shù)據(jù)庫系統(tǒng)的有用性時,數(shù)據(jù)庫管理員可使用SQL Server 數(shù)據(jù)庫鏡像功能來還原數(shù)據(jù)庫。突發(fā)介質損壞引起的故障,鏡像的磁盤就代替主磁盤進行工作,實現(xiàn)數(shù)據(jù)庫繼續(xù)使用的,并通過鏡像數(shù)據(jù)進行數(shù)據(jù)庫的修復,不必關閉系統(tǒng)或重裝數(shù)據(jù)庫副本。
3.2.3 異機備份恢復技術
采用異機備份恢復技術策略,一旦服務器(操作系統(tǒng)) 崩潰或Microsoft SQL Server 系統(tǒng)崩潰時,只要重裝服務器操作系統(tǒng)(Microsoft Windows NT)或重裝Microsoft SQL Server 從異機傳送數(shù)據(jù)恢復,即采用異機傳送工具來通過該工作站把數(shù)據(jù)傳回至服務器的Microsoft SQL Server 數(shù)據(jù)庫中,以確保數(shù)據(jù)的安全恢復。這也是最好最經濟的備份恢復技術。
總之,根據(jù)數(shù)據(jù)庫系統(tǒng)性質特點,合理有效的規(guī)劃數(shù)據(jù)庫備份和恢復策略,可以較好地保證數(shù)據(jù)的安全。SQL Server 是一個高性能、分布式的網絡數(shù)據(jù)庫管理系統(tǒng),它的備份和還原組件為數(shù)據(jù)庫中的關鍵數(shù)據(jù)提供了有力的安全保障。本文提出了一系列的備份和恢復策略,在數(shù)據(jù)庫系統(tǒng)出現(xiàn)故障時,只要采用適當有效地備份和恢復措施,大型數(shù)據(jù)庫SQL Server 的數(shù)據(jù)安全性和完整性能夠得到有效地保障。
[1]張浩軍,張鳳玲.數(shù)據(jù)庫設計開發(fā)技術案例教程[M].北京:清華大學出版社,2012:242.
[2]尹志宇,郭晴.數(shù)據(jù)庫原理與應用教程——SQL Server2008[M].北京:清華大學出版社,2013:285.
[3]何玉潔.數(shù)據(jù)庫原理與應用教程(第2 版)[M].北京:機械工業(yè)出版社,2007:168.
[4]王暉媛.SQL Server 中數(shù)據(jù)庫備份和恢復方法的研究[J].計算機光盤軟件與應用,2011(2):112.
[5]王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論(第4 版)[M].北京:高等教育出版社,2006:285.