第七章 數(shù)據(jù)庫(kù)恢復(fù)技術(shù)_第1頁(yè)
第七章 數(shù)據(jù)庫(kù)恢復(fù)技術(shù)_第2頁(yè)
第七章 數(shù)據(jù)庫(kù)恢復(fù)技術(shù)_第3頁(yè)
第七章 數(shù)據(jù)庫(kù)恢復(fù)技術(shù)_第4頁(yè)
第七章 數(shù)據(jù)庫(kù)恢復(fù)技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第七章第七章 數(shù)據(jù)庫(kù)恢復(fù)技術(shù)數(shù)據(jù)庫(kù)恢復(fù)技術(shù) q計(jì)算機(jī)系統(tǒng)容易發(fā)生故障計(jì)算機(jī)系統(tǒng)容易發(fā)生故障 丟失信息丟失信息 q硬盤(pán)、電源、軟件、機(jī)房、人為硬盤(pán)、電源、軟件、機(jī)房、人為 q恢復(fù)機(jī)制恢復(fù)機(jī)制 q將數(shù)據(jù)庫(kù)恢復(fù)到故障發(fā)生前的某個(gè)一致的狀態(tài)將數(shù)據(jù)庫(kù)恢復(fù)到故障發(fā)生前的某個(gè)一致的狀態(tài) q高可用性高可用性 q將崩潰后的數(shù)據(jù)庫(kù)的不可用的時(shí)間減少到最低將崩潰后的數(shù)據(jù)庫(kù)的不可用的時(shí)間減少到最低 事務(wù)事務(wù) 數(shù)據(jù)庫(kù)恢復(fù)技術(shù)數(shù)據(jù)庫(kù)恢復(fù)技術(shù) q事務(wù)的基本概念事務(wù)的基本概念 q數(shù)據(jù)庫(kù)恢復(fù)的基本概念、恢復(fù)的實(shí)現(xiàn)技術(shù)數(shù)據(jù)庫(kù)恢復(fù)的基本概念、恢復(fù)的實(shí)現(xiàn)技術(shù) q恢復(fù)策略恢復(fù)策略 q具有檢測(cè)點(diǎn)的恢復(fù)技術(shù)具有檢測(cè)點(diǎn)的恢復(fù)技術(shù) 事務(wù)的基本

2、概念事務(wù)的基本概念 q事務(wù)事務(wù): 是用戶(hù)定義的一個(gè)數(shù)據(jù)庫(kù)操作序列是用戶(hù)定義的一個(gè)數(shù)據(jù)庫(kù)操作序列, 這些操作這些操作 要么全做要么全做, 要么全不做要么全不做, 是一個(gè)不可分割的工作單位是一個(gè)不可分割的工作單位 q訪問(wèn)并可能更新各種數(shù)據(jù)項(xiàng)的一個(gè)程序執(zhí)行訪問(wèn)并可能更新各種數(shù)據(jù)項(xiàng)的一個(gè)程序執(zhí)行單元單元 q事務(wù)和程序事務(wù)和程序 q一個(gè)程序中包含多個(gè)事務(wù)一個(gè)程序中包含多個(gè)事務(wù) Jim Gray l事務(wù)處理領(lǐng)域的突出貢獻(xiàn)事務(wù)處理領(lǐng)域的突出貢獻(xiàn)1998年年“圖靈獎(jiǎng)圖靈獎(jiǎng)” l1966年:年:UC Berkerly獲學(xué)士學(xué)位(工程數(shù)學(xué))獲學(xué)士學(xué)位(工程數(shù)學(xué)) l1969年:年:UC Berkerly獲博士學(xué)位

3、(計(jì)算機(jī)科學(xué))獲博士學(xué)位(計(jì)算機(jī)科學(xué)) lBell實(shí)驗(yàn)室實(shí)驗(yàn)室 l1970s,IBM研究中心研究中心 System R, SQL/DSDB2, IMS-Fast Path l1980s, Tandem工作工作 系統(tǒng)字典, FastSort, NonStop SQL l微軟研究院工作微軟研究院工作 Back office的改進(jìn)研究,Grid計(jì)算 l2007年年1月月28日:失蹤日:失蹤 紀(jì)念文章 rmatik.uni-trier.de/ley/db/journals/sigmod/sigmod37.html 事務(wù)的基本概念事務(wù)的基本概念 q事務(wù)的定義:事務(wù)的定義: 顯

4、示定義顯示定義, 隱含定義隱含定義 qSQL的事務(wù)定義的事務(wù)定義 qBEGIN TRANSACTION 開(kāi)始開(kāi)始 qCOMMIT 提交:寫(xiě)到硬盤(pán)的物理數(shù)據(jù)庫(kù)中提交:寫(xiě)到硬盤(pán)的物理數(shù)據(jù)庫(kù)中 qROLLBACK 回滾:故障導(dǎo)致對(duì)數(shù)據(jù)庫(kù)更新操作失回滾:故障導(dǎo)致對(duì)數(shù)據(jù)庫(kù)更新操作失 敗,滾回到事務(wù)開(kāi)始的狀態(tài)敗,滾回到事務(wù)開(kāi)始的狀態(tài) 事務(wù)的基本概念事務(wù)的基本概念 q事務(wù)的性質(zhì)事務(wù)的性質(zhì) ACID 原子性原子性 Atomicity 事務(wù)中包括的操作要么都做,要么都不做事務(wù)中包括的操作要么都做,要么都不做 一致性一致性 Consistency 事務(wù)執(zhí)行的結(jié)果從一個(gè)一致性狀態(tài)變到另一個(gè)一致性事務(wù)執(zhí)行的結(jié)果從一個(gè)

5、一致性狀態(tài)變到另一個(gè)一致性 狀態(tài)狀態(tài) 例如銀行兩個(gè)賬戶(hù)例如銀行兩個(gè)賬戶(hù)A和和B: A-200 B+200 隔離性隔離性 Isolation 一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾 持久性持久性 Durability 事務(wù)成功完成后,對(duì)數(shù)據(jù)庫(kù)的改變是永久的,即使以事務(wù)成功完成后,對(duì)數(shù)據(jù)庫(kù)的改變是永久的,即使以 后系統(tǒng)出現(xiàn)故障也不受影響后系統(tǒng)出現(xiàn)故障也不受影響 q事務(wù)是事務(wù)是恢復(fù)恢復(fù)和和并發(fā)控制并發(fā)控制的基本單位的基本單位 事務(wù)的基本概念事務(wù)的基本概念 q例子例子 銀行賬戶(hù)銀行賬戶(hù)A轉(zhuǎn)帳轉(zhuǎn)帳200到帳戶(hù)到帳戶(hù)B T: read(A); A: = A 200; write(

6、A); read(B); B: = B + 200; write(B); 事務(wù)執(zhí)行前后事務(wù)執(zhí)行前后 原子性原子性: t1t2 A=1000 B=500 A=800 B=700 A=800 B=500 不一致不一致 狀態(tài)狀態(tài) 一致性一致性:A、B之和不變之和不變 隔離性隔離性:兩個(gè)事務(wù):轉(zhuǎn)帳事務(wù),求和事:兩個(gè)事務(wù):轉(zhuǎn)帳事務(wù),求和事 務(wù)務(wù) 雖然允許并發(fā)事務(wù),但必須保雖然允許并發(fā)事務(wù),但必須保 持持 事務(wù)的原子性事務(wù)的原子性 持久性持久性:轉(zhuǎn)帳結(jié)束后,數(shù)據(jù)不會(huì)丟失:轉(zhuǎn)帳結(jié)束后,數(shù)據(jù)不會(huì)丟失 故障的種類(lèi)故障的種類(lèi): q數(shù)據(jù)庫(kù)恢復(fù)數(shù)據(jù)庫(kù)恢復(fù): 數(shù)據(jù)庫(kù)管理系統(tǒng)必須具有將數(shù)據(jù)數(shù)據(jù)庫(kù)管理系統(tǒng)必須具有將數(shù)據(jù) 庫(kù)

7、從錯(cuò)誤狀態(tài)恢復(fù)到某一已知狀態(tài)的功能庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到某一已知狀態(tài)的功能 q事務(wù)內(nèi)部的故障事務(wù)內(nèi)部的故障: 可預(yù)期的可預(yù)期的和和不可預(yù)期的不可預(yù)期的 可預(yù)期的故障可預(yù)期的故障: 例如銀行轉(zhuǎn)賬事務(wù)例如銀行轉(zhuǎn)賬事務(wù), 由事務(wù)由事務(wù) 本身處理本身處理, 不需要恢復(fù)系統(tǒng)處理不需要恢復(fù)系統(tǒng)處理 由事務(wù)本身處理由事務(wù)本身處理 恢復(fù)系統(tǒng)處理恢復(fù)系統(tǒng)處理 故障種類(lèi)故障種類(lèi) begin transaction 讀賬戶(hù)甲的余額讀賬戶(hù)甲的余額Balance; Balance = Balance Amount; if (Balance 0) then 打印打印金額不足金額不足, 不能轉(zhuǎn)賬不能轉(zhuǎn)賬; rollback;

8、else 讀賬戶(hù)乙余額讀賬戶(hù)乙余額Balance1; Balance1 = Balance1 + Amount; 寫(xiě)回寫(xiě)回Balance1; commit; 事務(wù)本身可以事務(wù)本身可以 發(fā)現(xiàn)并處理發(fā)現(xiàn)并處理 故障種類(lèi)故障種類(lèi) 不可預(yù)期的故障不可預(yù)期的故障: 運(yùn)算溢出運(yùn)算溢出, 并發(fā)事務(wù)由于死鎖并發(fā)事務(wù)由于死鎖 而強(qiáng)制撤銷(xiāo)事務(wù)而強(qiáng)制撤銷(xiāo)事務(wù), 違反了某些完整性限制等違反了某些完整性限制等, 事事 務(wù)沒(méi)有達(dá)到務(wù)沒(méi)有達(dá)到預(yù)期的終點(diǎn)預(yù)期的終點(diǎn)(到達(dá)到達(dá)commit或或 rollback) 可以預(yù)料的故障使事務(wù)能到達(dá)預(yù)期的終點(diǎn)可以預(yù)料的故障使事務(wù)能到達(dá)預(yù)期的終點(diǎn), 而而 不可預(yù)料的故障使事務(wù)不能到達(dá)預(yù)期的

9、終點(diǎn)不可預(yù)料的故障使事務(wù)不能到達(dá)預(yù)期的終點(diǎn) 事務(wù)具有原子性事務(wù)具有原子性, 對(duì)不能到達(dá)預(yù)期終點(diǎn)的事務(wù)對(duì)不能到達(dá)預(yù)期終點(diǎn)的事務(wù) 要進(jìn)行處理要進(jìn)行處理-恢復(fù)恢復(fù) undo操作操作: 恢復(fù)程序強(qiáng)行取消該事務(wù)已經(jīng)做出恢復(fù)程序強(qiáng)行取消該事務(wù)已經(jīng)做出 的對(duì)數(shù)據(jù)庫(kù)的修改的對(duì)數(shù)據(jù)庫(kù)的修改, 使該事務(wù)好像根本沒(méi)有啟動(dòng)使該事務(wù)好像根本沒(méi)有啟動(dòng) 過(guò)過(guò), 強(qiáng)行回滾強(qiáng)行回滾(rollback)該事務(wù)該事務(wù) 故障種類(lèi)故障種類(lèi): q系統(tǒng)故障系統(tǒng)故障: 指造成系統(tǒng)停止運(yùn)行的任何事件指造成系統(tǒng)停止運(yùn)行的任何事件 qCPU, O.S., DBMS, 停電停電 影響正在運(yùn)行的所有事務(wù)影響正在運(yùn)行的所有事務(wù), 數(shù)據(jù)庫(kù)本身并沒(méi)數(shù)據(jù)庫(kù)本

10、身并沒(méi) 遭到破壞遭到破壞, 只是數(shù)據(jù)不正確只是數(shù)據(jù)不正確-恢復(fù)恢復(fù) 數(shù)據(jù)緩沖區(qū)數(shù)據(jù)緩沖區(qū) 數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) 故障發(fā)生時(shí):故障發(fā)生時(shí): 非正常終止的事務(wù)非正常終止的事務(wù): 系統(tǒng)重新啟動(dòng)后需系統(tǒng)重新啟動(dòng)后需undo 數(shù)據(jù)數(shù)據(jù) 丟失丟失 寫(xiě)入寫(xiě)入 部分部分 不不 一致一致 數(shù)據(jù)數(shù)據(jù) 故障種類(lèi)故障種類(lèi): q系統(tǒng)故障系統(tǒng)故障: 指造成系統(tǒng)停止運(yùn)行的任何事件指造成系統(tǒng)停止運(yùn)行的任何事件 qCPU, O.S., DBMS, 停電停電 影響正在運(yùn)行的所有事務(wù)影響正在運(yùn)行的所有事務(wù), 數(shù)據(jù)庫(kù)本身并沒(méi)數(shù)據(jù)庫(kù)本身并沒(méi) 遭到破壞遭到破壞, 只是數(shù)據(jù)不正確只是數(shù)據(jù)不正確-恢復(fù)恢復(fù) 數(shù)據(jù)緩沖區(qū)數(shù)據(jù)緩沖區(qū) 數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) 故障發(fā)

11、生時(shí):故障發(fā)生時(shí): 正常終止的事務(wù)正常終止的事務(wù)(持久性持久性): 系統(tǒng)重新啟動(dòng)后需系統(tǒng)重新啟動(dòng)后需 redo 已經(jīng)已經(jīng) 提交提交 的的 數(shù)據(jù)數(shù)據(jù) 丟失丟失 數(shù)據(jù)數(shù)據(jù) 尚未尚未 寫(xiě)入寫(xiě)入 硬盤(pán)硬盤(pán) 故障種類(lèi)故障種類(lèi): q介質(zhì)故障介質(zhì)故障: 指外存故障指外存故障 數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(或部分?jǐn)?shù)據(jù)庫(kù)或部分?jǐn)?shù)據(jù)庫(kù))遭到破壞遭到破壞, 影響正在影響正在 存取這部分?jǐn)?shù)據(jù)的所有事務(wù)存取這部分?jǐn)?shù)據(jù)的所有事務(wù)-恢復(fù)恢復(fù) q計(jì)算機(jī)病毒計(jì)算機(jī)病毒: 感染系統(tǒng)和數(shù)據(jù)感染系統(tǒng)和數(shù)據(jù)-恢復(fù)恢復(fù) q故障產(chǎn)生的影響故障產(chǎn)生的影響 q破壞數(shù)據(jù)庫(kù)破壞數(shù)據(jù)庫(kù) q僅使數(shù)據(jù)庫(kù)中的數(shù)據(jù)不一致僅使數(shù)據(jù)庫(kù)中的數(shù)據(jù)不一致 q恢復(fù)基本原理恢復(fù)基本原理

12、: 數(shù)據(jù)冗余數(shù)據(jù)冗余 恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)的實(shí)現(xiàn)技術(shù): q涉及的冗余數(shù)據(jù)涉及的冗余數(shù)據(jù) q數(shù)據(jù)轉(zhuǎn)儲(chǔ)數(shù)據(jù)轉(zhuǎn)儲(chǔ) q登記日志文件登記日志文件 q數(shù)據(jù)轉(zhuǎn)儲(chǔ)數(shù)據(jù)轉(zhuǎn)儲(chǔ) qDBA定期的將整個(gè)數(shù)據(jù)庫(kù)復(fù)制到磁帶或另定期的將整個(gè)數(shù)據(jù)庫(kù)復(fù)制到磁帶或另 一個(gè)磁盤(pán)上保存起來(lái)的過(guò)程一個(gè)磁盤(pán)上保存起來(lái)的過(guò)程 q備用的數(shù)據(jù)備用的數(shù)據(jù):后備副本或后援副本后備副本或后援副本 轉(zhuǎn)儲(chǔ)十分耗費(fèi)時(shí)間和資源轉(zhuǎn)儲(chǔ)十分耗費(fèi)時(shí)間和資源, DBA應(yīng)根據(jù)數(shù)據(jù)庫(kù)應(yīng)根據(jù)數(shù)據(jù)庫(kù) 的使用情況確定一個(gè)適當(dāng)?shù)霓D(zhuǎn)儲(chǔ)周期的使用情況確定一個(gè)適當(dāng)?shù)霓D(zhuǎn)儲(chǔ)周期 恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)的實(shí)現(xiàn)技術(shù): 靜態(tài)轉(zhuǎn)儲(chǔ)靜態(tài)轉(zhuǎn)儲(chǔ): 在系統(tǒng)在系統(tǒng)無(wú)無(wú)運(yùn)行事務(wù)時(shí)進(jìn)行的轉(zhuǎn)儲(chǔ)操運(yùn)行事務(wù)時(shí)進(jìn)行的轉(zhuǎn)儲(chǔ)操

13、作作, 操作過(guò)程中禁止操作數(shù)據(jù)庫(kù)操作過(guò)程中禁止操作數(shù)據(jù)庫(kù) 后援副本后援副本和數(shù)據(jù)庫(kù)中的數(shù)據(jù)是一致的和數(shù)據(jù)庫(kù)中的數(shù)據(jù)是一致的, 靜態(tài)轉(zhuǎn)儲(chǔ)靜態(tài)轉(zhuǎn)儲(chǔ)降低降低數(shù)據(jù)庫(kù)的可用性數(shù)據(jù)庫(kù)的可用性 動(dòng)態(tài)轉(zhuǎn)儲(chǔ)動(dòng)態(tài)轉(zhuǎn)儲(chǔ): 指轉(zhuǎn)儲(chǔ)期間允許對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取指轉(zhuǎn)儲(chǔ)期間允許對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取 和修改和修改 TaTbTf 轉(zhuǎn)儲(chǔ)轉(zhuǎn)儲(chǔ) 運(yùn)行事務(wù)運(yùn)行事務(wù) 故障發(fā)生點(diǎn)故障發(fā)生點(diǎn) 正常運(yùn)行正常運(yùn)行 恢復(fù)恢復(fù) 重裝后備副本重裝后備副本重新運(yùn)行事務(wù)重新運(yùn)行事務(wù) 恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)的實(shí)現(xiàn)技術(shù): 轉(zhuǎn)儲(chǔ)得到的后援副本和數(shù)據(jù)庫(kù)中的數(shù)據(jù)不轉(zhuǎn)儲(chǔ)得到的后援副本和數(shù)據(jù)庫(kù)中的數(shù)據(jù)不 一定一致一定一致, 但可以提高系統(tǒng)的可用性但可以提高系統(tǒng)的可用性 A=20

14、后援副本后援副本數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) 在在 t1時(shí)刻時(shí)刻A=20被寫(xiě)到后援副本被寫(xiě)到后援副本 在在 t2時(shí)刻時(shí)刻A被修改為被修改為100, A=100 被寫(xiě)到數(shù)據(jù)庫(kù)被寫(xiě)到數(shù)據(jù)庫(kù), 而后援副本的值而后援副本的值 不變不變 A=100 后援副本后援副本數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) A=20 必須記錄轉(zhuǎn)儲(chǔ)期間必須記錄轉(zhuǎn)儲(chǔ)期間, 各事務(wù)各事務(wù) 對(duì)數(shù)據(jù)庫(kù)的修改活動(dòng)對(duì)數(shù)據(jù)庫(kù)的修改活動(dòng) 建立日志文件建立日志文件 恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)的實(shí)現(xiàn)技術(shù): 海量轉(zhuǎn)儲(chǔ)海量轉(zhuǎn)儲(chǔ):每次轉(zhuǎn)儲(chǔ)全部數(shù)據(jù)庫(kù)每次轉(zhuǎn)儲(chǔ)全部數(shù)據(jù)庫(kù) 增量轉(zhuǎn)儲(chǔ)增量轉(zhuǎn)儲(chǔ) 數(shù)據(jù)的轉(zhuǎn)儲(chǔ)方法數(shù)據(jù)的轉(zhuǎn)儲(chǔ)方法: 轉(zhuǎn)儲(chǔ)狀態(tài)轉(zhuǎn)儲(chǔ)狀態(tài) 動(dòng)態(tài)轉(zhuǎn)儲(chǔ)動(dòng)態(tài)轉(zhuǎn)儲(chǔ)靜態(tài)轉(zhuǎn)儲(chǔ)靜態(tài)轉(zhuǎn)儲(chǔ) 海量轉(zhuǎn)儲(chǔ)海量轉(zhuǎn)儲(chǔ) 動(dòng)態(tài)海量轉(zhuǎn)儲(chǔ)動(dòng)

15、態(tài)海量轉(zhuǎn)儲(chǔ) 靜態(tài)海量轉(zhuǎn)儲(chǔ)靜態(tài)海量轉(zhuǎn)儲(chǔ) 轉(zhuǎn)儲(chǔ)轉(zhuǎn)儲(chǔ) 方式方式 增量轉(zhuǎn)儲(chǔ)增量轉(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ǔ) 恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)的實(shí)現(xiàn)技術(shù): q登記日志文件登記日志文件 日志文件日志文件: 記錄事務(wù)對(duì)數(shù)據(jù)庫(kù)更新操作的文件記錄事務(wù)對(duì)數(shù)據(jù)庫(kù)更新操作的文件 類(lèi)型類(lèi)型 以以數(shù)據(jù)塊數(shù)據(jù)塊為單位的日志文件為單位的日志文件 日志文件的內(nèi)容日志文件的內(nèi)容: 事務(wù)標(biāo)識(shí)事務(wù)標(biāo)識(shí) + 被更新的數(shù)據(jù)塊被更新的數(shù)據(jù)塊 恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)的實(shí)現(xiàn)技術(shù): q登記日志文件登記日志文件 日志文件日志文件: 記錄事務(wù)對(duì)數(shù)據(jù)庫(kù)更新操作的文件記錄事務(wù)對(duì)數(shù)據(jù)庫(kù)更新操作的文件 類(lèi)型類(lèi)型 以以記錄記錄為單位的日志文件為單位

16、的日志文件 日志文件的內(nèi)容日志文件的內(nèi)容: 記錄各個(gè)事務(wù)的開(kāi)始記錄各個(gè)事務(wù)的開(kāi)始, 結(jié)束結(jié)束 和所有的更新操作和所有的更新操作 日志記錄的內(nèi)容主要包括日志記錄的內(nèi)容主要包括: 1 事務(wù)標(biāo)識(shí)事務(wù)標(biāo)識(shí) 4 更新前數(shù)據(jù)的舊值更新前數(shù)據(jù)的舊值 2 操作的類(lèi)型操作的類(lèi)型 5 更新后的新值更新后的新值 3 操作對(duì)象操作對(duì)象 恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)的實(shí)現(xiàn)技術(shù): 例如例如: 日志文件的一部分日志文件的一部分 1 begin 1 update A 10 5 2 begin 2 insert C 8 2 commit 日志文件的作用日志文件的作用: 恢復(fù)恢復(fù) 事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù)事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù): 必

17、須建立日志文件必須建立日志文件 1 確定哪些事務(wù)結(jié)束確定哪些事務(wù)結(jié)束, 哪些沒(méi)結(jié)束哪些沒(méi)結(jié)束(正向掃描日志文件正向掃描日志文件) 2 對(duì)未結(jié)束的事務(wù)采取對(duì)未結(jié)束的事務(wù)采取undo操作操作(反向掃描日志文件反向掃描日志文件) 3 對(duì)已結(jié)束的事務(wù)采取對(duì)已結(jié)束的事務(wù)采取redo操作操作(正向掃描日志文件正向掃描日志文件) 日日 志志 恢恢 復(fù)復(fù) 恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)的實(shí)現(xiàn)技術(shù): 在靜態(tài)轉(zhuǎn)儲(chǔ)方式中在靜態(tài)轉(zhuǎn)儲(chǔ)方式中: 也可以建立日志也可以建立日志, 恢復(fù)過(guò)程為恢復(fù)過(guò)程為 1 裝入后援副本,裝入后援副本, 2 用日志恢復(fù)用日志恢復(fù) 靜態(tài)轉(zhuǎn)儲(chǔ)無(wú)日志恢復(fù)示意圖靜態(tài)轉(zhuǎn)儲(chǔ)無(wú)日志恢復(fù)示意圖: t1t2t3 正常運(yùn)行正

18、常運(yùn)行: 靜態(tài)轉(zhuǎn)儲(chǔ)靜態(tài)轉(zhuǎn)儲(chǔ) 運(yùn)行事務(wù)運(yùn)行事務(wù) 故障發(fā)生點(diǎn)故障發(fā)生點(diǎn) tatbtc 介質(zhì)故障恢復(fù)介質(zhì)故障恢復(fù) 重裝后援副本重裝后援副本 恢復(fù)恢復(fù):重新重新運(yùn)運(yùn) 行事務(wù)程序行事務(wù)程序 故障發(fā)生點(diǎn)故障發(fā)生點(diǎn) 數(shù)據(jù)庫(kù)狀態(tài)數(shù)據(jù)庫(kù)狀態(tài) 繼續(xù)運(yùn)行繼續(xù)運(yùn)行 數(shù)據(jù)示意數(shù)據(jù)示意 恢復(fù)后數(shù)據(jù)示意恢復(fù)后數(shù)據(jù)示意 恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)的實(shí)現(xiàn)技術(shù): 靜態(tài)轉(zhuǎn)儲(chǔ)有日志恢復(fù)示意圖靜態(tài)轉(zhuǎn)儲(chǔ)有日志恢復(fù)示意圖: t1t2t3 正常運(yùn)行正常運(yùn)行: 靜態(tài)轉(zhuǎn)儲(chǔ)靜態(tài)轉(zhuǎn)儲(chǔ) 運(yùn)行事務(wù)運(yùn)行事務(wù) 故障發(fā)生點(diǎn)故障發(fā)生點(diǎn) 登記日志文件登記日志文件 tatbtc 介質(zhì)故障恢復(fù)介質(zhì)故障恢復(fù) 重裝后援副本重裝后援副本 按日志恢復(fù)按日志恢復(fù) 故障發(fā)生點(diǎn)故障發(fā)生點(diǎn)

19、 數(shù)據(jù)庫(kù)狀態(tài)數(shù)據(jù)庫(kù)狀態(tài) 繼續(xù)運(yùn)行繼續(xù)運(yùn)行 登記日志文件登記日志文件 日志文件日志文件 數(shù)據(jù)示意數(shù)據(jù)示意 恢復(fù)后數(shù)據(jù)示意恢復(fù)后數(shù)據(jù)示意 故障發(fā)生點(diǎn)故障發(fā)生點(diǎn) 前數(shù)據(jù)庫(kù)一前數(shù)據(jù)庫(kù)一 致?tīng)顟B(tài)致?tīng)顟B(tài) 按日志恢復(fù)的好處?按日志恢復(fù)的好處? 不必運(yùn)行事務(wù)程序不必運(yùn)行事務(wù)程序 在動(dòng)態(tài)轉(zhuǎn)儲(chǔ)方式中在動(dòng)態(tài)轉(zhuǎn)儲(chǔ)方式中: 必須必須建立日志建立日志, 恢復(fù)過(guò)程為恢復(fù)過(guò)程為 1 裝入后援副本裝入后援副本 2 用日志恢復(fù)用日志恢復(fù) t1t2t3 正常運(yùn)行正常運(yùn)行: 動(dòng)態(tài)轉(zhuǎn)儲(chǔ)動(dòng)態(tài)轉(zhuǎn)儲(chǔ) 運(yùn)行事務(wù)運(yùn)行事務(wù) 故障發(fā)生點(diǎn)故障發(fā)生點(diǎn) 登記日志文件登記日志文件 tatbtc 介質(zhì)故障恢復(fù)介質(zhì)故障恢復(fù) 重裝后援副本重裝后援副本 按日志恢復(fù)

20、按日志恢復(fù) 故障發(fā)生點(diǎn)故障發(fā)生點(diǎn) 前數(shù)據(jù)庫(kù)一前數(shù)據(jù)庫(kù)一 致?tīng)顟B(tài)致?tīng)顟B(tài) 日志文件日志文件 繼續(xù)運(yùn)行繼續(xù)運(yùn)行 登記日志文件登記日志文件 數(shù)據(jù)庫(kù)中數(shù)據(jù)示意數(shù)據(jù)庫(kù)中數(shù)據(jù)示意 故障發(fā)生點(diǎn)故障發(fā)生點(diǎn) 數(shù)據(jù)庫(kù)狀態(tài)數(shù)據(jù)庫(kù)狀態(tài) 恢復(fù)后數(shù)據(jù)庫(kù)中數(shù)據(jù)示意恢復(fù)后數(shù)據(jù)庫(kù)中數(shù)據(jù)示意 恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)的實(shí)現(xiàn)技術(shù): 登記日志文件登記日志文件 登記的次序嚴(yán)格按事務(wù)實(shí)際執(zhí)行的順序登記的次序嚴(yán)格按事務(wù)實(shí)際執(zhí)行的順序 必須必須先寫(xiě)日志文件先寫(xiě)日志文件, 后寫(xiě)數(shù)據(jù)庫(kù)后寫(xiě)數(shù)據(jù)庫(kù) 日志文件日志文件 數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) A=30 修改的數(shù)據(jù)修改的數(shù)據(jù) 關(guān)于此修改的日志記錄關(guān)于此修改的日志記錄 數(shù)據(jù)修改數(shù)據(jù)修改 1 begin 1 update

21、A 10 30 恢復(fù)策略恢復(fù)策略: q事務(wù)故障恢復(fù)事務(wù)故障恢復(fù): 事務(wù)未結(jié)束事務(wù)未結(jié)束, 由系統(tǒng)自動(dòng)恢復(fù)由系統(tǒng)自動(dòng)恢復(fù), 采采 用用undo操作操作, 系統(tǒng)恢復(fù)步驟系統(tǒng)恢復(fù)步驟: 反向掃描日志文件反向掃描日志文件, 查找該事務(wù)的更新操作查找該事務(wù)的更新操作 對(duì)該事務(wù)的更新操作執(zhí)行對(duì)該事務(wù)的更新操作執(zhí)行undo(將日志中更(將日志中更 新前的值寫(xiě)入數(shù)據(jù)庫(kù))新前的值寫(xiě)入數(shù)據(jù)庫(kù)) 繼續(xù)反向掃描日志文件繼續(xù)反向掃描日志文件, 查找該事務(wù)的其他更查找該事務(wù)的其他更 新操作新操作, 并做同樣的處理并做同樣的處理 直至讀到該事務(wù)的開(kāi)始標(biāo)志直至讀到該事務(wù)的開(kāi)始標(biāo)志, 該事務(wù)恢復(fù)完成該事務(wù)恢復(fù)完成 恢復(fù)策略恢復(fù)

22、策略: q系統(tǒng)故障恢復(fù)系統(tǒng)故障恢復(fù): 系統(tǒng)重新啟動(dòng)時(shí)系統(tǒng)重新啟動(dòng)時(shí), 由系統(tǒng)自動(dòng)恢由系統(tǒng)自動(dòng)恢 復(fù)復(fù), 對(duì)未結(jié)束的事務(wù)采用對(duì)未結(jié)束的事務(wù)采用undo操作操作, 對(duì)已結(jié)束的對(duì)已結(jié)束的 事務(wù)采用事務(wù)采用redo操作操作, 系統(tǒng)恢復(fù)步驟系統(tǒng)恢復(fù)步驟: 正向掃描日志文件正向掃描日志文件, 找出在故障發(fā)生前已提交找出在故障發(fā)生前已提交 的事務(wù)的事務(wù), 將其事務(wù)標(biāo)識(shí)記入重做將其事務(wù)標(biāo)識(shí)記入重做(redo)隊(duì)列隊(duì)列, 找找 出未提交的事務(wù)出未提交的事務(wù), 將其事務(wù)標(biāo)識(shí)記入撤銷(xiāo)將其事務(wù)標(biāo)識(shí)記入撤銷(xiāo) (undo)隊(duì)列隊(duì)列 對(duì)撤銷(xiāo)隊(duì)列中的事務(wù)進(jìn)行撤銷(xiāo)對(duì)撤銷(xiāo)隊(duì)列中的事務(wù)進(jìn)行撤銷(xiāo)(undo)處理處理 對(duì)重做隊(duì)列中的事

23、務(wù)進(jìn)行重做對(duì)重做隊(duì)列中的事務(wù)進(jìn)行重做(redo)處理處理 恢復(fù)策略恢復(fù)策略: q介質(zhì)故障恢復(fù)介質(zhì)故障恢復(fù): 需要需要DBA介入介入, 實(shí)際恢復(fù)由系統(tǒng)完實(shí)際恢復(fù)由系統(tǒng)完 成成, 具體步驟具體步驟: 裝入后援副本裝入后援副本 裝入相應(yīng)的日志文件副本裝入相應(yīng)的日志文件副本 啟動(dòng)恢復(fù)程序按日志恢復(fù)啟動(dòng)恢復(fù)程序按日志恢復(fù) !日志文件也要轉(zhuǎn)儲(chǔ)日志文件也要轉(zhuǎn)儲(chǔ) !日志和數(shù)據(jù)庫(kù)不在同一磁盤(pán)日志和數(shù)據(jù)庫(kù)不在同一磁盤(pán) 具有檢測(cè)點(diǎn)的恢復(fù)具有檢測(cè)點(diǎn)的恢復(fù): q在在系統(tǒng)故障和介質(zhì)故障系統(tǒng)故障和介質(zhì)故障中中, 要掃描日志文件要掃描日志文件, 確定確定 哪些事務(wù)已提交哪些事務(wù)已提交, 哪些事務(wù)未提交哪些事務(wù)未提交, 如果日

24、志文件如果日志文件 很長(zhǎng)很長(zhǎng), 存在兩個(gè)問(wèn)題存在兩個(gè)問(wèn)題 掃描日志花費(fèi)時(shí)間長(zhǎng)掃描日志花費(fèi)時(shí)間長(zhǎng) 許多需要許多需要redo的事務(wù)所涉及的數(shù)據(jù)已寫(xiě)到數(shù)據(jù)的事務(wù)所涉及的數(shù)據(jù)已寫(xiě)到數(shù)據(jù) 庫(kù)中庫(kù)中, 不在緩沖區(qū)中不在緩沖區(qū)中 具有檢測(cè)點(diǎn)的恢復(fù)具有檢測(cè)點(diǎn)的恢復(fù): q具有檢測(cè)點(diǎn)的恢復(fù)技術(shù)具有檢測(cè)點(diǎn)的恢復(fù)技術(shù): 在日志文件中增加檢測(cè)在日志文件中增加檢測(cè) 點(diǎn)記錄點(diǎn)記錄, 增加一個(gè)重新開(kāi)始文件增加一個(gè)重新開(kāi)始文件, 動(dòng)態(tài)維護(hù)日志文動(dòng)態(tài)維護(hù)日志文 件件 檢測(cè)點(diǎn)記錄的內(nèi)容檢測(cè)點(diǎn)記錄的內(nèi)容: 建立檢測(cè)點(diǎn)時(shí)刻所有正在執(zhí)行的事務(wù)清單建立檢測(cè)點(diǎn)時(shí)刻所有正在執(zhí)行的事務(wù)清單 這些事務(wù)最近一個(gè)日志記錄的地址這些事務(wù)最近一個(gè)日志記錄

25、的地址 具有檢測(cè)點(diǎn)的恢復(fù)具有檢測(cè)點(diǎn)的恢復(fù): 動(dòng)態(tài)維護(hù)日志文件動(dòng)態(tài)維護(hù)日志文件: 建立檢測(cè)點(diǎn)建立檢測(cè)點(diǎn), 保存數(shù)據(jù)庫(kù)狀態(tài)保存數(shù)據(jù)庫(kù)狀態(tài), 步驟為步驟為 將當(dāng)前日志緩沖中的日志記錄寫(xiě)入日志文件將當(dāng)前日志緩沖中的日志記錄寫(xiě)入日志文件 在日志文件中寫(xiě)入一個(gè)檢測(cè)點(diǎn)記錄在日志文件中寫(xiě)入一個(gè)檢測(cè)點(diǎn)記錄 將當(dāng)前數(shù)據(jù)緩沖區(qū)中的所有數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)將當(dāng)前數(shù)據(jù)緩沖區(qū)中的所有數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù) 將檢測(cè)點(diǎn)記錄的地址寫(xiě)入重新開(kāi)始文件將檢測(cè)點(diǎn)記錄的地址寫(xiě)入重新開(kāi)始文件 T1 D1 T2 D2 Ci檢測(cè)點(diǎn)記錄地址檢測(cè)點(diǎn)記錄地址 檢測(cè)點(diǎn)檢測(cè)點(diǎn)Ci 的重新開(kāi)的重新開(kāi) 始記錄始記錄 重新開(kāi)始文件重新開(kāi)始文件 日志文件日志文件 具有檢測(cè)點(diǎn)

26、的恢復(fù)具有檢測(cè)點(diǎn)的恢復(fù): 使用檢測(cè)點(diǎn)進(jìn)行恢復(fù)使用檢測(cè)點(diǎn)進(jìn)行恢復(fù) 使用檢測(cè)點(diǎn)進(jìn)行恢復(fù)的步驟使用檢測(cè)點(diǎn)進(jìn)行恢復(fù)的步驟: 在重新開(kāi)始文件中找到最后一個(gè)記錄在重新開(kāi)始文件中找到最后一個(gè)記錄, 從而找從而找 到最后一個(gè)檢測(cè)點(diǎn)記錄到最后一個(gè)檢測(cè)點(diǎn)記錄 找到正在執(zhí)行的事務(wù)清單找到正在執(zhí)行的事務(wù)清單, 將其放入將其放入undo隊(duì)列隊(duì)列 Tc(檢測(cè)點(diǎn)檢測(cè)點(diǎn)) Tc(系統(tǒng)故障系統(tǒng)故障) T1 T2 T3 T4 T5 Redo: T2, T4 Undo: T3, T5 具有檢測(cè)點(diǎn)的恢復(fù)具有檢測(cè)點(diǎn)的恢復(fù): 從檢測(cè)點(diǎn)開(kāi)始正向掃描日志文件從檢測(cè)點(diǎn)開(kāi)始正向掃描日志文件, 如有新事務(wù)如有新事務(wù) Ti開(kāi)始開(kāi)始, 將其放入將其放

27、入undo隊(duì)列隊(duì)列, 如有事務(wù)如有事務(wù)Tj提交提交, 將其移入將其移入redo隊(duì)列隊(duì)列, 直到日志文件結(jié)束直到日志文件結(jié)束 對(duì)對(duì)undo隊(duì)列中的事務(wù)執(zhí)行隊(duì)列中的事務(wù)執(zhí)行undo操作操作, 對(duì)對(duì)redo 隊(duì)列中的事務(wù)執(zhí)行隊(duì)列中的事務(wù)執(zhí)行redo操作操作 ORACLE恢復(fù)機(jī)制恢復(fù)機(jī)制: q采用了轉(zhuǎn)儲(chǔ)和登記日志文件兩個(gè)技術(shù)采用了轉(zhuǎn)儲(chǔ)和登記日志文件兩個(gè)技術(shù) vORACLE向向DBA提供了多種轉(zhuǎn)儲(chǔ)后備副本的方法提供了多種轉(zhuǎn)儲(chǔ)后備副本的方法 如文件拷貝如文件拷貝 EXPORT實(shí)用程序?qū)嵱贸绦?用用SQL命令命令SPOOL以及自己編程實(shí)現(xiàn)等。以及自己編程實(shí)現(xiàn)等。 vORACLE提供了多種重裝后備副本的方法提供了多種重裝后備副本的方法 如文件拷貝如文件拷貝 IMPORT實(shí)用程序?qū)嵱贸绦?利用利用SQL*LOADER以及自己編程實(shí)現(xiàn)等。以及自己編程實(shí)現(xiàn)等。 ORACLE恢復(fù)機(jī)制恢復(fù)機(jī)制: q采用了轉(zhuǎn)儲(chǔ)和登記日志文件兩個(gè)技術(shù)采用了轉(zhuǎn)儲(chǔ)和登記日志文件兩個(gè)技術(shù) v在在ORACLE 早期版本(早期版本(V.5)中)中 v日志文件以數(shù)據(jù)塊為單位日志文件以數(shù)據(jù)塊為單位 v將記錄數(shù)據(jù)庫(kù)更新前的舊值的日志文件稱(chēng)為將記錄數(shù)據(jù)庫(kù)更新前的舊值的日志文件稱(chēng)為數(shù)據(jù)庫(kù)前像文數(shù)據(jù)庫(kù)前像文 件件(Before Image,簡(jiǎn)稱(chēng),簡(jiǎn)稱(chēng)B

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論