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