摘 要:確保數(shù)據(jù)庫(kù)安全運(yùn)行的前提和基礎(chǔ),數(shù)據(jù)庫(kù)的備份與恢復(fù)是其中必不可少的因素。隨著Oracle數(shù)據(jù)庫(kù)的應(yīng)用范圍的擴(kuò)大和重要數(shù)據(jù)的增多。我們需要增強(qiáng)對(duì)Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)的備份與恢復(fù)的重視程度。基于此點(diǎn),文章將就Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)的備份與恢復(fù)策略等方面的問(wèn)題進(jìn)行淺談。
關(guān)鍵詞:Oracle數(shù)據(jù)庫(kù);備份;恢復(fù)
引言
Oracle數(shù)據(jù)庫(kù)作為主流數(shù)據(jù)庫(kù)之一,是一個(gè)能支持各種操作系統(tǒng)和硬件平臺(tái)功能極其強(qiáng)大和靈活的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)。Oracle數(shù)據(jù)備份是維護(hù)數(shù)據(jù)庫(kù)系統(tǒng)安全的重點(diǎn)工作,廣泛應(yīng)用在世界各地。一般在正常情況下,Oracle數(shù)據(jù)庫(kù)能夠使數(shù)據(jù)的安全和系統(tǒng)保證穩(wěn)定,為用戶提供正常便利的服務(wù),但是會(huì)在一定程度上影響到數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性和安全性,受到計(jì)算機(jī)系統(tǒng)存在的安全問(wèn)題的影響,會(huì)導(dǎo)致數(shù)據(jù)庫(kù)的破壞和其中數(shù)據(jù)的丟失等后果發(fā)生,嚴(yán)重的甚至?xí)?dǎo)致系統(tǒng)癱瘓。因此,制定完善的數(shù)據(jù)庫(kù)安全策略,以避免因數(shù)據(jù)丟失造成的嚴(yán)重?fù)p失就顯得尤為重要。Oracle數(shù)據(jù)庫(kù)的備份與恢復(fù)是最基本的措施,也是最有效的數(shù)據(jù)庫(kù)保護(hù)措施之一。
1 產(chǎn)生Oracle數(shù)據(jù)庫(kù)故障的原因
數(shù)據(jù)庫(kù)處于危險(xiǎn)時(shí)會(huì)造成許多無(wú)法估量的損失。因此,我們首先需要明確是由什么導(dǎo)致數(shù)據(jù)故障產(chǎn)生的,從而對(duì)癥下藥,找到合理的解決方法。就目前的研究現(xiàn)狀而言,數(shù)據(jù)產(chǎn)生故障的原因有:(1)由邏輯錯(cuò)誤引發(fā)的語(yǔ)句故障;(2)因用戶進(jìn)程非常態(tài)運(yùn)行造成的進(jìn)程故障;(3)由用戶非正常操作導(dǎo)致的用戶故障;(4)主要是后臺(tái)進(jìn)程造成的實(shí)例故障;五,由數(shù)據(jù)庫(kù)文件發(fā)生物理?yè)p壞導(dǎo)致的介質(zhì)故障。其中實(shí)例故障是數(shù)據(jù)庫(kù)中較為常見(jiàn)的故障類型之一。
2 備份恢復(fù)
2.1 備份恢復(fù)的概念
Oracle數(shù)據(jù)庫(kù)備份主要是針對(duì)數(shù)據(jù)庫(kù)內(nèi)所有數(shù)據(jù)和控制文件進(jìn)行的備份工作。此項(xiàng)工作是保證數(shù)據(jù)庫(kù)安全運(yùn)行的重要環(huán)節(jié)之一,同時(shí),是數(shù)據(jù)庫(kù)管理人員的主要工作職責(zé)。Oracle數(shù)據(jù)庫(kù)包括多種備份恢復(fù)方式,主要由邏輯備份恢復(fù)與物理備份恢復(fù)兩種類型組成。邏輯備份和恢復(fù)從指定的備份集將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)或是用Oracle提供的導(dǎo)入導(dǎo)出工具將數(shù)據(jù)庫(kù)中的邏輯數(shù)據(jù)導(dǎo)出到指定的備份集。邏輯備份產(chǎn)生的備份集較小,可以節(jié)省存儲(chǔ)空間的占用。但是,邏輯備份和恢復(fù)在恢復(fù)時(shí)容易出現(xiàn)數(shù)據(jù)庫(kù)不一致的問(wèn)題,因此一般只適用于像測(cè)試數(shù)據(jù)庫(kù)等備份工作。物理備份與恢復(fù)則是以物理數(shù)據(jù)塊為單位,這種備份產(chǎn)生的備份集相對(duì)較大,可以完全避免出現(xiàn)數(shù)據(jù)庫(kù)一致性現(xiàn)象,所以這種方式一般適用于像生產(chǎn)數(shù)據(jù)庫(kù)等重要的數(shù)據(jù)庫(kù)備份。
2.2 數(shù)據(jù)備份與恢復(fù)應(yīng)遵循的原則
數(shù)據(jù)備份與恢復(fù)應(yīng)遵循的原則有很多,其中最重要的是要確保方案可靠,能確保數(shù)據(jù)安全;其次,要在經(jīng)濟(jì)情況允許和技術(shù)支持的前提下,量力而行,達(dá)到經(jīng)濟(jì)實(shí)用,物美價(jià)廉的效果;最后,方案實(shí)施和運(yùn)行時(shí)要保證系統(tǒng)的正常運(yùn)行,盡量避免手工干預(yù),采取自動(dòng)執(zhí)行的方法。
2.3 oracle數(shù)據(jù)庫(kù)的有效備份與恢復(fù)策略
2.3.1 備份策略
(1)聯(lián)機(jī)備份、脫機(jī)備份和邏輯備份(導(dǎo)入和導(dǎo)出)相結(jié)合。Oracle數(shù)據(jù)庫(kù)備份策略以聯(lián)機(jī)備份為主,脫機(jī)備份和邏輯備份為輔。當(dāng)物理備份(聯(lián)機(jī)備份與脫機(jī)備份)損壞時(shí),用戶可以通過(guò)重新創(chuàng)建數(shù)據(jù)庫(kù)的方法,用邏輯備份來(lái)恢復(fù)數(shù)據(jù)庫(kù)。
(2)在備份工作完成之后,用戶需要檢查備份是否成功、有效。
(3)每周盡可能進(jìn)行至少一次數(shù)據(jù)庫(kù)的脫機(jī)備份工作,提高工作效率。作為輔助成分的脫機(jī)備份,這種備份工作強(qiáng)調(diào)的是備份數(shù)據(jù),而非復(fù)制物理文件。而不定時(shí)且定期的脫機(jī)備份,不但可以節(jié)省備份用,達(dá)到高效備份策略的目標(biāo),而且,數(shù)據(jù)庫(kù)在特殊模式下可以在特定的情況下進(jìn)行聯(lián)機(jī)備份。這種備份模式有利于數(shù)據(jù)庫(kù)恢復(fù)策略靈活性的提高和減少故障時(shí)導(dǎo)致的數(shù)據(jù)丟失問(wèn)題。因此,用戶可以在每天數(shù)據(jù)庫(kù)訪問(wèn)量較少的時(shí)候進(jìn)行聯(lián)機(jī)備份,保證數(shù)據(jù)的正常、有效運(yùn)行。
(4)盡可能保存兩份或者多份的數(shù)據(jù)備份。其中,值得注意的是,在時(shí)間非緊迫狀態(tài)下,應(yīng)避免使用磁盤(pán)進(jìn)行備份。但這種方法有一定弊端,即不能代替對(duì)數(shù)據(jù)庫(kù)文件的物理備份,也不能提供完全恢復(fù)。
(5)將數(shù)據(jù)庫(kù)的工作模式設(shè)置成歸檔模式并不定期地進(jìn)行邏輯備份。具體問(wèn)題具體分析,根據(jù)數(shù)據(jù)的實(shí)際使用情況,有針對(duì)性地實(shí)施部分備份或者全備份。
(6)介質(zhì)應(yīng)存放在與計(jì)算機(jī)設(shè)備不同的地點(diǎn),使備份與計(jì)算機(jī)設(shè)備免于一同損壞。而且,備份介質(zhì)最好使用大容量的磁帶或磁帶庫(kù)。同時(shí),養(yǎng)成良好的習(xí)慣,及時(shí)、準(zhǔn)確地根據(jù)備份的內(nèi)容、日期將介質(zhì)統(tǒng)一編號(hào),避免因備份和恢復(fù)時(shí)弄錯(cuò)介質(zhì)使原有的備份丟失。
2.3.2 恢復(fù)策略
恢復(fù)策略包括備份恢復(fù)策略和向前滾動(dòng)方案兩種。其中,數(shù)據(jù)已經(jīng)過(guò)備份是備份恢復(fù)策略有效實(shí)施的前提。備份恢復(fù)方案是脫離Oracle的管理時(shí),并對(duì)數(shù)據(jù)庫(kù)中某一塊數(shù)據(jù)生成備份數(shù)據(jù)文件,然后自動(dòng)存儲(chǔ)于磁盤(pán)當(dāng)中的方案。這樣數(shù)據(jù)發(fā)生問(wèn)題時(shí),便可利用預(yù)先備份好的數(shù)據(jù)恢復(fù)到數(shù)據(jù)庫(kù)中,重新實(shí)現(xiàn)備份。而向前滾動(dòng)方案,能夠使經(jīng)過(guò)備份后的數(shù)據(jù)不丟失,并可以借助某個(gè)正常狀態(tài)進(jìn)性記憶形成日志文件。這種方法是為使數(shù)據(jù)庫(kù)恢復(fù)到正常狀態(tài)而借助存檔的重做記錄文件功能實(shí)現(xiàn)的,但成本較高。以下幾點(diǎn)是根據(jù)不同數(shù)據(jù)故障實(shí)施的措施,為用戶提供參考:
(1)如果忘記備份數(shù)據(jù)僅有歸檔日志的情況下,用戶可以采取通過(guò)重建數(shù)據(jù)文件來(lái)恢復(fù)。但值得注意的是要確保將數(shù)據(jù)庫(kù)設(shè)置為歸檔模式并且歸檔日志文件保存完整。
(2)數(shù)據(jù)庫(kù)崩潰。數(shù)據(jù)的備份有邏輯備份和物理備份之分,或分為完全備份和不完全備份兩種。數(shù)據(jù)庫(kù)崩潰可能是由磁盤(pán)和磁盤(pán)陣列的介質(zhì)不可靠導(dǎo)致的,也可能是受到病毒等因素的影響,這些因素會(huì)導(dǎo)致整個(gè)操作系統(tǒng)的崩潰,使得Oracle數(shù)據(jù)庫(kù)也隨之崩潰,造成不必要的損失。而在這種情況下用戶只能利用完全備份來(lái)進(jìn)行數(shù)據(jù)恢復(fù)工作。具體步驟:首先用戶應(yīng)該對(duì)文件系統(tǒng)進(jìn)行重建,進(jìn)而去掉失掉的壞塊,對(duì)完好的磁盤(pán)和磁盤(pán)陣列再一次進(jìn)行初始化操作,使磁盤(pán)為數(shù)據(jù)的恢復(fù)提供容量,確保磁盤(pán)和磁盤(pán)陣列的可靠性和消滅病毒,不給數(shù)據(jù)庫(kù)崩潰留機(jī)會(huì)。然后利用完全備份完整的恢復(fù)數(shù)據(jù)庫(kù)系統(tǒng),最后啟動(dòng)數(shù)據(jù)庫(kù)。其中,數(shù)據(jù)庫(kù)恢復(fù)分成實(shí)例恢復(fù)與介質(zhì)恢復(fù)兩種。實(shí)例和崩潰恢復(fù)的主要目的是還原失敗實(shí)例中緩存上記錄的事務(wù)信息,并且關(guān)閉仍然打開(kāi)的重做線程。這種恢復(fù)僅使用在線重做日志和當(dāng)前處于在線的數(shù)據(jù)文件,而且自動(dòng)接受重做信息,不需要用戶干預(yù),也就是說(shuō)Oracle內(nèi)部機(jī)制在發(fā)生實(shí)例和崩潰錯(cuò)誤后,在數(shù)據(jù)庫(kù)下次啟動(dòng)過(guò)程中自動(dòng)進(jìn)行數(shù)據(jù)恢復(fù)。
3 結(jié)束語(yǔ)
數(shù)據(jù)系統(tǒng)突發(fā)事故給用戶帶來(lái)的巨大損失,使我們應(yīng)該要意識(shí)到數(shù)據(jù)庫(kù)備份和恢復(fù)的重要性。同時(shí)需要對(duì)不同的數(shù)據(jù)故障了然于心,可以根據(jù)實(shí)際的情況制定出相關(guān)的備份策略,做出及時(shí)、有效的恢復(fù)策略。當(dāng)然最重要的是養(yǎng)成良好的習(xí)慣,勤做備份,且經(jīng)常檢測(cè)備份的有效性,防患于未然,這樣就能在工作當(dāng)中最大限度地避免數(shù)據(jù)庫(kù)損壞帶來(lái)的麻煩,輕松應(yīng)對(duì)各種情況了。
參考文獻(xiàn)
[1]李春林,張文體,周根鴻.一種簡(jiǎn)便易行的Orae1e數(shù)據(jù)備份恢復(fù)策略[J].醫(yī)學(xué)信息,2007.
[2]王健.Oracle數(shù)據(jù)庫(kù)的備份與恢復(fù)策略研究[J].計(jì)算機(jī)安全,2007.
[3]李海波.Oracle數(shù)據(jù)庫(kù)的安全及備份恢復(fù)[J].電腦知識(shí)與技術(shù),2004,(11):13-15.
[4]劉志敏.Oracle數(shù)據(jù)庫(kù)應(yīng)用管理解決方案[M].北京:電子工業(yè)出版社出版,2002.
[5]黃奕華.Oracle數(shù)據(jù)庫(kù)的備份及恢復(fù)技術(shù)的研究與應(yīng)用[A].辦公自動(dòng)化學(xué)術(shù)研討會(huì)論文集[C].2007(11).
[6]李桂祥.基于文件同步的ORACLE 數(shù)據(jù)庫(kù)備份與恢復(fù)方法[J].重慶醫(yī)學(xué),2009(33).
[7]飛思科技產(chǎn)品研發(fā)中心.Oracle基礎(chǔ)與提高[M].北京:電子工業(yè)出版社.