張錦賢
摘 要
當前,信息系統已經滲透到高校各個部門的日常工作。隨著信息系統使用時間越來越長,積累的數據量越來越大。龐大的數據量一旦丟失或是受到攻擊而破壞將會給所在單位造成工作的混亂或重大經濟損失。因此,對數據進行有計劃的備份在數據丟失或是受損時可以及時恢復數據,減少不必要的麻煩或經濟損失。數據庫備份也是每個數據庫管理員最基本的常規工作,以便于數據在丟失時及時恢復到理想的狀態。本文主要闡述了oracle數據庫備份的不同方法。并且通過案例分析敘述,數據庫備份方法在實際中的應用。
【關鍵詞】Oracle數據庫 備份
EMC公司在2015年公布了一項全新的全球數據保護研究報告。報告揭示,在過去12個月中,企業因數據丟失和宕機造成的損失達1.7萬億美元,這一數字或相當于近50%的德國GDP。自2012年起,數據丟失上升了400%。同時,令人驚訝的是,71%的組織對他們在中斷之后的恢復能力仍然缺乏足夠的自信。數據的重要性就如:美國人認為除了上帝,其他任何人都必須用數據說話,人類與大自然交流,數據是唯一的語言。小到工廠管理,大到科學研究,無不需要數據給我們指明前進的方向,在美國的太空研究中,花費數十億美元也只是為了這小小的數據。可見,不管在生活中,或者是工作中,數據都起到了很大的作用。其次,數據丟失所造成的經濟損失也是難以估量的。確保數據在丟失之后能及時得到恢復首先要做好全方面的數據備份工作。
1 Oracle數據庫的備份方法
1.1 邏輯備份
邏輯備份是利用導出程序從數據庫中抽取數據并存于二進制文件的過程。它能夠針對行對象進行備份,能夠跨平臺實施備份操作并遷移數據,數據庫可以不關閉。
EXP和IMP是Oracle提供的一種邏輯備份工具。邏輯備份創建數據庫對象的邏輯拷貝并存入一個二進制轉儲文件。這種邏輯備份需要在數據庫啟動的情況下使用,其導出實質就是讀取一個數據庫記錄集(甚至可以包括數據字典)并將這個記錄集寫入一個文件,這些記錄的導出與其物理位置無關,導入實質就是讀取轉儲文件并執行其中的命令。此備份方式是通過Oracle的實用工具import和export來實施。export是把數據庫中的數據導出,import是把export導出的數據導入數據庫中。通過此工具可以衍生出多種功能, 比如整個數據庫的備份、表結構重建、數據的傳輸、用戶的改變等。
Oracle Export/Import工具提供了靈活多樣的功能和導出/導入模式,最常使用的三種模式是User、table和full database.除此以外,還可以在導出/導入時決定是否包含與對象有關的數據字典信息,如索引、約束、權限等。
通過邏輯備份可以備份整個數據庫, 或僅備份部分重要數據。因為是邏輯上的備份,故只能用于邏輯的恢復數據, 一旦數據庫被物理損壞, 導致不能啟動,邏輯備份的數據不能幫助恢復數據庫。
1.2 物理備份
物理備份是將實際組成數據庫的操作系統文件從一處拷貝到另一處的備份過程,通常是從磁盤到磁帶。物理備份又分為冷備份、熱備份。
當數據庫可以暫時處于關閉狀態時,我們需要將它在這一穩定時刻的數據相關文件轉移到安全的區域,當數據庫遭到破壞,再從安全區域將備份的數據庫相關文件拷貝回原來的位置,這樣,就完成了一次快捷安全的數據轉移。由于所在數據庫不提供服務的關閉狀態,所以稱為冷備份。冷備份具備方便,高效,快速的特點。但是它單獨使用時,只能提供到某一時間點上的恢復,不能按表和按用戶恢復,而且必須關閉數據庫。
當我們需要做一個精度比較高的備份,而且數據庫不可能停掉(少許訪問量)時,我們就需要在歸檔方式下的備份,這個時候可以考慮采取熱備份。熱備份可以非常精確的備份表空間級和用戶級的數據,由于它是根據歸檔日志的時間軸來備份恢復的,理論上可以恢復到前一個操作,甚至就是前一秒的操作。
2 數據備份案例
以學校一卡通數據庫備份為例闡述數據庫備份的方式的實際應用。學校一卡通數據庫承載著學校一萬多位學生,每天至少每人三次的使用頻率的數據。一旦數據遭到破壞或者丟失,對于學校財務的影響相當大。毋庸置疑,要做好數據的備份工作。根據學校軟硬件的情況,綜合考慮,采取以下的方式跟步驟進行備份:
一、考慮到學校一卡通系統每天凌晨進行日結,大概耗時一個半小時,而數據庫備份大概耗時半個小時,所以我們將每天自動備份的時間設置在凌晨的兩點鐘。
二、由于備份的服務器是windows系統,所以我們使用windows系統自帶的任務計劃功能完成。操作步驟如下:
(1)點擊開始菜單--選擇控制面板- --選擇計劃任務--新創建一個計劃任務—輸入任務計劃的名稱為一卡通數據庫備份;
(2)切換到操作并點擊新建,在程序或腳本中選擇我們事先寫好的備份腳本bat文件;
(3)切換到觸發器,點擊創建,在執行時間里面設置每天凌晨兩點自動執行。
完成以上步驟,windows系統便會在每天凌晨兩點自動執行數據庫備份腳本。
數據庫備份腳本解析
一卡通系統共有三個數據庫,分別是錢包數據庫,身份數據庫和收費數據庫,數據庫備份腳本對三個數據庫分別進行備份,考慮到數據量比較大,把數據庫數據備份成多個dmp文件,每個文件大小為1G,具體腳本如下:
@echo "開始備份錢包數據庫"
exp school/password@syntong file=school1.dmp,school2.dmp,school3.dmp,school4.dmp filesize=1024m log=school.log owner=school
@echo "開始備份身份數據庫"
exp iddbuser/ password @iddbsvr file=iddbuser1.dmp,iddbuser2.dmp,iddbuser3.dmp,iddbuser4.dmp log=iddbuser.log filesize=1024m owner=iddbuser
@echo "開始收費數據庫"
exp fee/ password @syntong file=fee1.dmp,fee2.dmp,fee3.dmp,fee4.dmp log=fee.log filesize=1024m owner=fee
3 數據庫恢復測試
準備一臺恢復測試服務器,該服務器要和源備份主機操作系統類型一致,oracle版本一致,數據庫實例名一致。由于備份生成的是dmp文件,數據庫管理員恢復數據時直接使用第三方oracle客戶端plsql developer進行數據庫還原操作。
首先用plsql developer連接恢復測試服務器上的Oracle,需要恢復哪個用戶下的數據,就必須使用哪個用戶的賬號密碼登錄。登陸成功后,在PL/SQL Developer的菜單Tools(工具) => 導入表 中出來一個對話框界面。選擇Oracle導入,
在導入可執行文件中選擇Oracle安裝目錄下的imp.exe文件。
在導入文件中選擇需要恢復dmp文件,點擊導入,即可等待數據庫恢復完成。
恢復完所有的dmp文件后,檢查表和數據是否完整,如果完整,說明已經成功完成備份與恢復數據庫。
4 結束語
為了更好的管理數據,維護數據庫的完整性,可恢復性。數據庫在受到破壞的同時能得到及時恢復,數據庫管理員務必養成良好的數據庫備份習慣。
參考文獻
[1]王瑛,張玉花,李祥勝,李曉黎,編著.oracle數據庫基礎教程[M].北京:人民郵電出版社,2008(10).
[2]王海亮,等,著.精通Oracle10g備份與恢復[M].北京:中國水利水電出版社,2005(01).
作者單位
廣州康大職業技術學院網絡中心 廣東省廣州市 511363