共計(jì) 2621 個(gè)字符,預(yù)計(jì)需要花費(fèi) 7 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下數(shù)據(jù)庫(kù)恢復(fù)技術(shù)的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
數(shù)據(jù)庫(kù)恢復(fù)技術(shù)有:1、數(shù)據(jù)轉(zhuǎn)儲(chǔ),即 DBA 定期將整個(gè)數(shù)據(jù)庫(kù)復(fù)制到磁帶或另一個(gè)磁盤上保存起來(lái)的過(guò)程。2、登記日志文件,日志文件是用來(lái)記錄事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新操作的文件,設(shè)立日志文件可以進(jìn)行事務(wù)故障恢復(fù)、系統(tǒng)故障恢復(fù)、協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)。
本教程操作環(huán)境:windows7 系統(tǒng)、mysql8 版本、Dell G3 電腦。
數(shù)據(jù)庫(kù)恢復(fù)概述
數(shù)據(jù)庫(kù)管理系統(tǒng)必須具有把數(shù)據(jù)庫(kù)從某一錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)的功能,這就是數(shù)據(jù)庫(kù)的恢復(fù)。恢復(fù)子系統(tǒng)是數(shù)據(jù)庫(kù)管理系統(tǒng)的一個(gè)重要組成部分,而且還相當(dāng)龐大,常常占整個(gè)系統(tǒng)代碼的百分之十以上。數(shù)據(jù)庫(kù)系統(tǒng)采用的恢復(fù)技術(shù)是否行之有效,不僅對(duì)系統(tǒng)的可靠程度起著決定性作用,而且對(duì)系統(tǒng)的運(yùn)行效率也有很大影響,是衡量系統(tǒng)性能優(yōu)劣的重要指標(biāo)。
h 梵蒂岡介質(zhì)故障
系統(tǒng)故障稱為軟故障,介質(zhì)故障稱為硬故障。硬故障指外存故障,如磁盤損壞、磁頭碰撞、瞬時(shí)強(qiáng)磁場(chǎng)干擾等。這類故障將破壞數(shù)據(jù)庫(kù)或部分?jǐn)?shù)據(jù)庫(kù),并影響正在存取這部分?jǐn)?shù)據(jù)的所有事務(wù)。
計(jì)算機(jī)病毒
總結(jié)各類故障,對(duì)數(shù)據(jù)庫(kù)的影響有兩種可能性。一是數(shù)據(jù)庫(kù)本身被破壞。二是數(shù)據(jù)庫(kù)沒(méi)有被破壞,但數(shù)據(jù)可能不正確,這時(shí)由于事務(wù)的運(yùn)行被非正常終止造成的。
恢復(fù)的實(shí)現(xiàn)技術(shù)
恢復(fù)機(jī)制涉及兩個(gè)關(guān)鍵問(wèn)題:
1、如何建立冗余數(shù)據(jù);
2、如何利用這些冗余數(shù)據(jù)實(shí)施數(shù)據(jù)庫(kù)恢復(fù)。
建立冗余數(shù)據(jù)最常用的技術(shù)是數(shù)據(jù)轉(zhuǎn)儲(chǔ)和登記日志文件。通常在一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)中,這兩種方法是一起使用的。
數(shù)據(jù)轉(zhuǎn)儲(chǔ)
數(shù)據(jù)轉(zhuǎn)儲(chǔ)是數(shù)據(jù)庫(kù)恢復(fù)中采用的基本技術(shù)。所謂轉(zhuǎn)儲(chǔ)即 DBA 定期將整個(gè)數(shù)據(jù)庫(kù)復(fù)制到磁帶或另一個(gè)磁盤上保存起來(lái)的過(guò)程。這些備用的數(shù)據(jù)成為后備副本或后援副本。
轉(zhuǎn)儲(chǔ)可以分為靜態(tài)轉(zhuǎn)儲(chǔ)和動(dòng)態(tài)轉(zhuǎn)儲(chǔ)。
靜態(tài)轉(zhuǎn)儲(chǔ)是在系統(tǒng)中無(wú)運(yùn)行事務(wù)時(shí)進(jìn)行的轉(zhuǎn)儲(chǔ)操作。即轉(zhuǎn)儲(chǔ)操作開(kāi)始的時(shí)刻,數(shù)據(jù)庫(kù)處于一致性狀態(tài),而轉(zhuǎn)儲(chǔ)期間不允許對(duì)數(shù)據(jù)庫(kù)的任何存取、修改活動(dòng)。顯然,靜態(tài)轉(zhuǎn)儲(chǔ)得到的一定是一個(gè)數(shù)據(jù)一致性的副本。
動(dòng)態(tài)轉(zhuǎn)儲(chǔ)是指轉(zhuǎn)儲(chǔ)期間允許對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取或修改。但是,轉(zhuǎn)儲(chǔ)結(jié)束時(shí)后援副本上的數(shù)據(jù)并不能保證正確有效。為此,必須把轉(zhuǎn)儲(chǔ)期間各事務(wù)對(duì)數(shù)據(jù)庫(kù)的修改活動(dòng)登記下來(lái),建立日志文件,這樣,后援副本加上日志文件就能把數(shù)據(jù)庫(kù)恢復(fù)到某一時(shí)刻的正確狀態(tài)。
轉(zhuǎn)儲(chǔ)可以分為海量轉(zhuǎn)儲(chǔ)和增量轉(zhuǎn)儲(chǔ)兩種方式。海量轉(zhuǎn)儲(chǔ)是指每次轉(zhuǎn)儲(chǔ)全部數(shù)據(jù)庫(kù)。增量轉(zhuǎn)儲(chǔ)則指每次只轉(zhuǎn)儲(chǔ)上一次轉(zhuǎn)儲(chǔ)后更新過(guò)的數(shù)據(jù)。從恢復(fù)角度看,使用海量轉(zhuǎn)儲(chǔ)得到的后備副本進(jìn)行恢復(fù)一般來(lái)說(shuō)更方便一些。
數(shù)據(jù)轉(zhuǎn)儲(chǔ)方法可以分為四類:動(dòng)態(tài)增量轉(zhuǎn)儲(chǔ)、動(dòng)態(tài)海量轉(zhuǎn)儲(chǔ)、靜態(tài)增量轉(zhuǎn)儲(chǔ)、靜態(tài)海量轉(zhuǎn)儲(chǔ)。
登記日志文件
日志文件的格式和內(nèi)容
日志文件是用來(lái)記錄事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新操作的文件。日志文件主要有兩種格式:以記錄為單位的日志文件和以數(shù)據(jù)塊為單位的日志文件。
以記錄為單位的日志文件,需要登記的內(nèi)容包括:
1、各個(gè)事務(wù)的開(kāi)始標(biāo)記
2、各個(gè)事務(wù)的結(jié)束標(biāo)記
3、各個(gè)事務(wù)的所有更新操作
每個(gè)日志記錄的內(nèi)容包括:
1、事務(wù)標(biāo)識(shí)(標(biāo)明是哪個(gè)事務(wù))
2、操作的類型(插入、刪除或修改)
3、操作對(duì)象(記錄內(nèi)部標(biāo)識(shí))
4、更新前數(shù)據(jù)的舊值
5、更新后數(shù)據(jù)的新值
日志文件的作用
日志文件在數(shù)據(jù)恢復(fù)中起著非常重要的作用。可以用來(lái)進(jìn)行事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù),并協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)。
具體作用是:
1、事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù)必須用日志文件
2、在動(dòng)態(tài)轉(zhuǎn)儲(chǔ)方式必須建立日志文件,后備副本和日志文件結(jié)合起來(lái)才能有效地恢復(fù)數(shù)據(jù)庫(kù)。
3、在靜態(tài)轉(zhuǎn)儲(chǔ)方式中,也可以建立日志文件。
登記日志文件
為保證數(shù)據(jù)庫(kù)是可恢復(fù)的,登記日志文件時(shí)必須遵循兩條原則:
1. 登記的次序嚴(yán)格按并發(fā)事務(wù)執(zhí)行的時(shí)間次序
2. 必須先些日志文件,后寫數(shù)據(jù)庫(kù)。
恢復(fù)策略
事務(wù)故障的恢復(fù)
事務(wù)故障的恢復(fù)是由系統(tǒng)自動(dòng)完成的,對(duì)用戶是透明的。系統(tǒng)的恢復(fù)步驟是:
1、反向掃描日志文件(即從最后向前掃描日志文件),查找該事務(wù)的更新操作。
2、對(duì)該事務(wù)的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫(kù)。這樣如果記錄中是插入操作,則相當(dāng)于做刪除操作;若記錄中是刪除操作,則做插入操作;若是修改操作,則相當(dāng)于修改求前值代替修改后值。
3、繼續(xù)反向掃描日志文件,查找該事務(wù)的其他更新操作,并做同樣處理。
4、如此處理下去,直至讀到此事務(wù)的開(kāi)始標(biāo)記,事務(wù)故障恢復(fù)就完成了。
系統(tǒng)故障的恢復(fù)
事務(wù)故障的恢復(fù)是由系統(tǒng)自動(dòng)完成的,對(duì)用戶是透明的。系統(tǒng)的恢復(fù)步驟是:
1、正向掃描日志文件,找出在故障發(fā)生前已經(jīng)提交的事務(wù),將其事務(wù)標(biāo)識(shí)記入重做隊(duì)列。同時(shí)找出故障發(fā)生時(shí)尚未完成的事務(wù),將其事務(wù)表示計(jì)入撤銷隊(duì)列。
2、對(duì)撤銷(UNDO)隊(duì)列中的各個(gè)事務(wù)進(jìn)行撤銷處理。
進(jìn)行 UNDO 處理的方法是,反向掃描日志文件,對(duì)每個(gè) UNDO 事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫(kù)。
3、對(duì)重做隊(duì)列中的各個(gè)事務(wù)進(jìn)行重做 REDO 處理
進(jìn)行 REDO 處理的方法是:正向掃描日志文件,對(duì)每個(gè) REDO 事務(wù)重新執(zhí)行日志文件登記的操作。即將日志記錄中“更新后的值”寫入數(shù)據(jù)庫(kù)。
介質(zhì)故障的恢復(fù)
恢復(fù)故障的方法是重裝數(shù)據(jù)庫(kù),然后重做已完成的事務(wù)。
1、裝入最新的數(shù)據(jù)庫(kù)后備副本,是數(shù)據(jù)庫(kù)恢復(fù)到最近一次轉(zhuǎn)儲(chǔ)時(shí)的一致性狀態(tài)。
2、裝入相應(yīng)的日志文件副本,重做已完成的事務(wù)。即首先掃描日志文件,找出故障發(fā)生時(shí)已提交的事務(wù)的標(biāo)識(shí),將其計(jì)入重做隊(duì)列。然后正向掃描日志文件,對(duì)重做隊(duì)列中的所有事務(wù)進(jìn)行重做處理。即將日志記錄中“更新后的值”寫入數(shù)據(jù)庫(kù)。
介質(zhì)故障的恢復(fù)需要 DBA 介入。但 DBA 只需要重裝最近轉(zhuǎn)儲(chǔ)的數(shù)據(jù)庫(kù)副本和有關(guān)的各日志文件副本,然后秩序系統(tǒng)提供的恢復(fù)命令即可,具體的恢復(fù)操作仍有 DBMS 完成。
數(shù)據(jù)庫(kù)鏡像
隨著磁盤容量越來(lái)越大,價(jià)格越來(lái)越便宜,為避免磁盤介質(zhì)出現(xiàn)故障影響數(shù)據(jù)庫(kù)的可用性,許多數(shù)據(jù)庫(kù)管理系統(tǒng)提供了數(shù)據(jù)經(jīng)銷功能用于數(shù)據(jù)庫(kù)恢復(fù)。根據(jù) DBA 的要求,自動(dòng)把整個(gè)數(shù)據(jù)庫(kù)或其中 的關(guān)鍵數(shù)據(jù)復(fù)制到另一個(gè)磁盤上。
由于數(shù)據(jù)庫(kù)鏡像是通過(guò)復(fù)制數(shù)據(jù)實(shí)現(xiàn)的,頻繁地復(fù)制數(shù)據(jù)自然會(huì)降低系統(tǒng)運(yùn)行效率,因此在時(shí)間應(yīng)用中用戶往往只選擇對(duì)關(guān)鍵數(shù)據(jù)和日志文件鏡像,而不是對(duì)整個(gè)數(shù)據(jù)庫(kù)進(jìn)行鏡像。
以上是“數(shù)據(jù)庫(kù)恢復(fù)技術(shù)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!