張云琦 張景波 楊中雨
摘要:現(xiàn)數(shù)據(jù)在我們的日常生活中扮演著重要的角色,Oracle數(shù)據(jù)庫數(shù)年來不斷發(fā)展成為全球領(lǐng)先的企業(yè),在數(shù)據(jù)庫不斷地優(yōu)化和完善。越來越注重于理論學(xué)習(xí)和實踐操作相結(jié)合。其次在Oracle數(shù)據(jù)備份恢復(fù)中,理論和實踐相結(jié)合也顯得十分重要。在公司的實踐操作中,如果數(shù)據(jù)庫中的數(shù)據(jù)丟失,可通過在提前的備份,使其恢復(fù)到錯誤前的狀態(tài)下,讓企業(yè)在數(shù)據(jù)的故障中盡可能把損失減少。通過研究數(shù)據(jù)庫的閃回技術(shù)和Oracle數(shù)據(jù)庫的基礎(chǔ)架構(gòu)理論研究其在數(shù)據(jù)庫的恢復(fù)中的作用,并且通過數(shù)據(jù)庫的備份完全恢復(fù)的實驗?zāi)M進(jìn)行操作進(jìn)行理論和實踐相結(jié)合,使其數(shù)據(jù)丟失后能恢復(fù)到錯誤狀態(tài)前的效果。
關(guān)鍵詞: 體系架構(gòu);備份恢復(fù);RMAN完全恢復(fù)
中圖分類號:TP311? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2022)07-0024-02
1 概述
通過數(shù)據(jù)庫閃回技術(shù)做恢復(fù)以及由體系理論基礎(chǔ)和Oracle數(shù)據(jù)庫的基本組成,其中的體系理論基礎(chǔ)和架構(gòu)在數(shù)據(jù)庫備份中運(yùn)用和聯(lián)系,就可以更加深入一步地對其數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行備份恢復(fù)實踐操作。最后通過手工備份做完全恢復(fù)和RMAN完全恢復(fù)研究和實驗?zāi)M從而更好地研究數(shù)據(jù)庫的完全備份恢復(fù)技術(shù)。把Oracle數(shù)據(jù)庫備份恢復(fù)技術(shù)熟練地運(yùn)用起來,這就大大地減少了企業(yè)的數(shù)據(jù)損失。其次Oracle數(shù)據(jù)庫處理數(shù)據(jù)時是一種分布式的處理模式,在管理上面具有完整的處理功能,Oracle數(shù)據(jù)庫越來越被企業(yè)去使用,特別是規(guī)模比較大的企業(yè)在使用中穩(wěn)定性的體現(xiàn)較為突出。
2 研究的主要內(nèi)容
2.1 閃回數(shù)據(jù)庫
閃回技術(shù)是用來閃回數(shù)據(jù)庫的,它可以用來閃回數(shù)據(jù)歸檔,或者閃回數(shù)據(jù)庫中的表。而其中的閃回數(shù)據(jù)庫,用閃回技術(shù)把數(shù)據(jù)庫中日志使數(shù)據(jù)庫回退到某個時間點(diǎn)上。前提條件是在用閃回之前先要把數(shù)據(jù)庫啟動到mount的狀態(tài)下,配置相關(guān)的參數(shù),開啟用到的日志,下一步的操作是打開數(shù)據(jù)庫,閃回圖如圖1所示:
閃回表的情況通常是利用以前的時間點(diǎn)和SCN把表的狀態(tài)回退到以前,表在前向后都可以閃回。
用實驗操作如下:選取當(dāng)前的SCN用到的操作系統(tǒng)命令
SYS@prod> select current_scn from v$database;
刪除數(shù)據(jù)中的一個用戶操作
SYS@prod> drop user scott cascade;
然后到數(shù)據(jù)庫的mount狀態(tài)下做閃回數(shù)據(jù)庫操作:
SYS@prod> shutdown immediate;
SYS@prod> startup mount exclusive ;
SYS@prod> flashback database to scn 7248690;
只讀方式打開,確認(rèn)scott用戶已經(jīng)被閃回:
SYS@prod> alter database open read only;
SYS@prod> select * from scott.emp;
確認(rèn)沒有錯誤后,重新以resetlogs 方式打開數(shù)據(jù)庫
SYS@prod>startup force;SYS@prod>alter database open resetlogs;
SYS@prod>flashback database to timestamp to_char('2021-04-11 19:11:11','yyyy-mm-dd hh24:mi:ss');SYS@prod>flashback database to scn 1264788;
至此完成閃回數(shù)據(jù)庫操作,通過上述的閃回數(shù)據(jù)庫和閃回數(shù)據(jù)歸檔以及閃回數(shù)據(jù)庫中的表示例模擬,深一步地研究了閃回表的技術(shù)。再進(jìn)一步地了解SGA的基本組件,它是由數(shù)據(jù)庫buffer cache和日志buffer組成。在其中的large pool為大型后臺處理作業(yè)分配的內(nèi)存空間主要用于共享出服務(wù)器的會話內(nèi)存也就是減少了共享池的碎片。Stream pool處理分配的內(nèi)存空間,它只有一個工作進(jìn)程。ckpt創(chuàng)建檢查點(diǎn)和局部檢查點(diǎn),以及Database中包含數(shù)據(jù)文件,控制文件。
2.2 增量檢查點(diǎn)與實例恢復(fù)
數(shù)據(jù)庫實例恢復(fù)與增量檢查點(diǎn)有著緊密的聯(lián)系,當(dāng)實例數(shù)據(jù)庫發(fā)生崩潰的時候,數(shù)據(jù)造成了丟失。增量檢查點(diǎn)在這種狀態(tài)下發(fā)揮出了作用,觸發(fā)檢查點(diǎn)之后,一部分臟的數(shù)據(jù)刷新到了磁盤上。它重要的是記錄了最后檢查點(diǎn)的位置,而數(shù)據(jù)庫的實例恢復(fù)就需要用到這個記錄的位置來完成實例恢復(fù),增量檢查點(diǎn)與實例恢復(fù)的流程關(guān)系如下圖2所示。
用smon監(jiān)控下的一系列動作,回滾roll forward,redo日志把檢查點(diǎn)位置之后包括commit和uncommit的都前滾出來了,然后統(tǒng)統(tǒng)寫到磁盤的數(shù)據(jù)文件里。打開數(shù)據(jù)庫用戶可以連接進(jìn)來,訪問數(shù)據(jù)庫,回滾roll back。完上述之后,還需要我們來了解數(shù)據(jù)庫中的控制文件,控制文件它就像一個記事本一樣,起到了記錄當(dāng)前數(shù)據(jù)庫的物理狀態(tài)以及在RMAN數(shù)據(jù)備份的元數(shù)據(jù)。除此之外呢,控制文件的作用還可以來保持?jǐn)?shù)據(jù)庫的一致性,所以在數(shù)據(jù)庫中控制文件扮演了一個非常重要的角色,它使用于數(shù)據(jù)塊的恢復(fù),日志組及切換。在兩種情況下,歸檔模式保存一路記錄下來的日志和非歸檔模式歷史日志被覆蓋,最少兩個組,在一個組中可以有兩個成員在寫滿日志組時可以自動進(jìn)行切換。還有一種是在歸檔的模式下,日志完成的歸檔,并且把其中相關(guān)的信息寫入到控制文件中。
Undo技術(shù)它的作用在數(shù)據(jù)庫的恢復(fù)中也顯得比較關(guān)鍵,它是回滾撤銷或者更改的數(shù)據(jù)庫信息。也就是可以運(yùn)用undo功能把之前記錄的數(shù)據(jù)進(jìn)行回滾,進(jìn)而來提供數(shù)據(jù)的一致性,用Oracle數(shù)據(jù)庫閃回查詢分析上一個時間點(diǎn)的數(shù)據(jù)使用閃回在任何時間點(diǎn)查詢和分析數(shù)據(jù)使用Oracle閃回功能修復(fù)邏輯損壞執(zhí)行rollabck語句時,在數(shù)據(jù)庫恢復(fù)過程中,撤銷記錄不會根據(jù)重做日志中的記錄提交到數(shù)據(jù)文件?;謴?fù)更新。如果一個用戶在另一個用戶修改數(shù)據(jù)時查詢數(shù)據(jù),則撤銷記錄會在更改之前維護(hù)數(shù)據(jù)鏡像的副本,以確保讀取一致。
2.3 數(shù)據(jù)備份恢復(fù)
數(shù)據(jù)庫的備份恢復(fù)操作,我們知道數(shù)據(jù)庫的備份恢復(fù)操作技術(shù)是非常的實用和關(guān)鍵的,當(dāng)數(shù)據(jù)庫發(fā)生故障,造成數(shù)據(jù)庫的數(shù)據(jù)丟失,這時候的我們就想起了數(shù)據(jù)庫的備份恢復(fù)技術(shù)。備份備什么就是要備份上面談到的數(shù)據(jù)庫架構(gòu)中核心的文件,比如說,數(shù)據(jù),控制文件或者完全備份文件,而恢復(fù)的理解是什么,它是利用打開數(shù)據(jù)文件中的SCN與控制文件末尾的SCN相匹配,根據(jù)是否相匹配來進(jìn)行有效的恢復(fù)或者不恢復(fù)。當(dāng)然,所有備份實際上都是為了加快恢復(fù)速度,因此在制定備份策略時需要考慮很多方面。這里進(jìn)行總結(jié)了數(shù)據(jù)庫常見的故障類型,User process:用戶進(jìn)程失敗,instance實例失敗,user errors 用戶錯誤,media失敗,知道備份的分類是什么它可以分為是,一致的備份中可以是邏輯和物理備份,冷備份和不一致的熱備份。完全的備份策略物理備份為主要,邏輯備份為輔助,用來備份一些重要的表。
其次要了解數(shù)據(jù)用來備份的規(guī)模,有兩種形式。完全備份和另一種方式的備份,研究完全備份,它的歸檔模式可以是兩種,備份的文件是什么備份表空間,需要拷貝的文件是,數(shù)據(jù),控制和歸檔的日志文件。了解恢復(fù)的分類,也就是完全恢復(fù),完全恢復(fù)的原理是什么,它是數(shù)據(jù)庫的一個整體操作,也就是當(dāng)完全恢復(fù)時,使用完全或部分備份的數(shù)據(jù)將數(shù)據(jù)文件還原到失敗之前的最后一次提交,而不會丟失數(shù)據(jù)。
在操作的過程中就要求我們會利用上面介紹的知識中的實踐操作,比如說操作系統(tǒng)的命令,文件的傳輸?shù)?,以及我們知道需要知道什么是控制文件以及?shù)據(jù)文件,表空間等,它們背后的原理是什么。所以有了上面了解的基礎(chǔ),下面的實踐操作也就有了底氣。下面我們按照這個流程思路,來進(jìn)行一一的展開。它的核心是圖片先restore備份,再恢復(fù)recover,再進(jìn)行恢復(fù)到最后一次提交。
通過檢查點(diǎn)的研究和實例恢復(fù)的流程圖深入地了解到增量檢查點(diǎn)在實例恢復(fù)中的作用以及用到的回滾和監(jiān)控,來完成實例恢復(fù),流程如圖3所示。
3 結(jié)論
綜上通過對Oracle數(shù)據(jù)庫的研究和實驗的模擬,對數(shù)據(jù)庫控制,數(shù)據(jù),日志文件以及進(jìn)程的歸檔日志和管理undo表空間的建立和數(shù)據(jù)庫的檢查點(diǎn)進(jìn)行了充分論證,達(dá)到了預(yù)期,使得備份恢復(fù)過程更加有依據(jù)有規(guī)則。
參考文獻(xiàn):
[1] 陳偉明.Oracle閃回技術(shù)的應(yīng)用與實踐分析[J].中阿科技論壇(中英文),2020(10):93-96.
[2] 程魯明,肖菊香.Oracle數(shù)據(jù)庫容災(zāi)技術(shù)研究與實現(xiàn)[J].電子元器件與信息技術(shù),2020,4(1):80-82.
【通聯(lián)編輯:王力】
收稿日期:2021-05-10
基金項目:教育部2018年第二批產(chǎn)學(xué)合作協(xié)同育人項目( 201802076023)( 201802076011)
作者簡介:張云琦(1981—),女,吉林人,副教授,研究生,主要研究方向為通信工程;通訊作者:張景波(1982—),男(回族),黑龍江人,副教授,研究生,主要研究方向為軟件工程、信息安全與數(shù)據(jù)理論。