Oralce數(shù)據(jù)庫(kù)的災(zāi)難恢復(fù)
Oralce數(shù)據(jù)庫(kù)操作過(guò)程中出現(xiàn)的故障是很棘手的,需要及時(shí)將其解決掉,不然會(huì)給大家的工作帶來(lái)不好的影響,這就需要大家掌握一些Oralce數(shù)據(jù)庫(kù)災(zāi)難恢復(fù)的方法。隨著辦公自動(dòng)化和電子商務(wù)的飛速發(fā)展,企業(yè)對(duì)信息系統(tǒng)的依賴性越來(lái)越高,數(shù)據(jù)庫(kù)作為信息系統(tǒng)的核心擔(dān)當(dāng)著重要的角色。尤其在一些對(duì)數(shù)據(jù)可靠性要求很高的行業(yè)如銀行、證券、電信等,如果發(fā)生意外停機(jī)或數(shù)據(jù)丟失其損失會(huì)十分慘重。為此數(shù)據(jù)庫(kù)管理員應(yīng)針對(duì)具體的業(yè)務(wù)要求制定詳細(xì)的數(shù)據(jù)庫(kù)備份與災(zāi)難恢復(fù)策略,并通過(guò)模擬故障對(duì)每種可能的情況進(jìn)行嚴(yán)格測(cè)試,只有這樣才能保證數(shù)據(jù)的高可用性。數(shù)據(jù)庫(kù)的備份是一個(gè)長(zhǎng)期的過(guò)程,而恢復(fù)只在發(fā)生事故后進(jìn)行,恢復(fù)可以看作是備份的逆過(guò)程,恢復(fù)的程度的好壞很大程度上依賴于備份的情況。此外,數(shù)據(jù)庫(kù)管理員在恢復(fù)時(shí)采取的步驟正確與否也直接影響最終的恢復(fù)結(jié)果,本文主要針對(duì)Oracle數(shù)據(jù)庫(kù)可能遇到的各種故障提供了相應(yīng)的恢復(fù)的方法,僅供大家參考。
要對(duì)Oracle數(shù)據(jù)庫(kù)備份與恢復(fù)有清晰的認(rèn)識(shí),首先有必要對(duì)數(shù)據(jù)庫(kù)的幾種運(yùn)行狀態(tài)有充分的了解。Oracle數(shù)據(jù)庫(kù)的運(yùn)行狀態(tài)主要分為3種,他們依次為:
l Nomount(非安裝)Oracle只是讀取ini文件中的配置信息,并初始化SGA區(qū)。
l Mount(安裝)Oracle除了需要讀取ini文件還要讀取控制文件,并從中獲取有關(guān)數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)等信息。
l Open(打開)數(shù)據(jù)庫(kù)要檢查所有文件處于同一時(shí)間點(diǎn),對(duì)錯(cuò)誤進(jìn)行恢復(fù)對(duì)未完成事務(wù)回滾,并最終可以允許用戶訪問(wèn)。
數(shù)據(jù)庫(kù)的備份主要分為三種類型:冷備份;熱備份;邏輯備份;
數(shù)據(jù)庫(kù)的備份不是本文討論的重點(diǎn),在這里只作一個(gè)概要的介紹,Oracle數(shù)據(jù)庫(kù)備份主要有:
l Cold Backup(冷備份) 主要指在關(guān)閉數(shù)據(jù)庫(kù)的狀態(tài)下進(jìn)行的數(shù)據(jù)庫(kù)完全備份,備份內(nèi)容包括所有數(shù)據(jù)文件、控制文件、聯(lián)機(jī)日志文件、ini文件。
l Hot Backup(熱備份) 指在數(shù)據(jù)庫(kù)處于運(yùn)行狀態(tài)下,對(duì)數(shù)據(jù)文件和控制文件進(jìn)行備份,要使用熱備份必須將數(shù)據(jù)庫(kù)運(yùn)行在(Archive Log)歸檔方式下。
l Export(邏輯備份)這是最簡(jiǎn)單的備份方法,可按數(shù)據(jù)庫(kù)中某個(gè)表、某個(gè)用戶或整個(gè)數(shù)據(jù)庫(kù)來(lái)導(dǎo)出,并且支持全部、累計(jì)、增量三種方式。使用這種方法,數(shù)據(jù)庫(kù)必須處于打開狀態(tài),而且如果數(shù)據(jù)庫(kù)不是在restrict狀態(tài)將不能保證導(dǎo)出數(shù)據(jù)的一致性。
數(shù)據(jù)庫(kù)的恢復(fù)可分為兩大類:完全恢復(fù);不完全恢復(fù);
完全恢復(fù)指將數(shù)據(jù)庫(kù)恢復(fù)到發(fā)生故障的時(shí)間點(diǎn),不丟失任何數(shù)據(jù)。不完全恢復(fù)指將數(shù)據(jù)庫(kù)恢復(fù)到發(fā)生故障前的某一個(gè)時(shí)間點(diǎn),此時(shí)間點(diǎn)以后的所有改動(dòng)將會(huì)丟失。如果沒有特殊需求,我們建議應(yīng)盡量使用完全恢復(fù)。
Oracle數(shù)據(jù)庫(kù)的恢復(fù)過(guò)程分兩步進(jìn)行,首先將把存放在重做日志文件中的所有重做運(yùn)用到數(shù)據(jù)文件,之后對(duì)重做中所有未提交的事務(wù)進(jìn)行回滾,這樣所有數(shù)據(jù)就恢復(fù)到發(fā)生災(zāi)難那一時(shí)刻了。數(shù)據(jù)庫(kù)的恢復(fù)只能在發(fā)生故障之前的數(shù)據(jù)文件上運(yùn)用重做,將其恢復(fù)到故障時(shí)刻,而不能將數(shù)據(jù)文件反向回滾到之前的某一個(gè)時(shí)刻。舉個(gè)例子,我們有一個(gè)2001/1/1的數(shù)據(jù)庫(kù)備份,當(dāng)2001/5/1使我們發(fā)現(xiàn)數(shù)據(jù)庫(kù)中數(shù)據(jù)發(fā)生混亂,希望將數(shù)據(jù)庫(kù)恢復(fù)到2001/4/30時(shí)的狀態(tài),我們只能先恢復(fù)2001/1/1的數(shù)據(jù)庫(kù)備份然后在其上運(yùn)用重做記錄使其前滾到2001/4/30時(shí)的狀態(tài),而不能將2001/5/1的數(shù)據(jù)庫(kù)向后回滾到2001/4/30。
為了系統(tǒng)的設(shè)計(jì)數(shù)據(jù)庫(kù)的恢復(fù)方案,我們先對(duì)可能遇到的錯(cuò)誤進(jìn)行分類,Oracle數(shù)據(jù)庫(kù)錯(cuò)誤主要分為5大類:
l SQL語(yǔ)句失敗
l 線程失敗
l 實(shí)例失敗
l 用戶操作失敗
l 存儲(chǔ)設(shè)備失敗
關(guān)于Oralce數(shù)據(jù)庫(kù)操作過(guò)程中可能會(huì)出現(xiàn)的故障就為大家總結(jié)這么多,相信大家通過(guò)上文的學(xué)習(xí),現(xiàn)在對(duì)Oralce數(shù)據(jù)庫(kù)中故障的處理已經(jīng)有所掌握,在以后的工作中遇到類似問(wèn)題就能夠輕松解決了,希望上文中涉及到內(nèi)容對(duì)大家能夠有所幫助。




















