《數(shù)據(jù)庫技術(shù)與應(yīng)用》電子課件
《數(shù)據(jù)庫技術(shù)與應(yīng)用》電子課件,數(shù)據(jù)庫技術(shù)與應(yīng)用,數(shù)據(jù)庫技術(shù),應(yīng)用,電子,課件
第八章數(shù)據(jù)庫恢復(fù)技術(shù)本章學(xué)習(xí)目標(biāo)l 掌握事務(wù)的概念與特性。l 了解故障的種類。l 掌握數(shù)據(jù)轉(zhuǎn)儲(chǔ)和日志文件在數(shù)據(jù)庫恢復(fù)中的作用。l 清楚各種恢復(fù)策略的處理過程。l 掌握具有檢查點(diǎn)的恢復(fù)技術(shù)。l 了解數(shù)據(jù)庫鏡像的作用。本章概述計(jì)算機(jī)系統(tǒng)與其他任何設(shè)備一樣會(huì)發(fā)生故障。造成故障的原因多種多樣,包括磁盤故障、電源故障、計(jì)算機(jī)病毒、軟件錯(cuò)誤、意外事故等,甚至人為破壞。這些情況一旦發(fā)生,就可能導(dǎo)致信息丟失。因此,數(shù)據(jù)庫系統(tǒng)必須預(yù)先采取措施,以保證即使發(fā)生故障,也能將數(shù)據(jù)庫恢復(fù)到故障發(fā)生前的某種一致狀態(tài)。本章首先介紹事務(wù)的概念及特性,然后分析數(shù)據(jù)庫系統(tǒng)故障的種類,最后針對(duì)不同的故障討論對(duì)應(yīng)的恢復(fù)策略及實(shí)現(xiàn)技術(shù)。主要內(nèi)容8.1 事務(wù)的基本概念8.3 故障的分類8.4 恢復(fù)的實(shí)現(xiàn)技術(shù)8.5 恢復(fù)策略8.2 數(shù)據(jù)庫恢復(fù)概述8.6 具有檢查點(diǎn)的恢復(fù)技術(shù)8.7 數(shù)據(jù)庫鏡像主要內(nèi)容8.1 事務(wù)的基本概念8.3 故障的分類8.4 恢復(fù)的實(shí)現(xiàn)技術(shù)8.5 恢復(fù)策略8.2 數(shù)據(jù)庫恢復(fù)概述8.6 具有檢查點(diǎn)的恢復(fù)技術(shù)8.7 數(shù)據(jù)庫鏡像8.1.1 事務(wù)的概念l 一個(gè)事務(wù)可以是一條一個(gè)事務(wù)可以是一條SQLSQL語句、一組語句、一組SQLSQL語句或整個(gè)程序。語句或整個(gè)程序。l 事務(wù)與程序:一般地講,一個(gè)程序包含多個(gè)事務(wù)。事務(wù)與程序:一般地講,一個(gè)程序包含多個(gè)事務(wù)。l 事事務(wù)務(wù)由由事事務(wù)務(wù)開開始始和和事事務(wù)務(wù)結(jié)結(jié)束束之之間間執(zhí)執(zhí)行行的的全全體體操操作作組組成成。事事務(wù)務(wù)的的開開始始和和結(jié)結(jié)束束可可以以由由用用戶戶顯顯示示控控制制。若若用用戶戶沒沒有有顯顯式式地地定定義義事事務(wù)務(wù),則則由由DBMS按按缺省自動(dòng)劃分事務(wù)。缺省自動(dòng)劃分事務(wù)。概概念念:事事務(wù)務(wù)是是用用戶戶定定義義的的一一個(gè)個(gè)數(shù)數(shù)據(jù)據(jù)庫庫操操作作序序列列,這這些些操操作作要么全執(zhí)行,要么全不執(zhí)行,是一個(gè)不可分割的工作單位。要么全執(zhí)行,要么全不執(zhí)行,是一個(gè)不可分割的工作單位。8.1.1 事務(wù)的概念 定義事務(wù)的兩種方式:定義事務(wù)的兩種方式:COMMIT表示事務(wù)提交,即提交事務(wù)的所有操作。將事務(wù)中所有表示事務(wù)提交,即提交事務(wù)的所有操作。將事務(wù)中所有對(duì)數(shù)據(jù)庫的更新寫回到磁盤上的物理數(shù)據(jù)庫中去,事務(wù)正常結(jié)束。對(duì)數(shù)據(jù)庫的更新寫回到磁盤上的物理數(shù)據(jù)庫中去,事務(wù)正常結(jié)束。ROLLBACK表示事務(wù)回滾,即如果在事務(wù)運(yùn)行的過程中出現(xiàn)了故表示事務(wù)回滾,即如果在事務(wù)運(yùn)行的過程中出現(xiàn)了故障而不能繼續(xù)執(zhí)行時(shí),系統(tǒng)將事務(wù)中對(duì)數(shù)據(jù)庫的所有已完成的操作全障而不能繼續(xù)執(zhí)行時(shí),系統(tǒng)將事務(wù)中對(duì)數(shù)據(jù)庫的所有已完成的操作全部撤銷,回滾到事務(wù)開始時(shí)的狀態(tài)。這里的操作指對(duì)數(shù)據(jù)庫的更新操部撤銷,回滾到事務(wù)開始時(shí)的狀態(tài)。這里的操作指對(duì)數(shù)據(jù)庫的更新操作。作。BEGIN TRANACTION;/事務(wù)開始事務(wù)開始 COMMIT;/事務(wù)提交事務(wù)提交 BEGIN TRANACTION;/事務(wù)開始事務(wù)開始 ROLLBACK;/事務(wù)回滾事務(wù)回滾事務(wù)特性隔離性Isolation一致性Consistency持續(xù)性Durability8.1.2 事務(wù)的特性原子性Atomicity事務(wù)具有四個(gè)特性:事務(wù)具有四個(gè)特性:l原子性原子性l一致性一致性l隔離性隔離性l持續(xù)性持續(xù)性簡(jiǎn)稱簡(jiǎn)稱ACIDACID特性特性。8.1.2 事務(wù)的特性l 原子性原子性 事務(wù)是數(shù)據(jù)庫處理的邏輯單位,是一個(gè)不可分割的整體,事務(wù)中包括的所有操作要么全都執(zhí)行完,要么全都不執(zhí)行。l 一致性一致性 事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。例:兩個(gè)銀行賬戶例:兩個(gè)銀行賬戶A A和和B B,從賬戶,從賬戶A A中取出中取出1 1千元轉(zhuǎn)賬到賬戶千元轉(zhuǎn)賬到賬戶B B 定義一個(gè)事務(wù),包含兩個(gè)操作:1.從賬戶A中取出1000元(A-1000)2.向賬戶B存入1000元(B+1000)。兩個(gè)操作要么全做,要么全不做,則保證數(shù)據(jù)庫處于一致性狀態(tài)。由此可見,原子性是保證數(shù)據(jù)庫一致性的前提。8.1.2 事務(wù)的特性l 隔離性隔離性 一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾,即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對(duì)其他并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。l 持續(xù)性持續(xù)性 持續(xù)性也稱永久性(Permanence),指一個(gè)事務(wù)一旦成功提交,它對(duì)數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的,接下來的其他操作或故障不應(yīng)該對(duì)其執(zhí)行結(jié)果有任何影響。持續(xù)性的意義在于保證數(shù)據(jù)庫具有可恢復(fù)性。事務(wù)的ACID特性可能遭到破壞的因素有:1.多個(gè)事務(wù)并行運(yùn)行時(shí),不同事務(wù)的操作交叉執(zhí)行;2.事務(wù)在運(yùn)行過程中被強(qiáng)行停止。主要內(nèi)容8.1 事務(wù)的基本概念8.3 故障的分類8.4 恢復(fù)的實(shí)現(xiàn)技術(shù)8.5 恢復(fù)策略8.2 數(shù)據(jù)庫恢復(fù)概述8.6 具有檢查點(diǎn)的恢復(fù)技術(shù)8.7 數(shù)據(jù)庫鏡像8.2 數(shù)據(jù)庫恢復(fù)概述l 數(shù)據(jù)庫恢復(fù)的重要性數(shù)據(jù)庫恢復(fù)的重要性盡管數(shù)據(jù)庫系統(tǒng)采取很多措施保證事務(wù)的正確執(zhí)行,但是仍舊無法保證數(shù)據(jù)庫中數(shù)據(jù)的絕對(duì)安全,故障是不可避免的。故障一旦發(fā)生,輕則造成運(yùn)行事務(wù)非正常中斷,影響數(shù)據(jù)庫中數(shù)據(jù)的一致性,重則破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中的數(shù)據(jù)全部或部分丟失。因此數(shù)據(jù)庫管理系統(tǒng)必須具有數(shù)據(jù)庫恢復(fù)功能,即把數(shù)據(jù)庫恢復(fù)到故障發(fā)生前的某種一致狀態(tài)的功能。l 實(shí)現(xiàn)恢復(fù)的基本思想實(shí)現(xiàn)恢復(fù)的基本思想針對(duì)各種不同的故障有不同的恢復(fù)技術(shù),但實(shí)現(xiàn)恢復(fù)的基本思想相同:在系統(tǒng)運(yùn)行時(shí)建立“冗余”數(shù)據(jù),保證有足夠的信息可用于故障恢復(fù)。故障發(fā)生后使用“冗余”數(shù)據(jù)及事先建立起的日志文件,重新構(gòu)建數(shù)據(jù)庫中已經(jīng)被損壞的數(shù)據(jù),或者恢復(fù)數(shù)據(jù)庫中已經(jīng)不正確的數(shù)據(jù)。主要內(nèi)容8.1 事務(wù)的基本概念8.3 故障的分類8.4 恢復(fù)的實(shí)現(xiàn)技術(shù)8.5 恢復(fù)策略8.2 數(shù)據(jù)庫恢復(fù)概述8.6 具有檢查點(diǎn)的恢復(fù)技術(shù)8.7 數(shù)據(jù)庫鏡像8.3 故障的分類 數(shù)數(shù)據(jù)據(jù)庫庫系系統(tǒng)統(tǒng)可可能能發(fā)發(fā)生生的的故故障障有有很很多多種種,每每種種故故障障需需要要不同的方法來處理。不同的方法來處理。事務(wù)事務(wù)故障故障其他其他故障故障故障分類系統(tǒng)系統(tǒng)故障故障介質(zhì)介質(zhì)故障故障硬故障,故障原因:磁盤損壞及 磁頭碰撞等恢復(fù)策略:修復(fù)或更換介質(zhì) 裝入數(shù)據(jù)庫副本 用日志文件恢復(fù)恢復(fù)策略:清除病毒及阻止攻擊等故障原因:1.邏輯錯(cuò)誤2.系統(tǒng)錯(cuò)誤恢復(fù)操作:事務(wù)撤銷(UNDO)軟故障,故障原因:系統(tǒng)斷電、DBMS代碼錯(cuò)誤等恢復(fù)操作:已寫入的結(jié)果,強(qiáng)行撤銷(UNDO)緩沖區(qū)中的事務(wù),重做(REDO)故障原因:1.計(jì)算機(jī)病毒2.黑客入侵等主要內(nèi)容8.1 事務(wù)的基本概念8.3 故障的分類8.4 恢復(fù)的實(shí)現(xiàn)技術(shù)8.5 恢復(fù)策略8.2 數(shù)據(jù)庫恢復(fù)概述8.6 具有檢查點(diǎn)的恢復(fù)技術(shù)8.7 數(shù)據(jù)庫鏡像8.4.1 數(shù)據(jù)轉(zhuǎn)儲(chǔ) 數(shù)據(jù)轉(zhuǎn)儲(chǔ)是數(shù)據(jù)庫恢復(fù)中采用的基本技術(shù)。所謂轉(zhuǎn)儲(chǔ)即DBA定期地將整個(gè)數(shù)據(jù)庫復(fù)制到磁帶或另一個(gè)磁盤上保存起來的過程。備用的數(shù)據(jù)稱為后備副本(backup)或后援副本。圖8-1 當(dāng)數(shù)據(jù)庫遭到破壞后可以將后備副本重新裝入,并重新運(yùn)行自轉(zhuǎn)儲(chǔ)以后的所有更新事務(wù),將數(shù)據(jù)庫恢復(fù)到故障發(fā)生前的一致狀態(tài)。8.4.1 數(shù)據(jù)轉(zhuǎn)儲(chǔ)數(shù)據(jù)轉(zhuǎn)儲(chǔ)可以分為靜態(tài)轉(zhuǎn)儲(chǔ)和動(dòng)態(tài)轉(zhuǎn)儲(chǔ)。數(shù)據(jù)轉(zhuǎn)儲(chǔ)可以分為靜態(tài)轉(zhuǎn)儲(chǔ)和動(dòng)態(tài)轉(zhuǎn)儲(chǔ)。靜態(tài)轉(zhuǎn)儲(chǔ)動(dòng)態(tài)轉(zhuǎn)儲(chǔ)定義在系統(tǒng)中無運(yùn)行事務(wù)時(shí)進(jìn)行的轉(zhuǎn)儲(chǔ)操作,即轉(zhuǎn)儲(chǔ)期間不允許(或不存在)對(duì)數(shù)據(jù)庫的任何存取、修改活動(dòng)動(dòng)態(tài)轉(zhuǎn)儲(chǔ)是指轉(zhuǎn)儲(chǔ)期間允許對(duì)數(shù)據(jù)庫進(jìn)行存取或修改,即轉(zhuǎn)儲(chǔ)和用戶事務(wù)可以并發(fā)執(zhí)行優(yōu)點(diǎn)操作簡(jiǎn)單,保證數(shù)據(jù)一致性克服了靜態(tài)轉(zhuǎn)儲(chǔ)的缺點(diǎn),不用等待正在運(yùn)行的用戶事務(wù)結(jié)束,也不影響新事務(wù)的運(yùn)行缺點(diǎn)轉(zhuǎn)儲(chǔ)操作必須等待正在運(yùn)行的用戶事務(wù)結(jié)束才能進(jìn)行,并且新的事務(wù)必須等待轉(zhuǎn)儲(chǔ)結(jié)束才能執(zhí)行技術(shù)要求高,轉(zhuǎn)儲(chǔ)過程相當(dāng)繁鎖。在動(dòng)態(tài)轉(zhuǎn)儲(chǔ)期間,需建立日志文件(log file),把轉(zhuǎn)儲(chǔ)期間各事務(wù)對(duì)數(shù)據(jù)庫的修改活動(dòng)登記下來 從另一角度,數(shù)據(jù)轉(zhuǎn)儲(chǔ)可分為海量轉(zhuǎn)儲(chǔ)和增量轉(zhuǎn)儲(chǔ)。海量轉(zhuǎn)儲(chǔ)即每次轉(zhuǎn)儲(chǔ)全部數(shù)據(jù)庫。增量轉(zhuǎn)儲(chǔ)即每次只轉(zhuǎn)儲(chǔ)上一次轉(zhuǎn)儲(chǔ)后更新過的數(shù)據(jù)。8.4.2 日志文件(Logging)日志文件是用來記錄事務(wù)對(duì)數(shù)據(jù)庫的更新操作的文件。日志文件是用來記錄事務(wù)對(duì)數(shù)據(jù)庫的更新操作的文件。l日志文件格式 以記錄為單位的日志文件;以數(shù)據(jù)塊為單位的日志文件。l日志文件內(nèi)容 對(duì)于以記錄為單位的日志文件,日志文件中需要登記以下內(nèi)容:(1)各個(gè)事務(wù)的開始(BEGIN TRANSACTION)標(biāo)記。(2)各個(gè)事務(wù)的結(jié)束(COMMIT或ROLL BACK)標(biāo)記。(3)各個(gè)事務(wù)的所有更新操作。其中,日志記錄的內(nèi)容包括:事務(wù)標(biāo)識(shí)、操作類型、操作對(duì)象、更新前數(shù)據(jù)的舊值、更新后數(shù)據(jù)的新值。對(duì)于以數(shù)據(jù)塊為單位的日志文件,日志記錄的內(nèi)容包括事務(wù)標(biāo)識(shí)和被更新的數(shù)據(jù)塊。8.4.2 日志文件(Logging)l日志文件的作用日志文件在數(shù)據(jù)庫恢復(fù)中起著至關(guān)重要的作用,具體作用是:(1)事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù)必須用日志文件。(2)在動(dòng)態(tài)轉(zhuǎn)儲(chǔ)方式中必須建立日志文件,后備副本和日志文件綜合起來有效地恢復(fù)數(shù)據(jù)庫。(3)在靜態(tài)轉(zhuǎn)儲(chǔ)方式中,可以建立日志文件。當(dāng)數(shù)據(jù)庫被破壞后可重新裝入后備副本把數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲(chǔ)結(jié)束時(shí)刻的正確狀態(tài),然后利用日志文件,把已完成的事務(wù)進(jìn)行重做,對(duì)故障發(fā)生時(shí)尚未完成的事務(wù)進(jìn)行撤消。圖 8-28.4.2 日志文件(Logging)l登記日志文件原則:(1)日志記錄的登記次序嚴(yán)格按并發(fā)事務(wù)執(zhí)行的時(shí)間次序。(2)必須先寫日志文件,后寫數(shù)據(jù)庫。即“先記日志文件”。若先寫了數(shù)據(jù)庫,寫完之后發(fā)生了故障,而日志文件中沒有登記下這個(gè)修改,則以后就無法恢復(fù)這個(gè)修改了。若先寫日志,但沒有修改數(shù)據(jù)庫,按日志文件恢復(fù)時(shí)只需執(zhí)行一次不必要的UNDO操作,并不會(huì)影響數(shù)據(jù)庫的正確性。所以為了安全,一定要先寫日志文件,然后寫數(shù)據(jù)庫。主要內(nèi)容8.1 事務(wù)的基本概念8.3 故障的分類8.4 恢復(fù)的實(shí)現(xiàn)技術(shù)8.5 恢復(fù)策略8.2 數(shù)據(jù)庫恢復(fù)概述8.6 具有檢查點(diǎn)的恢復(fù)技術(shù)8.7 數(shù)據(jù)庫鏡像8.5.1 事務(wù)故障的恢復(fù) 事務(wù)故障是指事務(wù)在運(yùn)行至正常終止點(diǎn)前被中止,這時(shí)恢復(fù)子系統(tǒng)應(yīng)利用日志文件撤消(UNDO)此事務(wù)已對(duì)數(shù)據(jù)庫進(jìn)行的修改。這類恢復(fù)操作稱為事務(wù)撤銷(UNDO),其具體過程如下:(1)反向掃描文件日志(即向前掃描日志文件),查找該事務(wù)的更新操作。(2)對(duì)該事務(wù)的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫。如果記錄中是插入操作,則相當(dāng)于做刪除操作。若記錄中是刪除操作,則做插入操作。若是修改操作,則相當(dāng)于用修改前值代替修改后值。(3)繼續(xù)反向掃描日志文件,查找該事務(wù)的其他更新操作,并做同樣處理。(4)如此處理下去,直至讀到此事務(wù)的開始標(biāo)記,事務(wù)故障恢復(fù)就完成了。事務(wù)故障的恢復(fù)是由DBMS自動(dòng)啟動(dòng)恢復(fù)子系統(tǒng)完成的,對(duì)用戶透明。8.5.2 系統(tǒng)故障的恢復(fù)系統(tǒng)故障具體恢復(fù)過程如下:(1)正向掃描日志文件(即從頭掃描日志文件),找出在故障發(fā)生前已經(jīng)提交事務(wù),將其事務(wù)標(biāo)識(shí)記入重做(REDO)隊(duì)列。同時(shí)找出故障發(fā)生時(shí)尚未完成的事務(wù),將其事務(wù)標(biāo)識(shí)記入撤消隊(duì)列。(2)對(duì)撤消隊(duì)列中的各個(gè)事務(wù)進(jìn)行撤消(UNDO)處理。(3)對(duì)重做隊(duì)列中的各個(gè)事務(wù)進(jìn)行重做(REDO)處理。系統(tǒng)故障的恢復(fù)是由系統(tǒng)在重啟時(shí)自動(dòng)完成的,無需用戶干預(yù)。故障原因恢復(fù)操作未完成事務(wù)對(duì)數(shù)據(jù)庫的更新可能已寫入數(shù)據(jù)庫撤銷所有未完成的事務(wù)已提交事務(wù)對(duì)數(shù)據(jù)庫的更新可能還留在緩沖區(qū)沒來得及寫入數(shù)據(jù)庫重做所有已提交的事務(wù)8.5.2 介質(zhì)故障的恢復(fù)介質(zhì)故障是最嚴(yán)重的一種故障,介質(zhì)故障會(huì)導(dǎo)致磁盤上的物理數(shù)據(jù)和日志文件被破壞。具體過程如下:(1)裝入最新的數(shù)據(jù)庫后備副本(離故障發(fā)生時(shí)刻最近的轉(zhuǎn)儲(chǔ)副本),使數(shù)據(jù)庫恢復(fù)到最近一次轉(zhuǎn)儲(chǔ)時(shí)的一致性狀態(tài)。(2)裝入相應(yīng)的日志文件副本(轉(zhuǎn)儲(chǔ)結(jié)束時(shí)刻的日志文件副本),重做已完成的事務(wù)。將日志記錄中“更新后的值”寫入數(shù)據(jù)庫。介質(zhì)故障的恢復(fù)需要DBA介入。但DBA只需要重裝最近轉(zhuǎn)儲(chǔ)的數(shù)據(jù)庫副本和有關(guān)的各日志文件副本,然后執(zhí)行系統(tǒng)提供的恢復(fù)命令即可,具體的恢復(fù)操作仍由DBMS完成。主要內(nèi)容8.1 事務(wù)的基本概念8.3 故障的分類8.4 恢復(fù)的實(shí)現(xiàn)技術(shù)8.5 恢復(fù)策略8.2 數(shù)據(jù)庫恢復(fù)概述8.6 具有檢查點(diǎn)的恢復(fù)技術(shù)8.7 數(shù)據(jù)庫鏡像8.6 具有檢查點(diǎn)的恢復(fù)技術(shù)在在日日志志文文件件中中增增加加一一類類新新的的記記錄錄檢檢查查點(diǎn)點(diǎn)記記錄錄,增增加加一一個(gè)個(gè)重重新新開開始始文文件件,并讓恢復(fù)子系統(tǒng)在登錄日志文件期間動(dòng)態(tài)地維護(hù)日志。并讓恢復(fù)子系統(tǒng)在登錄日志文件期間動(dòng)態(tài)地維護(hù)日志。暫時(shí)中止現(xiàn)有事務(wù)的執(zhí)行將當(dāng)前日志緩沖中的所有日志記錄寫入磁盤的日志文件上在日志文件中寫入一個(gè)檢查點(diǎn)記錄將當(dāng)前數(shù)據(jù)緩沖的所有數(shù)據(jù)記錄寫入磁盤的數(shù)據(jù)庫中把檢查點(diǎn)記錄在日志文件中的地址寫入一個(gè)重新開始文件重新開始執(zhí)行現(xiàn)有事務(wù)檢檢查查點(diǎn)點(diǎn)記記錄錄的的內(nèi)內(nèi)容容包包括括:(1)(1)建建立立檢檢查查點(diǎn)點(diǎn)時(shí)時(shí)刻刻所所有有正正在在執(zhí)執(zhí)行行的的事事務(wù)務(wù)清清單單。(2)(2)這些事務(wù)最近一個(gè)日志記錄的地址。這些事務(wù)最近一個(gè)日志記錄的地址。具有檢查點(diǎn)恢復(fù)技術(shù)的流程如下圖所示:具有檢查點(diǎn)恢復(fù)技術(shù)的流程如下圖所示:8.6 具有檢查點(diǎn)的恢復(fù)技術(shù)系統(tǒng)出現(xiàn)故障時(shí)恢復(fù)子系統(tǒng)將根據(jù)事務(wù)的不同狀態(tài)采取不同的恢復(fù)策略。系統(tǒng)出現(xiàn)故障時(shí)恢復(fù)子系統(tǒng)將根據(jù)事務(wù)的不同狀態(tài)采取不同的恢復(fù)策略。圖8-4T3和T5在故障發(fā)生時(shí)還未完成,所以予以撤消;T2和T4在故障點(diǎn)之前提交,它們對(duì)數(shù)據(jù)庫所做的修改在故障發(fā)生時(shí)可能還在緩沖區(qū)中,尚未寫入數(shù)據(jù)庫,所以要執(zhí)行REDO操作;T1在檢查點(diǎn)之前已提交,所以不必執(zhí)行REDO操作。8.6 具有檢查點(diǎn)的恢復(fù)技術(shù)系統(tǒng)使用檢查點(diǎn)方法進(jìn)行恢復(fù)的流程是:(1)根據(jù)重新開始文件找到最后一個(gè)檢查點(diǎn)記錄在日志文件中的地址,由該地址在日志文件中找到最后一個(gè)檢查點(diǎn)記錄。(2)由該檢查點(diǎn)記錄得到建立檢查點(diǎn)時(shí)所有正在執(zhí)行的事務(wù)清單ACTIVE-LIST。設(shè)置兩個(gè)事務(wù)隊(duì)列:UNDO-LIST:需要執(zhí)行UNDO操作的事務(wù)集合。REDO-LIST:需要執(zhí)行REDO操作的事務(wù)集合。暫時(shí)將事務(wù)清單ACTIVE-LIST放入U(xiǎn)NDO-LIST隊(duì)列,并令REDO-LIST隊(duì)列暫為空集,如圖8-4所示。圖8-58.6 具有檢查點(diǎn)的恢復(fù)技術(shù)(3)從該檢查點(diǎn)開始正向掃描日志文件到文件結(jié)束為止,如圖8-6所示。圖8-6凡遇有BEGIN_TRANSACTION的事務(wù)放入U(xiǎn)NDO-LIST。凡遇有COMMIT的事務(wù),將它從UNDO-LIST移入REDO-LIST。(4)對(duì)UNDO-LIST中的事務(wù)執(zhí)行UNDO操作,對(duì)REDO-LIST中的事務(wù)執(zhí)行REDO操作。主要內(nèi)容8.1 事務(wù)的基本概念8.3 故障的分類8.4 恢復(fù)的實(shí)現(xiàn)技術(shù)8.5 恢復(fù)策略8.2 數(shù)據(jù)庫恢復(fù)概述8.6 具有檢查點(diǎn)的恢復(fù)技術(shù)8.7 數(shù)據(jù)庫鏡像8.7 數(shù)據(jù)庫鏡像為避免磁盤介質(zhì)出現(xiàn)故障影響數(shù)據(jù)庫的可用性,許多數(shù)據(jù)庫為避免磁盤介質(zhì)出現(xiàn)故障影響數(shù)據(jù)庫的可用性,許多數(shù)據(jù)庫管理系統(tǒng)提供了管理系統(tǒng)提供了數(shù)據(jù)庫鏡像數(shù)據(jù)庫鏡像(Mirror)(Mirror)功能用于數(shù)據(jù)庫恢復(fù)。功能用于數(shù)據(jù)庫恢復(fù)。數(shù)據(jù)庫鏡像:將整個(gè)數(shù)據(jù)庫或其中的關(guān)鍵數(shù)據(jù)同時(shí)存放在兩個(gè)分離的物理磁盤上。每當(dāng)主數(shù)據(jù)庫更新時(shí),DBMS自動(dòng)把更新后的數(shù)據(jù)復(fù)制到另一個(gè)磁盤上,從而自動(dòng)保證主數(shù)據(jù)庫與鏡像數(shù)據(jù)庫的一致性。這樣,一旦出現(xiàn)介質(zhì)故障,可由鏡像磁盤繼續(xù)提供使用,同時(shí)DBMS自動(dòng)利用鏡像磁盤數(shù)據(jù)進(jìn)行數(shù)據(jù)庫的恢復(fù),不需要關(guān)閉系統(tǒng)和重裝數(shù)據(jù)庫副本,保證“不間斷”地恢復(fù)。小結(jié)本章首先介紹了事務(wù)的基本概念和事務(wù)ACID四個(gè)特性。討論了數(shù)據(jù)庫恢復(fù)的概念和常用技術(shù)。數(shù)據(jù)庫可能會(huì)發(fā)生的故障種類一般分為事務(wù)故障、系統(tǒng)故障、介質(zhì)故障以及其他故障。數(shù)據(jù)庫故障發(fā)生后就要對(duì)數(shù)據(jù)庫進(jìn)行恢復(fù),恢復(fù)機(jī)制的基本思想是建立冗余數(shù)據(jù)并利用冗余數(shù)據(jù)實(shí)施數(shù)據(jù)庫恢復(fù)。數(shù)據(jù)轉(zhuǎn)儲(chǔ)和登記日志文件是建立冗余數(shù)據(jù)最常用的技術(shù)。實(shí)施數(shù)據(jù)庫恢復(fù)的基本原理是利用存儲(chǔ)在后備副本、日志文件和數(shù)據(jù)庫鏡像中的冗余數(shù)據(jù)來重建數(shù)據(jù)庫。不同類型的故障的恢復(fù)策略和方法有所不同。思考練習(xí)1.1.試述事務(wù)的概念及事務(wù)的四個(gè)特性。試述事務(wù)的概念及事務(wù)的四個(gè)特性。2.2.數(shù)據(jù)庫運(yùn)行中可能產(chǎn)生的故障有哪些?簡(jiǎn)述不同故障對(duì)數(shù)據(jù)庫數(shù)據(jù)庫運(yùn)行中可能產(chǎn)生的故障有哪些?簡(jiǎn)述不同故障對(duì)數(shù)據(jù)庫 造成的影響有何不同。造成的影響有何不同。3.3.恢復(fù)機(jī)制的基本思想是什么?恢復(fù)的實(shí)現(xiàn)技術(shù)有哪些?恢復(fù)機(jī)制的基本思想是什么?恢復(fù)的實(shí)現(xiàn)技術(shù)有哪些?4.4.什什么么是是日日志志文文件件?日日志志文文件件的的作作用用是是什什么么?登登記記日日志志文文件件的的原原則是什么?則是什么?5.5.試述事務(wù)故障、系統(tǒng)故障、介質(zhì)故障的恢復(fù)策略和方法。試述事務(wù)故障、系統(tǒng)故障、介質(zhì)故障的恢復(fù)策略和方法。6.6.檢查點(diǎn)記錄的內(nèi)容包括什么?檢查點(diǎn)記錄的內(nèi)容包括什么?7.7.試舉例說明具有檢查點(diǎn)的恢復(fù)技術(shù)的優(yōu)點(diǎn)。試舉例說明具有檢查點(diǎn)的恢復(fù)技術(shù)的優(yōu)點(diǎn)。8.8.試述使用檢查點(diǎn)方法的恢復(fù)策略。試述使用檢查點(diǎn)方法的恢復(fù)策略。9.9.什么是數(shù)據(jù)庫鏡像?什么是數(shù)據(jù)庫鏡像?
收藏
編號(hào):48760729
類型:共享資源
大?。?span id="ievbyqtbdd" class="font-tahoma">10.02MB
格式:ZIP
上傳時(shí)間:2022-01-14
30
積分
- 關(guān) 鍵 詞:
-
數(shù)據(jù)庫技術(shù)與應(yīng)用
數(shù)據(jù)庫技術(shù)
應(yīng)用
電子
課件
- 資源描述:
-
《數(shù)據(jù)庫技術(shù)與應(yīng)用》電子課件,數(shù)據(jù)庫技術(shù)與應(yīng)用,數(shù)據(jù)庫技術(shù),應(yīng)用,電子,課件
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請(qǐng)勿作他用。