版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
事務與故障恢復-數(shù)據(jù)庫基礎教學講義**§10.5事務的并發(fā)執(zhí)行為什么要并發(fā)執(zhí)行?事務的串行執(zhí)行雖然簡單,但效率不高;沒有充分利用計算機的磁盤I/O和CPU計算可以并行工作的特性;利用磁盤I/O和CPU的并行性,并發(fā)地執(zhí)行多個事務,可以:提高系統(tǒng)的吞吐量,即單位時間內(nèi)執(zhí)行的事務數(shù)減少事務的平均響應時間,即一個事務從開始執(zhí)行到完成所需要的平均時間。否則:如果事務串行執(zhí)行,那么短事務就不得不等待排在它前面的長事務的漫長執(zhí)行,從而導致難以預測的時間延遲!**§10.5事務的并發(fā)執(zhí)行并發(fā)執(zhí)行的基礎并發(fā)執(zhí)行與并行執(zhí)行的區(qū)別?DBMS如何并發(fā)執(zhí)行多個事務?通過事務調(diào)度:調(diào)度是指一組事務中指令交叉執(zhí)行的序列。一組事務的一個調(diào)度必須保證:包含這組事務的全部指令;必須保持各條指令在各個事務中出現(xiàn)的順序,即調(diào)度不能改變單個事務中指令的先后關系。這種關系是由程序員決定的,它保證了單個事務的一致性。調(diào)度的目的:就是用于確定那些可以保證數(shù)據(jù)庫一致性的一組事務的所有指令的執(zhí)行序列!**§10.5事務的并發(fā)執(zhí)行調(diào)度的分類串行調(diào)度:由來自各個事務的指令序列組成;屬于同一個事務的指令在調(diào)度中緊挨在一起。串行調(diào)度的方案:對于有N個事務的事務組,共有N!個可能的串行調(diào)度方案;舉例:包含兩個事務T1和T2的調(diào)度1。**§10.5事務的并發(fā)執(zhí)行調(diào)度的分類并發(fā)調(diào)度:由來自各個事務的全部指令組成;屬于不同事務的指令在調(diào)度中交叉在一起,但仍然保持在各自事務中的先后順序。并發(fā)調(diào)度的執(zhí)行:操作系統(tǒng)先選一個事務執(zhí)行一段時間;然后切換上下文,執(zhí)行別的事務一段時間,接著又切換回去,如此下去……**§10.6調(diào)度的可串行化調(diào)度的目的?調(diào)度的等價性如果一個并發(fā)調(diào)度的執(zhí)行效果與一個包含相同事務的串行調(diào)度的執(zhí)行效果是相同的,我們就說它們是等價的;事務的串行執(zhí)行可以保證數(shù)據(jù)庫的一致性,這時不言而喻的;因此,與之等價的并發(fā)調(diào)度也可以保證數(shù)據(jù)庫的一致性。是不是任何一個并發(fā)調(diào)度都能變成一個與之等價的、包含相同事務的串行調(diào)度?**§10.6調(diào)度的可串行化調(diào)度的簡化事務并發(fā)執(zhí)行時,只有訪問相同數(shù)據(jù)項的讀/寫操作read和write才會在事務間產(chǎn)生影響;對于數(shù)據(jù)項Q,在readQ和writeQ指令之間,事務可對駐留在事務局部緩沖區(qū)中數(shù)據(jù)項Q的拷貝執(zhí)行任意操作;從調(diào)度角度來看,事務的重要操作是read與write指令,通常調(diào)度中只顯示這些指令。**§10.6調(diào)度的可串行化調(diào)度中指令的可交換性對于一個調(diào)度S來說,假設Im和Inmn分別是屬于事務Ti和Tj的兩條連續(xù)的讀寫指令:如果Im和In分別訪問不同的數(shù)據(jù)項,則交換Im和In的順序不會影響調(diào)度中任何事務的執(zhí)行結(jié)果;如果Im和In訪問相同的數(shù)據(jù)項Q,則兩者的順序就不能隨便交換,需要看Im和In是不是沖突指令。**§10.6調(diào)度的可串行化調(diào)度中指令的可交換性①②④③**§10.6調(diào)度的可串行化指令的沖突當Im和In是不同事務在相同數(shù)據(jù)項上的操作,且其中至少有一條是write指令時,稱Im和In是沖突的例如,右圖的調(diào)度3中:T1的writeA與T2的readA是沖突的;T2的writeA與T1的readB是不沖突的。不沖突的指令可以交換先后順序。**§10.6調(diào)度的可串行化非沖突指令的交換**§10.6調(diào)度的可串行化沖突等價與沖突可串行化若Im和In是調(diào)度S中不同事務且不沖突的兩條連續(xù)指令,則交換Im和In的順序就得到一個與S等價的調(diào)度S’;若調(diào)度S經(jīng)過一系列非沖突指令交換變成調(diào)度S’,則稱S與S’是沖突等價的;如果說一個調(diào)度S是沖突可串行化的,是指該調(diào)度S與一個串行調(diào)度沖突等價。如何判斷調(diào)度沖突可串行化**§10.6調(diào)度的可串行化視圖等價存在這樣的調(diào)度,它們產(chǎn)生相同的結(jié)果,但卻不是沖突等價的;兩個有相同事務集的調(diào)度S和S’,若S和S’滿足下面三個條件,則它們是視圖等價的:對每個數(shù)據(jù)項Q,若事務Ti在S中讀取了Q的初始值,那么Ti在S’中也必須讀取Q的初始值;對每個數(shù)據(jù)項Q,若事務Ti在S中執(zhí)行了readQ且讀取的值是由Tj產(chǎn)生的writeQ,則Ti在S’中讀取的值也必須是由Tj產(chǎn)生的writeQ;對每個數(shù)據(jù)項Q,若在S中有事務執(zhí)行了最后的寫操作writeQ,則在S’中該事務也必須執(zhí)行最后的寫操作writeQ。**§10.6調(diào)度的可串行化視圖可串行化在視圖等價的三個條件中,前兩個條件保證兩個調(diào)度中的每個事務都讀取了相同的值;第三個條件和前兩個條件一起保證了兩個調(diào)度都能得到相同的最終結(jié)果;視圖等價引出了視圖可串行化的概念。若某個調(diào)度視圖等價于一個串行調(diào)度,則該調(diào)度是視圖可串行化的。舉例:**§10.7調(diào)度的可恢復性問題的提出若調(diào)度中事務Ti失敗了,怎么辦?調(diào)度中那些依賴于Ti的其他事務如Tj:它讀取了由Ti所寫的數(shù)據(jù)怎么辦?問題的解決可恢復調(diào)度:處理沖突事務的辦法?串行提交!對于每對事務Ti和Tj,如果Tj讀取了由Ti所寫的數(shù)據(jù)項,則Ti應先于Tj提交。為什么?**§10.7調(diào)度的可恢復性問題的解決無級聯(lián)調(diào)度:處理沖突事務的辦法?串行提交!因一個事務回滾而導致調(diào)度中一系列事務回滾的現(xiàn)象稱為級聯(lián)回滾;無級聯(lián)調(diào)度應滿足:對于每對事務Ti和Tj,如果Tj讀取了由Ti所寫的數(shù)據(jù)項,則Ti必須在Tj讀取之前提交**§10.8隔離性的實現(xiàn)事務隔離性的目的把DBMS中并發(fā)執(zhí)行的事務間的相互影響給隔離開,就好像它們是串行的一樣。因此就要尋找與這些并發(fā)事務等價的串行事務序列。隔離性的實現(xiàn)原理沖突可串行化或視圖可串行化的調(diào)度可以保證并發(fā)調(diào)度與某個串行調(diào)度等價。并發(fā)控制機制DBMS中并發(fā)控制管理器的并發(fā)控制機制要保證DBMS只產(chǎn)生沖突可串行化的或視圖可串行化的并發(fā)調(diào)度。**§10.8隔離性的實現(xiàn)用于產(chǎn)生串行調(diào)度的并發(fā)機制下面用一個簡單的例子來說明,考慮如下機制:一個事務在它開始前獲得整個數(shù)據(jù)庫的鎖,在它提交之后才釋放這個鎖;當一個事務持有鎖時,其他事務絕對不能獲得這個鎖,因此它必須等待別的事務釋放鎖;采用上述封鎖策略,使得DBMS一次只能執(zhí)行一個事務,所以這種機制只會產(chǎn)生串行調(diào)度。**§10.9SQL中事務的定義事務的開始begintran[saction][…]事務的結(jié)束commit[transaction][…]rollback[transaction][…]實際問題如果沒有用begintran定義事務,那么DBMS如何認定哪些SQL語句是一個事務呢?例如:insertintotest1values'key1','for1'insertintotest2values'for1','key1'**§10.10沖突可串行化的判定如何判斷一個調(diào)度是沖突可串行化的?Step1:根據(jù)調(diào)度產(chǎn)生調(diào)度的優(yōu)先圖:有向圖GV,E:其中V是頂點集,E是邊集;邊Ti?Tj存在于邊集E的條件是:Ti的writeQ在Tj的readQ之前執(zhí)行;Ti的readQ在Tj的writeQ之前執(zhí)行;Ti的writeQ在Tj的writeQ之前執(zhí)行。如果有向圖中存在邊Ti?Tj,則在任何與該調(diào)度等價的串行調(diào)度中,Ti都必須出現(xiàn)在Tj之前。Step2:采用一個合適的算法檢查調(diào)度的優(yōu)先圖中是否存在有向環(huán):如果有,則它就不是沖突可串行化的;否則……**§10.10沖突可串行化的判定示例1并發(fā)調(diào)度3如右所示:它的優(yōu)先圖構(gòu)造如下:因此調(diào)度3等價于串行調(diào)度T1,T2。**§10.10沖突可串行化的判定示例2本調(diào)度的優(yōu)先圖構(gòu)造如右圖所示;因此它等價于串行調(diào)度:T11,T12,T13**§10.10沖突可串行化的判定示例3本調(diào)度的優(yōu)先圖如右所示因為該調(diào)度的優(yōu)先圖中存在有向環(huán),所以它不是沖突可串行化的。**§10.10沖突可串行化的判定示例4假設某并發(fā)調(diào)度的優(yōu)先圖如右所示:由于圖中沒有有向環(huán),因此它是沖突可串行化的;據(jù)圖可以確定在串行調(diào)度中Ti在最前,Tm在最后;該調(diào)度等價于串行調(diào)度:T1,T2,T3,T4,或T1,T3,T2,T4**小結(jié):ACID與調(diào)度及故障恢復事務的ACID特性:DBMS如何保證它們?在DBMS中事務提交的含義是什么?DBMS如何保證整個數(shù)據(jù)庫的一致性?調(diào)度的等價性是指:包含相同事務集的不同調(diào)度,它們的執(zhí)行效果是相同的。沖突等價:沖突可串行化視圖等價:視圖可串行化初始讀中間讀最終寫**小結(jié):ACID與調(diào)度及故障恢復數(shù)據(jù)庫日志記錄的內(nèi)容是什么?發(fā)生故障前,DBMS中事務的狀態(tài)與事務的更新數(shù)據(jù)的位置關系有哪些?什么是臟頁?提交未寫、活動已寫什么是最小恢復LSN?重做事務中最小的LSN故障恢復的三個階段是什么?什么是檢查點?為什么要重做事務?為什么要反做事務?**考試題T1T3T4T5T2清華大學計算機系馮建華**第10章事務與故障恢復講課內(nèi)容:從用戶的觀點看,數(shù)據(jù)庫上一些操作的集合通常被認為是一個獨立的單元。事務就是構(gòu)成單一邏輯工作單元的操作集合。不論是否發(fā)生故障,數(shù)據(jù)庫系統(tǒng)必須保證事務的正確執(zhí)行:或者執(zhí)行整個事務或者屬于該事務的操作一個也不執(zhí)行?!鍪聞盏母拍睢稣{(diào)度的可恢復性■事務的狀態(tài)■隔離性的實現(xiàn)■原子性和持久性的實現(xiàn)■SQL中事務的定義■事務的并發(fā)執(zhí)行■沖突可串行化的判定■調(diào)度的可串行化■本章總結(jié)**DBMS總體結(jié)構(gòu)回顧:事務管理器用戶應用界面索引統(tǒng)計數(shù)據(jù)數(shù)據(jù)文件數(shù)據(jù)字典應用程序交互查詢數(shù)據(jù)庫模式應用程序目標碼嵌入式DML預編譯器DML編譯器DDL解釋器查詢計算引擎事務管理器緩沖區(qū)管理器文件管理器查詢處理器存儲管理器數(shù)據(jù)庫管理系統(tǒng)磁盤存儲器權(quán)限及完整性管理器日志**§10.1事務的概念背景知識古老而典型的例子:提起事務,就會用到銀行中兩個賬戶之間轉(zhuǎn)帳的例子,即從賬戶A轉(zhuǎn)XX元錢到賬戶B,它同時涉及到兩個不同賬戶的讀寫操作。事務中涉及數(shù)據(jù)庫訪問的基本操作:讀,readX:從數(shù)據(jù)庫中傳送數(shù)據(jù)項X到執(zhí)行read操作的那個事務的局部緩沖區(qū)。寫,writeX:從執(zhí)行write的那個事務的局部緩沖區(qū)中把數(shù)據(jù)項X傳回數(shù)據(jù)庫。**§10.1事務的概念背景知識事務之間的相互影響:數(shù)據(jù)庫系統(tǒng)中同時可能有很多事務在執(zhí)行,這些事務要么互不相干,要么訪問相同的數(shù)據(jù)項;對于那些訪問相同數(shù)據(jù)項的事務之間的相互影響要特別處理:**§10.1事務的概念事務的特性為了保證數(shù)據(jù)庫的完整性一致性,數(shù)據(jù)庫管理系統(tǒng)必須維護事務的以下特性:ACID原子性Atomicity事務中的所有操作要么全部執(zhí)行,要么都不執(zhí)行。一致性Consistency如果在執(zhí)行事務之前數(shù)據(jù)庫是一致的,那么在執(zhí)行事務之后數(shù)據(jù)庫也還應該是一致的。隔離性Isolation即使多個事務并發(fā)執(zhí)行,每個事務都感覺不到系統(tǒng)中有其他事務在執(zhí)行,以保證數(shù)據(jù)庫的一致性。持久性Durability事務成功執(zhí)行后它對數(shù)據(jù)庫的修改是永久的,即使系統(tǒng)出現(xiàn)故障。**§10.1事務的概念一致性單個事務的一致性:由具體事務的語義決定。例如對圖中的事務Ti來說,一致性要求就是事務的執(zhí)行不改變賬戶A和賬戶B的和;單個事務的一致性是由對該事務進行編碼的應用程序員負責的。整個數(shù)據(jù)庫的一致性:簡單地說,就是數(shù)據(jù)庫中數(shù)據(jù)的完整性,包括它們的正確性;在單個事務都是一致的狀態(tài)下靜態(tài),DBMS如何保證執(zhí)行事務后整個數(shù)據(jù)庫的一致性動態(tài)?**§10.1事務的概念原子性如果事務沒有原子性的保證,則在發(fā)生系統(tǒng)故障的情況下,數(shù)據(jù)庫就有可能處于不一致狀態(tài)。如圖所示:即使沒有故障發(fā)生,系統(tǒng)在某一時刻也會處于不一致狀態(tài)。原子性的要求就是這種不一致狀態(tài)除了在事務執(zhí)行當中出現(xiàn)外,在其他任何時刻都是不允許的。保證原子性是DBMS的責任:事務管理器數(shù)據(jù)庫日志和恢復管理器**§10.1事務的概念持久性事務成功執(zhí)行后,對數(shù)據(jù)庫的更新是永久的可以用以下兩種方式來達到持久性的目的:以犧牲應用系統(tǒng)的性能為代價:事務對數(shù)據(jù)庫所做的任何更新在事務結(jié)束前已經(jīng)寫入磁盤;以多占用磁盤空間為代價:事務已執(zhí)行的和已寫到磁盤的、對數(shù)據(jù)庫進行更新的信息是充分的,使得DBMS在系統(tǒng)出現(xiàn)故障后重新啟動時,能夠重新構(gòu)造更新。保證持久性也是DBMS的責任:事務管理器數(shù)據(jù)庫日志和恢復管理器**§10.1事務的概念如何利用日志保證持久性并提高應用系統(tǒng)性能?一個事務的日志記錄在向客戶進程發(fā)送事務提交的應答之前必須寫入磁盤,但對數(shù)據(jù)的實際變化即含有數(shù)據(jù)變化的緩沖區(qū)的臟頁卻沒有必要馬上寫入磁盤!什么是事務的提交?**§10.1事務的概念隔離性事情的起因:訪問相同數(shù)據(jù)項的不同事務同時執(zhí)行時相互影響解決的辦法:串行執(zhí)行:一個接一個地執(zhí)行事務;并發(fā)執(zhí)行:同時執(zhí)行多個事務,用并發(fā)控制機制來解決訪問相同數(shù)據(jù)項的不同事務間的相互影響隔離性的保證:確保事務并發(fā)執(zhí)行后的系統(tǒng)狀態(tài)與這些事務按某種次序串行執(zhí)行后的系統(tǒng)狀態(tài)是等價的。保證隔離性也是DBMS的責任:除了事務、日志……,主要是并發(fā)控制管理器。**§10.2事務的狀態(tài)基本術(shù)語中止事務:執(zhí)行中發(fā)生故障、不能執(zhí)行完成的事務。回滾事務:將中止事務對數(shù)據(jù)庫的更新撤消掉。已提交事務:成功執(zhí)行完成的事務;事務一旦提交,就不能中止它。補償事務撤消已提交事務對數(shù)據(jù)庫所造成影響的惟一方法是由DBA或程序員手動執(zhí)行一個補償事務。**§10.2事務的狀態(tài)抽象事務模型在系統(tǒng)中,事務必須處于以下狀態(tài)之一:活動狀態(tài):事務開始執(zhí)行后就處于該狀態(tài)。部分提交狀態(tài):事務的最后一條語句被執(zhí)行之后。失敗狀態(tài):事務的正常執(zhí)行不能繼續(xù)后。中止狀態(tài):事務回滾且數(shù)據(jù)庫被恢復到事務開始前的狀態(tài)后。提交狀態(tài):事務成功完成之后。**§10.2事務的狀態(tài)事務狀態(tài)圖已提交的或中止的事務稱為已經(jīng)結(jié)束的事務**§10.3原子性和持久性的實現(xiàn)影子數(shù)據(jù)庫方案在DBMS中:事務管理器數(shù)據(jù)庫日志和恢復管理器提供對事務原子性和持久性實現(xiàn)的支持;這是一個非常復雜的過程,我們以一個簡單但效率極低的方案為例。這個方案就是最原始的影子數(shù)據(jù)庫Shadow-Database方案,其前提條件是:某一時刻DBMS中只有一個活動事務;要處理的數(shù)據(jù)庫只是磁盤上的一個文件;磁盤上有一個稱為db-pointer指針指向該文件。**§10.3原子性和持久性的實現(xiàn)影子數(shù)據(jù)庫方案原理:在影子數(shù)據(jù)庫方案中,欲更新數(shù)據(jù)庫的事務首先創(chuàng)建數(shù)據(jù)庫的一個完整拷貝;所有的更新都在新建的拷貝上進行,而原始數(shù)據(jù)庫稱為影子拷貝則原封不動。如果任何時候DBMS中的事務不得不中止:新拷貝簡單地被刪除,原始數(shù)據(jù)庫不受任何影響。如果事務執(zhí)行完成,則它的提交過程如下:首先操作系統(tǒng)確保數(shù)據(jù)庫新拷貝的緩沖區(qū)里的所有頁已被寫到磁盤上Unix系統(tǒng)中,flush命令……;在刷新完成后,db-pointer指針被修改為指向數(shù)據(jù)庫的新拷貝,而影子拷貝則被刪除。**§10.3原子性和持久性的實現(xiàn)影子數(shù)據(jù)庫方案問題的核心:只有當修改后的db-pointer指針寫到磁盤上后,事務才算是提交了。因此無論是在db-pointer指針修改之前或之后發(fā)生故障,都能保證事務的原子性和持久性。問題的核心變成了……**§10.3原子性和持久性的實現(xiàn)在文本編輯中的應用整個文本編輯過程可以看成是一個事務,事務的更新操作就是讀文件和寫文件:開始編輯之前都要復制舊文件的一個副本;所有的文本編輯操作都在這個副本上進行;不存盤退出就相當于中止事務,保留原來的舊文件,并刪除副本文件;存盤退出就相當于提交事務,保留新編輯的副本文件,并刪除舊文件。文本編輯事務的提交過程:相當于執(zhí)行文件重命名命令;文件重命名是文件系統(tǒng)上的原子操作。**§10.3原子性和持久性的實現(xiàn)影子數(shù)據(jù)庫方案的評價要復制整個數(shù)據(jù)庫、不允許并發(fā)執(zhí)行,因此效率太低;為解決其他問題提供了思路:即副本方法。數(shù)據(jù)庫一致性的實現(xiàn)在DBMS中,事務的ACID特征最終是為了保證整個數(shù)據(jù)庫的一致性,與保證單個事務的一致性不同,它的實現(xiàn)需要DBMS的:事務管理器數(shù)據(jù)庫日志和恢復管理器并發(fā)控制管理器的共同支持。并發(fā)控制的基礎和機制是什么?數(shù)據(jù)庫日志記錄什么內(nèi)容?恢復管理器是如何工作的?**§10.4故障恢復數(shù)據(jù)庫日志DBMS利用日志來保存所有更新數(shù)據(jù)庫的事務的所有操作;DBMS的恢復管理器利用日志來恢復由軟件系統(tǒng)故障如,程序的非法中斷,或硬件系統(tǒng)故障所造成的數(shù)據(jù)丟失;DBMS利用日志可以將數(shù)據(jù)庫向前恢復到最近的一致性狀態(tài),例如:在數(shù)據(jù)庫服務器出現(xiàn)故障后:回滾未提交的事務;回滾到最后一個已提交但還未寫入磁盤的事務。**§10.4故障恢復數(shù)據(jù)庫日志的內(nèi)容存儲事務的開始BeginTrans和提交Commit;所涉及到的相關數(shù)據(jù)庫表、元組和屬性;以及執(zhí)行前和執(zhí)行后的屬性值。舉例:日志記錄插入/刪除:記錄INSERT/DELETE語句!**§10.4故障恢復數(shù)據(jù)庫日志的維護與管理當DBMS執(zhí)行事務時,自動更新日志內(nèi)容;數(shù)據(jù)庫日志本身也要做好訪問控制、安全控制和轉(zhuǎn)儲備份,以降低系統(tǒng)失敗的風險。數(shù)據(jù)庫日志的使用當系統(tǒng)發(fā)生故障時:DBMS檢查日志中所有未提交的事務,并根據(jù)日志信息執(zhí)行回滾Rollback;將日志中所有已提交事務的相關數(shù)據(jù)寫入磁盤。日志增加了DBMS處理的開銷,但對維護數(shù)據(jù)庫的一致性和恢復數(shù)據(jù)庫是非常有價值的。**§10.4故障恢復數(shù)據(jù)庫日志的結(jié)構(gòu)日志本身也是DBMS要管理的一個重要對象:其結(jié)構(gòu)是表?特殊格式的文件?例如,SQLServer將日志文件邏輯地劃分為沒有固定大小的虛擬日志文件VLF的序列,并且將所有的物理日志文件作為一個連續(xù)的文件循環(huán)使用。日志本身的結(jié)構(gòu)一般是不公開的!為什么?商家的核心技術(shù)與該技術(shù)的先進性,怕露怯?像Windows一樣留有后門?見不得人?容易破解數(shù)據(jù)庫的結(jié)構(gòu)信息,從而攻擊它。**§10.4故障恢復數(shù)據(jù)庫恢復通常是指在發(fā)生故障時,將數(shù)據(jù)庫從某個不一致的狀態(tài)恢復到某個一致的狀態(tài);數(shù)據(jù)庫恢復的基本技術(shù):數(shù)據(jù)轉(zhuǎn)儲和日志。數(shù)據(jù)轉(zhuǎn)儲備份將數(shù)據(jù)庫信息復制到其他介質(zhì)上的過程。復制得到的備份文件稱為后援副本,簡稱副本轉(zhuǎn)儲的方式:海量轉(zhuǎn)儲全備份:每次轉(zhuǎn)儲整個數(shù)據(jù)庫;增量轉(zhuǎn)儲:只轉(zhuǎn)儲自上次轉(zhuǎn)儲后變化的數(shù)據(jù);日志轉(zhuǎn)儲:只轉(zhuǎn)儲數(shù)據(jù)庫日志。**§10.4故障恢復數(shù)據(jù)庫故障的類型與原因系統(tǒng)故障:軟件故障:OS、DBMS;程序中斷:APP錯誤--除數(shù)為0、非法操作;系統(tǒng)死鎖:需要回滾事務。介質(zhì)故障:硬件故障:內(nèi)存、磁盤損壞,磁盤滿等;外部因素:火災、地震、洪水等。病毒破壞:人為因素:由于訪問控制與安全措施不到位,使得病毒攻擊了數(shù)據(jù)庫,破壞了硬盤數(shù)據(jù)。**§10.4故障恢復數(shù)據(jù)庫故障的恢復事務故障:指事務在運行至正常終止點前被中止,這時恢復子系統(tǒng)應利用日志文件撤消(UNDO)此事務對數(shù)據(jù)庫已做的修改;最簡單的系統(tǒng)故障,例如死鎖。事務故障的恢復由DBMS自動完成,對用戶來說是透明的。具體的恢復步驟是:反向掃描日志文件;找出該事務的所有更新操作;對每一個更新操作做它的逆操作;一直處理到該事務的開始標記。數(shù)據(jù)庫服務器還正常運行;主要是UNDO緩存的內(nèi)容,以便后續(xù)的計算正確進行!事務所有的更新并沒有寫入磁盤,都還在緩存;檢查點不會在一個事務執(zhí)行的過程中插入執(zhí)行的。部分提交狀態(tài)與執(zhí)行過程**§10.4故障恢復數(shù)據(jù)庫故障的恢復系統(tǒng)故障:造成數(shù)據(jù)庫不一致的具體原因:未提交的事務對數(shù)據(jù)庫的更新已寫入磁盤;已提交的事務對數(shù)據(jù)庫的更新未寫入磁盤。系統(tǒng)故障的恢復步驟是:正向掃描日志文件,找出在故障發(fā)生前:已提交的事務,進入重做隊列;未提交的事務,進入撤消隊列。重做REDO與撤消UNDO:REDO:正向掃描日志文件,根據(jù)重做隊列重新完成對數(shù)據(jù)庫的更新操作;UNDO:反向掃描日志文件,根據(jù)撤消隊列執(zhí)行相關事務的逆操作。數(shù)據(jù)庫服務器已經(jīng)崩潰,以下描述的是在重新啟動系統(tǒng)后的恢復過程。**§10.4故障恢復數(shù)據(jù)庫故障的恢復介質(zhì)故障與病毒破壞:磁盤上的物理數(shù)據(jù)庫遭到破壞。介質(zhì)故障的恢復步驟是:安裝副本,使數(shù)據(jù)庫恢復到備份時的一致狀態(tài);從故障點開始反向掃描日志文件,找出所有已提交的事務,將其加入重做堆棧;正向掃描日志文件,根據(jù)重做堆棧對每一個REDO事務從棧頂開始處理REDO事務重新實施對數(shù)據(jù)庫的更新操作;最后數(shù)據(jù)庫恢復到故障前某一時刻的一致狀態(tài)。因為是副本數(shù)據(jù)庫,所以無須UNDO操作。日志文件的存在性與可用性?日志文件的備份
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年蘇教新版九年級歷史下冊階段測試試卷含答案
- 2025勞動糾紛代理合同書
- 2025外墻石材干掛分包合同書范文
- 2025工業(yè)企業(yè)合同管理制度
- 2025房屋買賣合同標準版
- 2025年外研版九年級歷史上冊階段測試試卷含答案
- 2025年西師新版九年級化學上冊月考試卷含答案
- 2025共享電動車、觀光車經(jīng)營權(quán)外包項目合同
- 建筑工程費用與預算
- 2025年豐胸化學品項目申請報告模范
- 《聚焦客戶創(chuàng)造價值》課件
- 公安校園安全工作培訓課件
- PTW-UNIDOS-E-放射劑量儀中文說明書
- 保險學(第五版)課件全套 魏華林 第0-18章 緒論、風險與保險- 保險市場監(jiān)管、附章:社會保險
- 許小年:淺析日本失去的30年-兼評“資產(chǎn)負債表衰退”
- 典范英語2b課文電子書
- 17~18世紀意大利歌劇探析
- β內(nèi)酰胺類抗生素與合理用藥
- 何以中國:公元前2000年的中原圖景
- 第一章:公共政策理論模型
- GB/T 4513.7-2017不定形耐火材料第7部分:預制件的測定
評論
0/150
提交評論