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