向洪波
(雞西大學,黑龍江 雞西 158100)
計算機應用領域隨著當前科學技術的不斷發(fā)展而不斷擴大,人們對計算機的依賴成都不斷提高。計算機的出現(xiàn)是人類歷史的一大變革,但是計算機的廣泛應用不僅給人類社會帶來了福音,同時也不可避免地帶來了一些前所未有的問題。其中,計算機數據庫資料存儲的安全問題就是計算機的廣泛應用帶來的安全問題之一。由于計算機本身因素或者人為因素等引起計算機系統(tǒng)的故障,進而影響數據庫中數據的正常使用,給人們的生活帶來了不良的影響。
計算機數據庫備份是一種數據的保存過程,計算機所有者(管理員)將計算機數據庫中內容的部分或全部拷貝到另一個磁盤或者載體上的過程即為數據庫的備份。我們可以以后備副本命名這些拷貝的數據。如果計算機的數據庫在遇到故障(遭到破壞或者受攻擊時)時不能對其進行正常的操作處理,此時想要在對數據庫操作就是后備副本大顯身手的時候了,我們進行數據庫恢復時后備副本是必須的,但是這種恢復只能將計算機數據庫恢復到當時備份時的狀態(tài)。如果我們對數據庫恢復的要求比較高,想要得到計算機在發(fā)生故障前的數據庫狀態(tài),則需要將從數據庫備份開始至數據庫發(fā)生故障之前所有的更新數據重新運行一次才能得到目的[1]。
在正常運行計算機系統(tǒng)時,每個人都不希望自己所需要的數據丟失或者被損害,尤其是那些沒有進行備份的數據 (不管丟失或者被破壞的數據是數據庫中的數據還是其他的一些編程代碼等)。一旦我們遇到計算機數據庫被損壞的情況,如果要進行數據庫的恢復工作需要花費大量的時間和精力。
數據庫備份可被分為靜態(tài)備份和動態(tài)備份兩類,各自的特點如下表所示。
表1 數據庫備份的形式及特點
一般情況下,對數據庫進行靜態(tài)備份比較簡單,但是這種備份局限性較大,只有在用戶事務完成后才能進行備份,而且也只有在數據庫備份完成后才能運行行的用戶事務,因此,這種備份方式導致數據庫的可使用性能降低。
數據庫的動態(tài)備份則沒有上述的缺點,數據庫備份可以和用戶事務并發(fā)執(zhí)行。但是,這種備份方式的局限性在于其完成備份動作后并不能確保后備副本上所有數據的正確有效性。
以一個實例加以說明:在某時刻我們對計算機數據庫進行動態(tài)備份,數據庫中的數據被拷貝到了其他磁盤上,但是在下一時刻我們又對被備份的數據進行了修改操作,因此在備份動作結束后,后備副本上所保存的數據已經不是我們修改過的數據了[2]。所以,我們在對數據庫采用動態(tài)備份動作時,應把我們對數據庫在備份期間的所有修改動作記錄下來建立一個日志文件,此時,某一磁盤上的后備副本與建立的日志文件結合即能達到數據庫恢復到某一時刻正確狀態(tài)的目的。
在對計算機數據庫進行備份時,計算機所有者通過手工操作或者SQL Server Agent動作、在預先設定的任何一天的任何時刻均可以完成SQL Server的備份。根據數據庫備份的時間可將備份分為周期性數據庫的備份以及不定期的數據庫備份兩類。其中不定期的數據庫備份動作一般是造數用戶對數據庫做某些修改之后進行的。
2.3.1 周期性數據庫備份
計算機數據庫備份動作及耗費時間又耗費計算機資源,因此不適合進行頻繁的備份動作。在對數據庫進行數據備份時,應在詳細全面了解了數據庫的使用情況之后制定一個切合實際的備份周期[3]。由于對數據庫進行備份動作將會降低數據庫的使用性能,所以實際上的數據庫備份周期應根據所需數據的特性而定,具體見表2.
表2 備份周期與數據的關系
目前大多數計算機所有者經常使用的數據庫備份方案為在每日、每周、每月都對數據庫進行一次備份動作。對數據庫進行的每日備份文件可以適當保存一個月左右的時間;對于每周一次的數據庫備份,其備份文件應保存較長的一段時間(比如一年左右);而每月一次的數據庫備份文件具有較高的價值,應永久保存。數據庫備份的文件其保存處應具備安全性(比如防火措施好或者距離機房較遠的保存處)。
2.3.2 數據庫不定期的備份
除了對數據庫進行周期性備份以外,在對數據庫中的某些數據進行修改動作以后也應進行不定期的數據庫備份:(a)對計算機數據庫進行創(chuàng)建、修改、刪除等動作;(b)在數據庫中創(chuàng)建了用戶自定義對象的情況;(c)對數據庫進行增加或刪除服務器的系統(tǒng)存儲動作等。在以上動作發(fā)生后應對數據庫進行不定期備份動作。
我們在運行數據庫時,一些對數據庫產生不良影響的故障時常發(fā)生,如惡意破壞、軟件錯誤、電源故障以及磁盤損壞等情況,均有可能破壞數據中的數據。數據庫的可恢復性為在數據庫遭到損壞時能夠依據某種途徑恢復到最近一個正確的狀的能力。
數據庫具有可恢復性的基本原則是數據庫重復存儲,能夠實現(xiàn)計算機數據庫恢復的具體方法分為以下兩種:
(1)通過轉儲和建立日志的方式實現(xiàn)數據庫的恢復。這種方法簡單說來即為對計算機數據庫進行周期性地進行復制,如一天一次,將數據庫拷貝到其他的存儲載體。
(2)在數據庫發(fā)生故障情況時,這種情況下的數據庫恢復應分兩種情況:(a)如果計算機數據庫僅僅是部分被破壞,某些數據可疑,此時只需要對日志庫實行撤銷動作,將所有對數據庫的不可靠的修改撤銷,即可把數據庫恢復到正確的狀態(tài);(b)如果數據庫遭到徹底的損壞,因為此時的計算機數據庫已經不能正常運行,就需要將存儲后備副本的磁盤等載體裝入計算機,對日志庫實行重做動作,然后重新處理新、舊數據庫的所有更新,即可實現(xiàn)數據庫的恢復,并且不會丟失對數據庫的更新操作[4]。
計算機數據庫產生的故障類型具體可以分為事故故障、系統(tǒng)故障以及介質故障等。其中數據庫的又可分可以預期的事務故障以及非預期的事務故障;系統(tǒng)故障是指導致數據庫停止正常運行的故障情況;介質故障是指由存儲有數據的磁盤等載體引體的故障。
數據庫的恢復模式可以分為簡單恢復、完全恢復以及批日志恢復三類。其中的簡單數據庫恢復是指在對計算機數據庫進行恢復時對數據庫事務日志沒有涉及,而只是使用了數據庫備份;完全數據庫恢復是指在對數據庫進行恢復時使用了數據庫備份和事務日志備份的結合形式;批日志數據庫恢復的優(yōu)勢在于能夠最大程度的減少數據庫恢復時所需的存儲空間[5]。
隨著計算機技術的廣泛使用,人們對計算機的依賴程度越來越高。其中數據庫的備份和恢復技術對于人們使用數據庫的安全性具有非常重要的意義,使得人們在放心享受計算機使用的同時,而不必擔心數據的損壞和丟失。
[1]詹英.基于SQLServer的數據庫備份恢復策略[J].計算機時代,2007(12):23-24.
[2]周楊.淺析MS SQLServer數據庫恢復技術[J].中國教育信息化,2008:83-84.
[3]李輝康.應用項目數據庫應急備份與恢復方法的研究[J].西鐵科技,2008(2):13-15.
[4]于泗波,張雪英.SQLServer2000數據庫備份與恢復系統(tǒng)的設計與實現(xiàn)[J].科技情報開發(fā)與經濟,2008(1):159-161.
[5]王新寧.醫(yī)院信息網絡MSSQL Server數據庫數據恢復的研究[J].中國數字醫(yī)學,2008(3):46-47.