【摘要】 大型數據庫Oracle的恢復和備份中,備份和恢復是兩個互相聯系的概念。數據庫處于非歸檔模式下常使用脫機備份。本文研究如何利用脫機備份,在數據庫處于mount狀態(tài)下恢復數據庫信息,并利用Oracle數據庫的重做日志文件對上次備份后的數據更新進行自動恢復的過程。
【關鍵字】 .dbf數據文件 脫機備份 Oracle mount狀態(tài)
一、前言
備份和恢復是兩個互相聯系的概念,備份就是將數據信息保存起來;而恢復則是當意外事件發(fā)生或者某種需要時,將已備份的數據信息還原到數據庫系統(tǒng)中去。
備份分為物理備份和邏輯備份。其中,物理備份是拷貝數據庫文件而不是其邏輯內容,物理備份又分為冷備份與熱備份。
冷備份是在數據庫保持關閉狀態(tài)下,把數據庫的物理文件復制到其他地方保存起來以備后用的過程。本文主要關注大型數據庫Oracle的脫機備份及數據庫出現故障后的恢復過程。
二、脫機備份特點
脫機備份又稱為冷備份,是在數據庫已經正常關閉后進行的備份。它直接備份數據庫的相關文件,包括數據文件,控制文件等,適應于適用于數據庫處于非歸檔模式下。冷備份發(fā)生在數據庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的數據庫。冷備份是將關鍵性文件拷貝到另外位置的一種說法。對于備份Oracle 信息而言,冷備份較安全的方法。
冷備份的優(yōu)點:
是非??焖俚膫浞莘椒ǎㄖ恍杩截愇募?;容易恢復到某個時間點上(只需將文件再拷貝回去);能與歸檔方法相結合,作數據庫“最新狀態(tài)”的恢復;低度維護,高度安全。
冷備份的不足:
單獨使用時,只能提供到“某一時間點上”的恢復;在實施備份的全過程中,數據庫必須要作備份而不能作其它工作。也就是說,在冷備份過程中,數據庫必須是關閉狀態(tài);若磁盤空間有限,只能拷貝到磁帶等其它外部存儲設備上,速度會很慢;不能按表或按用戶恢復。
冷備份中??截惖奈募ǎ?.所有數據文件2.所有控制文件3.所有聯機REDO LOG 文件4.初始化參數文件InitSID.ora 文件 5.本地口令驗證文件 PWDSID.ora。本文以數據文件按.dbf文件為例進行Oracle數據庫的備份和恢復。
三、實施與實驗驗證
當數據文件出現介質故障時,利用之前已經拷貝的數據文件(.dbf文件),實現數據庫的恢復。該恢復以在 mount狀態(tài)下恢復為主。具體步驟:
關閉數據庫,備份已有的數據文件。
重新裝載并打開數據庫。對數據庫進行操作,創(chuàng)建一張新表,插入一條記錄。
重新關閉數據庫,將其中的數據文件刪除。
裝載數據庫,讓數據庫處于mount狀態(tài)。打開數據庫,此時系統(tǒng)會報錯,說明已經丟失一個數據文件,并告知丟失的數據文件的號。
將已經轉儲的數據文件復制回Oracle。
進行數據文件恢復操作。重新打開數據庫。
登陸Oracle,查詢新增加的數據表,發(fā)現找回。原因是Oracle利用重做日志文件對上次備份后的數據更新進行自動恢復。
四、實驗驗證
4.1 數據文件的備份
以sysdba身份登陸,關閉數據庫,關閉后脫機備份已有數據文件c:\101.dbf。注意:若沒有該數據文件,請執(zhí)行代碼:create tablespace t1 datafile ‘c:\101.dbf size 10m。
重新裝載并打開數據庫:以system 身份登陸,創(chuàng)建新表:testtable1,并插入一條記錄。
第二次關閉數據庫,刪除已經備份的數據文件c:\101.dbf, 通過Startup mount命令重新裝載數據庫,讓數據庫處于mount 狀態(tài)。通過alter database open ,嘗試打開數據庫。發(fā)現出現錯誤,提示為無法鎖定數據文件c:\101. dbf。
4.2 數據庫恢復
通過Shutdown immediate再次關閉數據庫。將備份的數據文件101.dbf 拷貝到原始目錄下,本例為c:\。注意該數據文件備份的節(jié)點為創(chuàng)建測試表testtable1之前,即該數據文件中沒有表testtable1的信息。如需要介質恢復,則通過命令recover datafile ‘c:\101.dbf 進行介質恢復,并驗證數據庫是否恢復正常。
發(fā)現物理備份的101.dbf中應該沒有備份后故障前的信息,即測試表testtable1 信息,但恢復后該信息依然在,這是后援副本+日志文件的力量。
四、總結
Oracle數據庫的物理文件主要包括配置文件、數據文件、控制文件、重做日志文件和歸檔日志文件等,對于大型分布式數據庫來說,隔一段時間的物理備份是必要的,本文研究了Oracle數據庫的數據文件的備份和恢復,為提高數據庫的容災性能提供了保障。
參 考 文 獻
[1] 王立君.并行多媒體數據庫中基于內容的高效檢索的數據分配方法的研究. [J]科學技術與工程,2013.13(9),2544-2548.
[2] 郭晉秦, 韓 焱. 大型數據庫聚類中偽裝危險數據識別方法研究. 計算機仿真 2015.433-436 32(11)
[3] 徐洪麗,王志軍.認知策略與知識結構化的研究與應用-以大型數據庫學習為例. 高教學刊. 2016.3 73-74.
[4] 李亞龍, 朱巖. 表分區(qū)在分界開關監(jiān)控系統(tǒng)數據庫的應用.2016(25)2: P235-237
[5] 史斌.大型數據庫管理系統(tǒng) Oracle 體系結構. 電腦編程技巧與維護. 2010.18:p72-74