摘要 介紹數據庫備份與恢復的重要性,詳細地闡述數據庫的備份與恢復的基本概念以及備份與恢復的類型。
關鍵詞 Oracle;數據庫;備份;恢復
中圖分類號:TP311.138 文獻標識碼:A 文章編號:1671-489X(2008)20-0113-02
1 引言
數據庫技術在信息化建設中的地位越來越重要,保障數據庫中數據的安全是一件非常重要的工作。自然災害、人為破壞或系統本身潛在的破壞性因素都可能引起數據的破壞或丟失,導致業務活動無法正常進行,嚴重時甚至會使應用系統陷入癱瘓。另外,隨著系統運轉時間的增加,數據量會急劇增長,計算機不可能在任何時刻都容納得下全部內容。如果沒有可靠的數據備份和恢復機制,則可能造成災難性的后果。
2 備份與恢復概述
2.1 備份簡單地說,備份是對數據的復制,復制內容包括數據庫的重要部分,如控制文件、數據文件、歸檔日志數據,是防止數據意外丟失、保持數據完整性和一致性的數據庫保護措施。
備份分為物理備份和邏輯備份。物理備份就是復制物理的數據文件,將實際組成數據庫的操作系統文件從一處拷貝到另一處的備份過程,它涉及到組成數據庫的文件,但不考慮其邏輯內容。邏輯備份是將數據從數據庫中抽取出來存在一個二進制的文件中,這些數據的抽取與其所處位置無關。數據庫邏輯備份是物理備份的補充。
2.2 恢復通常意義上的數據庫恢復包括2種,一種是數據庫還原,一種是數據庫恢復。還原一個數據庫是指使用物理備份重建數據庫并使之可用;恢復一個還原后的數據庫是指利用重做日志,接收其中所記錄的數據變化。
使用還原還是恢復,一般取決于數據庫發生的具體問題。如果數據庫已經完全崩潰,無法啟動或者操作系統層面上出現問題,僅依靠數據恢復是無法解決的,這時就必須進行數據還原操作。而如果是數據庫層面上出現非崩潰性的問題,一般采取數據恢復就可以解決問題。數據還原要求系統最好有全部數據庫的一致性的物理備份,而且越新越好。這種備份一定都是離線的冷備份,在一些要求7×24高可用的運行環境中,發生的頻率極低,因而在使用最新的一次物理備份還原數據庫后,還需要使用重做日志進行數據恢復。
2.3 數據備份與恢復應遵循的原則[1]1)方案要可靠,要確保數據安全;2)技術可行,經濟實用;3)宕機成本要足夠小;4)方案實施和運行時最好不要影響系統的正常運行,盡量不要手工干預,應自動執行。
3 備份與恢復的類型
3.1 備份類型Oracle的備份與恢復有3種標準的模式,大致分為2大類:物理備份和邏輯備份。而物理備份又可以根據數據庫的工作模式分為非歸檔模式和歸檔模式。通常把非歸檔模式稱為冷備份,而相應的把歸檔模式稱為熱備份[2]。
1)冷備份。冷備份是利用操作系統的拷貝功能來實現的,在數據庫關閉的情況下,可以將數據庫中的所有文件進行復制,一旦數據庫出現故障,可以將這些拷貝過的文件重新覆蓋到原文件位置。這種備份可將數據庫恢復到它被關閉前的狀態。數據庫可使用的每個文件都被備份下來,包括數據文件、控制文件、聯機日志文件及INIT.ORA 文件。
冷備份必須是數據庫關閉的情況下完成,當數據庫運行的時候,執行數據庫文件冷備份無效。
2)熱備份。通常情況下,數據庫需要每天24小時運行。由于隨時都有新的數據加入,數據丟失將影響整個項目運作,因此需要在保證用戶訪問的同時實現備份,這時就采取熱備份的方式。這種備份可將數據庫恢復到任一時間點的狀態,前提是數據庫要在自動歸檔的方式下運行。一旦數據庫運行在歸檔狀態下,就可以做備份。
熱備份可以在數據庫打開的情況下進行,一般通過使用Alter命令改變表空間的狀態來開始進行備份。備份完成后,要恢復到原來的狀態,否則redolog會錯配,在下次啟動數據庫時引起表空間的修改。熱備份要在數據庫不使用或使用率較低的情況下進行,同時需要大量的存儲空間。
3)導入/導出備份。導入/導出可以將Oracle中的數據移入/移出數據庫。Oracle的Export實用程序用來讀取數據庫和把輸出寫入一個叫做導出轉儲文件的二進制文件中,該文件保存數據庫模式對象的信息,可以導出整個數據庫、指定用戶或指定表。在導出期間可以選擇是否導出與表相關的數據字典信息,如權限、索引和與其相關的約束條件。Export所寫的文件包括完全重建全部被選對象所需的命令。該文件在需要的時候能重新生成數據庫。
導入是導出的逆過程。導入時先讀取導出的轉儲二進制文件并運行,以恢復數據庫。導入命令執行的方法和導出方案有關。如果導出所實施的是完全導出方案,則在導入時所有的數據對象,包括表空間、數據文件,用戶都會在導入時創建,但考慮到數據庫中的物理布局,預先創建表空間和用戶是有用的。如果導出使用的是增量/積累方式,則需要預先設置好表空間、用戶及數據文件。
4)幾種備份方式的比較。邏輯備份的優點是能按表或按用戶來備份及恢復數據;缺點是不能結合歸檔日志做數據庫“最新狀態”的恢復,對大數據量的備份支持不好。
冷備份的優點是快速、操作容易,能與歸檔日志相結合,做數據庫“最新狀態”的恢復維護管理簡單;缺點是在備份的過程中,數據庫必須是關閉狀態,除了備份不能做其他工作,不能按表或按用戶來備份及恢復。
熱備份的優點是備份及恢復的速度較快,備份時數據庫仍可使用,無須停止應用服務,支持二級增量備份,能與歸檔日志相結合做數據庫“最新狀態”的恢復;缺點是要求數據庫在歸檔二模式下進行,需要大量的檔案空間。
3.2 恢復類型
1)實例和崩潰恢復。實例恢復是指在Oracle真正應用集群數據庫中多個實例中的部分發生錯誤而關閉,而其余實例仍可正常使用時,正常使用的實例接收失敗實例中的事務信息,并在其上重新實現。
數據庫崩潰是指一個單實例數據庫發生實例錯誤或Oracle真正應用集群數據庫的所有實例發生錯誤而引起的數據庫非正常關閉。數據庫崩潰是操作系統層面上數據庫實例進程發生錯誤,不同于使用ABORT選項關閉數據庫。后者雖然也需要進行實例恢復,但仍屬于數據庫“正常”關閉。
實例和崩潰恢復的主要目的是還原失敗實例中緩存上記錄的事務信息和關閉仍然打開的重做線程。這種恢復僅使用在線重做日志和當前處于在線的數據文件,而且自動接受重做信息,不需要用戶干預,也就是說Oracle內部機制在發生實例或崩潰錯誤后,在數據庫下次啟動過程中自動進行數據恢復。
Oracle在一個實例失敗后,自動進行實例恢復。實例恢復包括兩個操作:前滾和回滾。前滾,即執行聯機重寫日志來使備份更接近當前狀態;回滾,即還原未提交事務中的修改。
2)介質恢復。介質恢復是當存放數據庫的介質出現故障時所做的恢復。根據數據庫的恢復程度,恢復方法分為完全恢復和不完全恢復兩種類型。完全恢復是將數據庫恢復到數據庫失敗時數據庫的狀態。這種恢復是通過裝載數據庫備份并應用全部的重做日志做到的。不完全恢復是將數據庫恢復到數據庫失敗前的某一時刻數據庫的狀態。這種恢復是通過裝載數據庫備份并應用部分重做日志做到的,進行不完全恢復后須在啟動數據庫時用resetlogs選項重設聯機,重做日志。
4 結束語
Oracle數據庫在各企業的應用越來越廣泛,數據備份將成為維護數據庫系統安全的重點工作。設計備份方案策略時,應充分考慮到當數據庫失效后如何確保數據盡量少丟失,從而使數據庫具有最大可恢復性,以及使恢復時間盡量縮短,效率最高。
參考文獻
[1]李春林,張文體,周根鴻.一種簡便易行的Oracle 數據備份恢復策略[J].醫學信息,2007,20(3):375-376
[2]王健.Oracle數據庫的備份與恢復策略研究[J].計算機安全,2007(2):26-28