(福山熱力集團有限公司 山東 煙臺 264000)
摘要:隨著計算機應用領域的擴大,人們對其的依賴程度越來越高,因此數據安全問題顯得日益重要。對數據庫的備份和恢復做了一些研究和探討,使人們對其有了進一步的了解。有效的備份和恢復能很好地解決數據安全問題,解決了計算機應用的安全隱患。
關鍵詞: 計算機 數據庫 備份 恢復
計算機的廣泛應用對整個人類社會的發展產生重大的影響,同時也不可避免地帶來了一些新的問題,比如數據資料存儲的安全問題。由于計算機系統的故障(硬件故障、軟件故障、網絡故障、進程故障和系統故障)影響數據庫系統的操作,影響數據庫中數據的正確性,甚至破壞數據庫,使數據庫中全部或部分數據丟失,嚴重地干擾了正常的人類社會生活。數據安全已成為當今社會的一個焦點問題,為了保障數據資料的安全,數據庫的備份和恢復就顯得尤其重要,本文將對這一領域進行一些探討和研究。
1 數據庫的備份
1.1 備份的定義數據庫備份是指系統管理員定期或不定期地將數據庫部分或全部內容復制到磁帶或另一個磁盤上保存起來的過程。這些復制的數據拷貝稱為后備副本。當數據庫遭到破壞時,可以利用后備副本進行數據庫的恢復,但只能恢復到備份時的狀態。要使數據庫恢復到發生故障時刻前的狀態,必須重新運行自備份以后到發生故障前所有的更新事務。
在建立和使用數據庫系統的過程中,會不斷地向系統存儲和更新各種重要的數據,其中包括為系統創建的各種數據庫對象。在使用計算機系統時,最不愿意發生的事情就是在沒有最近備份的情況下遭遇數據丟失或破壞,不論這些數據是數據庫中的數據,還是編程代碼或其他文件。一旦數據庫遭到破壞,就需要花很大的工作量來進行恢復。而隨著時間的推移,存儲數據量的逐步增加,數據被破壞或丟失后重新修復的可能性就越小。正確、及時地進行數據備份能減少數據丟失后恢復數據庫的工作量。所以為了避免數據在災難后無法恢復,必須對數據庫進行備份。
1.2 備份的分類備份可分為靜態備份和動態備份:① 備份期間不允許對數據庫進行任何存取、修改活動的備份方式稱為靜態備份。② 備份期間允許對數據庫進行存取或修改,即備份和用戶事務可以并發執行的備份方式稱為動態備份。
靜態備份簡單,但是備份必須等待用戶事務結束才能進行,新的事務也必須等待備份結束才能執行。顯然,這會降低數據庫的可用性。
動態備份可克服靜態備份的缺點。但是,動態備份結束后,后備副本上的數據并不能保證是正確有效的。
例如,在備份期間的某時刻,系統把數據備份到了磁帶上,而在下一個時刻,某一事務對該數據又進行了修改。備份結束時,后備副本上的數據已經是過時的數據了。因此,采用動態方式備份時,必須建立日志文件,把備份期間各事務對數據庫的修改活動登記下來。這樣,后備副本加上日志文件就能把數據庫恢復到某一時刻的正確狀態。
1.3 何時備份SQL Server的備份可以手工完成,也可以通過SQL Server Agent完成。SQL Server Agent可以在事先設定的任一天的任何時候執行備份計劃。數據庫備份分為兩種,一種是定期進行的備份,另一種是不定期的數據庫備份。不定期的備份一般是數據庫發生某些改變后進行的。
1.3.1 周期性數據庫備份備份是十分耗費時間和資源的,不能頻繁進行。應該根據數據庫的使用情況確定一個適當的備份周期。
一般而言,對于數據更新頻繁的數據庫,或者數據丟失了就很難再重新得到的數據庫,備份的頻率應該安排得較高一些。對于數據更新頻率較低,或者能夠很容易重新建立的數據庫的備份頻率可以低一些,畢竟進行備份操作將影響訪問數據庫的性能。
一種經常采用的備份方案是:每月、每周、每日都進行一次備份。每月一次的備份,要么在月初,要么在月末,這個備份可以永久保存。每周一次的備份,它應該保存一段時期,比如一年。每日的備份,應該保存一個月。備份應該保存在一個安全地方,比如防火、距離機房較遠的地方。
1.3.2 數據庫不定期的備份在數據庫發生以下改變后,應該進行數據庫的備份。① 創建、修改、刪除數據庫前應該備份數據庫。例如執行 CREATE 用 DATABASE、ALTERDATABASE和DROP DATABASE命令等。② 創建了用戶自定義對象。因為創建了用戶自定義對象,master數據庫就會被修改,因此,必須備份master數據庫。③ 增加或刪除服務器的系統存儲過程。④ 修改了master、msdb、model數據庫。⑤ 清除事務日志或執行了不寫入事務日志的操作。
2 數據庫的恢復
2.1 數據庫恢復的定義在數據庫系統運行時,可能會出現各種各樣的情況,比如磁盤損壞、電源故障、軟件錯誤和惡意破壞等。
在發生故障時,數據庫中的數據很可能丟失或遭到破壞。sQL Server系統采取一系列措施保證在任何情況下保持事務的原子性和永久性,確保數據盡可能不丟失、不破壞。系統能把數據庫從被破壞、不正確的狀態恢復到最近一個正確的狀態,DBMS的這種能力稱為數據庫的可恢復性。
2.2 數據庫恢復的基本原則和恢復方法要使數據庫具有可恢復性,其基本原則很簡單,就是冗余,即數據庫重復存儲。數據庫恢復的具體實現方法如下:
、 轉儲和建立日志。周期性地(比如一天一次)對整個數據庫進行復制,轉儲到另一個存儲介質中。
、谝坏┌l生數據庫故障,分兩種情況進行處理。
如果數據庫已被破壞,例如,磁頭脫落、磁盤損壞等,這時數據庫已不能用了,就要裝入最近一次復制的數據庫備份到新的磁盤,然后利用日志庫執行重做(REDo)處理,將這兩個數據庫狀態之間的所有更新重新處理一遍。這樣既恢復了原有的數據庫,又沒有丟失對數據庫的更新操作。
如果數據庫未被破壞,但某些數據不可靠,受到懷疑。例如,程序在批處理修改數據庫時異常中斷。這時不必去復制存檔的數據庫,只要通過日志庫執行撤銷(UNDO)處理,撤銷所有不可靠的修改,把數據庫恢復到正確的狀態就可以了。
2.3 故障類型和恢復模式數據庫的故障可以用事務的故障表示,也就是數據庫的故障具體體現為事務執行的成功與失敗。
2.3.1 常見的故障
、 事務故障。事務故障又可分為兩種:一類是可以預期的事務故障。另一類是非預期的事務故障。
、 系統故障。引起系統停止運轉隨之要求重新啟動的事件稱為系統故障。
、劢橘|故障。在發生介質故障和遭受病毒破壞時,磁盤上的物理數據庫遭到毀滅性破壞。
2.3.2 數據庫恢復模式
、 簡單恢復。簡單恢復就是指在進行數據庫恢復時僅使用了數據庫備份或差異備份,而不涉及事務日志備份。
、 完全恢復。完全數據庫恢復模式是指通過使用數據庫備份和事務日志備份,將數據庫恢復到發生失敗的時刻,因此幾乎不造成任何數據丟失。
、叟罩净謴。在性能上批日志恢復要優于簡單恢復和完全恢復模式。它能盡最大努力減少批操作所需要的存儲空間。
3 結束語
本文針對計算機數據庫的備份和恢復問題做了一些研究,為廣大計算機從業人員提供了一些數據安全維護方面的知識,使人們在享受計算機帶給我們方便快捷的同時,不必再擔心數據資料的丟失和損壞。
參考文獻: [1]薩師宣;數據庫原理.高等教育出版社;2005;[2]常春燕;SQL Server中數據備份策略的研究與應用[J];太原科技大學;2008,29(4) ;[3]何亮;基于SQL Server的數據庫備份與還原[J];信息與電腦;2010,(8) ;[4]鄧文艷;SQL Server數據庫備份和還原[J];山西財經大學學報;2007,(2) ;[5]文瑞映;ORACLE數據庫的備份與恢復[J];電腦知識與技術;2006年23期.