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

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)系統(tǒng)概論第七章數(shù)據(jù)庫(kù)恢復(fù)技術(shù)第一頁(yè),共四十七頁(yè),編輯于2023年,星期三事務(wù)事務(wù)定義事務(wù)是用戶定義的一個(gè)數(shù)據(jù)庫(kù)操作序列構(gòu)成,這些操作要么全做,要么全不做,是一個(gè)不可分割的工作單位。事務(wù)與應(yīng)用程序是兩個(gè)概念,一般來說,一個(gè)應(yīng)用程序可以包含多個(gè)事務(wù)。事務(wù)的開始與結(jié)束可以由用戶顯式控制。如果用戶沒有顯式定義事務(wù),則由DBMS按缺省規(guī)定自動(dòng)劃分事務(wù)。第二頁(yè),共四十七頁(yè),編輯于2023年,星期三SQL中事務(wù)的定義事務(wù)以Begintransaction開始,以Commitwork或Rollbackwork結(jié)束。Commitwork表示提交,事務(wù)正常結(jié)束。Rollbackwork表示事務(wù)非正常結(jié)束,撤消事務(wù)已做的操作,回滾到事務(wù)開始時(shí)狀態(tài)。第三頁(yè),共四十七頁(yè),編輯于2023年,星期三事務(wù)的例子BEGINTRANSACTION READ甲賬戶余額;

甲賬戶余額-=1000; IF甲賬戶余額<0THEN; ROLLBACKWORK; ELSE WRITE甲賬戶余額; READ乙賬戶余額;

乙賬戶余額+=1000; WRITE甲賬戶余額; COMMITWORK;第四頁(yè),共四十七頁(yè),編輯于2023年,星期三事務(wù)的特性(ACID)原子性(Atomicity)

事務(wù)是數(shù)據(jù)庫(kù)的邏輯工作單位,事務(wù)中包括的諸操作要么全做,要么全不做。一致性(Consistency)

事務(wù)執(zhí)行的結(jié)果應(yīng)當(dāng)使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)轉(zhuǎn)變?yōu)榱硪粋€(gè)一致性狀態(tài)。第五頁(yè),共四十七頁(yè),編輯于2023年,星期三事務(wù)的特性(ACID)隔離性(Isolation)

一個(gè)事務(wù)的執(zhí)行不能被其它事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對(duì)其它并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能相互干擾。第六頁(yè),共四十七頁(yè),編輯于2023年,星期三事務(wù)的特性(ACID)持久性(Durability)

一個(gè)事務(wù)一旦提交之后,它對(duì)數(shù)據(jù)庫(kù)的影響必須是永久的。事務(wù)提交后,系統(tǒng)發(fā)生故障不能改變事務(wù)的持久性。

第七頁(yè),共四十七頁(yè),編輯于2023年,星期三數(shù)據(jù)庫(kù)恢復(fù)概述雖然數(shù)據(jù)庫(kù)系統(tǒng)中采用了各種措施來保證系統(tǒng)安全性和完整性,但計(jì)算機(jī)系統(tǒng)的故障是不可避免的,這些故障輕則造成運(yùn)行事務(wù)的非正常中斷,影響數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性,重則破壞數(shù)據(jù)庫(kù),使數(shù)據(jù)庫(kù)中的全部或部分?jǐn)?shù)據(jù)丟失,因此數(shù)據(jù)庫(kù)管理系統(tǒng)必須具有把數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到某一已知正確狀態(tài)的功能,這就是數(shù)據(jù)庫(kù)的恢復(fù)。數(shù)據(jù)庫(kù)恢復(fù)是通過數(shù)據(jù)庫(kù)管理系統(tǒng)的恢復(fù)子系統(tǒng)完成的。第八頁(yè),共四十七頁(yè),編輯于2023年,星期三數(shù)據(jù)庫(kù)恢復(fù)概述數(shù)據(jù)庫(kù)恢復(fù)子系統(tǒng)的目的包括:保證事務(wù)的原子性,即確保一個(gè)事務(wù)被交付運(yùn)行后,要么該事務(wù)中的所有數(shù)據(jù)庫(kù)操作都被成功地完成,而且這些操作的結(jié)果被永久地存儲(chǔ)到數(shù)據(jù)庫(kù)中,要么這個(gè)事務(wù)對(duì)數(shù)據(jù)庫(kù)沒有任何影響。當(dāng)系統(tǒng)發(fā)生故障以后,數(shù)據(jù)庫(kù)能夠恢復(fù)到正確狀態(tài)。第九頁(yè),共四十七頁(yè),編輯于2023年,星期三故障的種類事務(wù)內(nèi)部的故障事務(wù)內(nèi)部的故障包括可預(yù)期的和不可預(yù)期的。可預(yù)期的是指可以通過事務(wù)程序本身發(fā)現(xiàn)和處理的故障。而不可預(yù)期的錯(cuò)誤是指那些不能由應(yīng)用程序處理的事務(wù)故障,如死鎖,運(yùn)算溢出,違反完整性規(guī)則等。第十頁(yè),共四十七頁(yè),編輯于2023年,星期三故障的種類系統(tǒng)故障系統(tǒng)故障是指造成系統(tǒng)停止運(yùn)行的任何事情,使得系統(tǒng)要重新啟動(dòng)。如硬件錯(cuò)誤,操作系統(tǒng)故障,停電等。這類故障影響正在運(yùn)行的所有事務(wù),所有事務(wù)都非正常終止,但不會(huì)破壞數(shù)據(jù)庫(kù)?;謴?fù)子系統(tǒng)必須清除所有未完成的事務(wù)對(duì)數(shù)據(jù)庫(kù)的修改,同時(shí)重做所有已完成的事務(wù),保證數(shù)據(jù)庫(kù)的一致性。第十一頁(yè),共四十七頁(yè),編輯于2023年,星期三故障的種類介質(zhì)故障介質(zhì)故障指外存故障,如磁盤損壞,瞬時(shí)強(qiáng)磁場(chǎng)干擾等。這類故障將破壞全部或部分?jǐn)?shù)據(jù)庫(kù),并影響正在存取這部分?jǐn)?shù)據(jù)的所有事務(wù)。計(jì)算機(jī)病毒計(jì)算機(jī)病毒是一種人為的破壞或故障,已成為數(shù)據(jù)庫(kù)系統(tǒng)的主要威脅之一。第十二頁(yè),共四十七頁(yè),編輯于2023年,星期三恢復(fù)的實(shí)現(xiàn)技術(shù)數(shù)據(jù)庫(kù)恢復(fù)的原理數(shù)據(jù)庫(kù)恢復(fù)的基本原理為冗余。如果數(shù)據(jù)庫(kù)中任何一部分?jǐn)?shù)據(jù)被破壞或處于不正確的狀態(tài),則可以通過存儲(chǔ)在系統(tǒng)別處的冗余數(shù)據(jù)來重建。數(shù)據(jù)庫(kù)恢復(fù)的關(guān)鍵問題如何建立冗余如何利用冗余實(shí)施數(shù)據(jù)庫(kù)恢復(fù)第十三頁(yè),共四十七頁(yè),編輯于2023年,星期三恢復(fù)的實(shí)現(xiàn)技術(shù)建立冗余的常用方法數(shù)據(jù)轉(zhuǎn)儲(chǔ)數(shù)據(jù)轉(zhuǎn)儲(chǔ)是數(shù)據(jù)庫(kù)恢復(fù)中采用的基本技術(shù)。所謂轉(zhuǎn)儲(chǔ)即DBA定期地將整個(gè)數(shù)據(jù)庫(kù)復(fù)制到磁帶或其它存儲(chǔ)設(shè)備上保存起來的過程。這些備用的數(shù)據(jù)文本稱為后備副本或后援副本。當(dāng)數(shù)據(jù)庫(kù)發(fā)生故障時(shí),可以將后備副本重新裝入,并重新運(yùn)行自轉(zhuǎn)儲(chǔ)以后的所有更新事務(wù)。第十四頁(yè),共四十七頁(yè),編輯于2023年,星期三恢復(fù)的實(shí)現(xiàn)技術(shù)T0T0T1T1T3T3正常運(yùn)行恢復(fù)重裝后備副本重新運(yùn)行事務(wù)第十五頁(yè),共四十七頁(yè),編輯于2023年,星期三恢復(fù)的實(shí)現(xiàn)技術(shù)轉(zhuǎn)儲(chǔ)可以分為:靜態(tài)轉(zhuǎn)儲(chǔ)靜態(tài)轉(zhuǎn)儲(chǔ)是在系統(tǒng)中無事務(wù)運(yùn)行時(shí)進(jìn)行的轉(zhuǎn)儲(chǔ)操作。即轉(zhuǎn)儲(chǔ)開始時(shí)數(shù)據(jù)庫(kù)處于一致狀態(tài),轉(zhuǎn)儲(chǔ)過程中,不允許對(duì)數(shù)據(jù)庫(kù)的任何存取、更新活動(dòng)。由于轉(zhuǎn)儲(chǔ)必須等待正在運(yùn)行的事務(wù)結(jié)束才能開始,而新的事務(wù)必須等待轉(zhuǎn)儲(chǔ)結(jié)束才能執(zhí)行,降低了數(shù)據(jù)庫(kù)的可用性。第十六頁(yè),共四十七頁(yè),編輯于2023年,星期三恢復(fù)的實(shí)現(xiàn)技術(shù)動(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ǔ)和用戶事務(wù)可以并發(fā)執(zhí)行。動(dòng)態(tài)轉(zhuǎn)儲(chǔ)克服了靜態(tài)轉(zhuǎn)儲(chǔ)的缺點(diǎn),但除了轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫(kù)的數(shù)據(jù)以外,還必須把轉(zhuǎn)儲(chǔ)期間各事務(wù)對(duì)數(shù)據(jù)庫(kù)的修改記錄下來,這樣才能保證把數(shù)據(jù)庫(kù)恢復(fù)到某一時(shí)刻的一致狀態(tài)。第十七頁(yè),共四十七頁(yè),編輯于2023年,星期三恢復(fù)的實(shí)現(xiàn)技術(shù)轉(zhuǎn)儲(chǔ)的方式海量轉(zhuǎn)儲(chǔ)海量轉(zhuǎn)儲(chǔ)指每次轉(zhuǎn)儲(chǔ)全部數(shù)據(jù)庫(kù)。增量轉(zhuǎn)儲(chǔ)增量轉(zhuǎn)儲(chǔ)指每次只轉(zhuǎn)儲(chǔ)上一次轉(zhuǎn)儲(chǔ)后更新過的數(shù)據(jù)。第十八頁(yè),共四十七頁(yè),編輯于2023年,星期三恢復(fù)的實(shí)現(xiàn)技術(shù)轉(zhuǎn)儲(chǔ)狀態(tài)動(dòng)態(tài)轉(zhuǎn)儲(chǔ)靜態(tài)轉(zhuǎn)儲(chǔ)轉(zhuǎn)儲(chǔ)方式海量轉(zhuǎn)儲(chǔ)動(dòng)態(tài)海量轉(zhuǎn)儲(chǔ)靜態(tài)海量轉(zhuǎn)儲(chǔ)增量轉(zhuǎn)儲(chǔ)動(dòng)態(tài)增量轉(zhuǎn)儲(chǔ)靜態(tài)增量轉(zhuǎn)儲(chǔ)第十九頁(yè),共四十七頁(yè),編輯于2023年,星期三轉(zhuǎn)儲(chǔ)計(jì)劃的例子23:00海量增量增量海量增量增量增量周日周一周二周三周四周五周六第二十頁(yè),共四十七頁(yè),編輯于2023年,星期三恢復(fù)的實(shí)現(xiàn)技術(shù)登錄日志文件日志文件是用來記錄事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新操作的文件。日志文件主要有兩種格式:以記錄為單位的日志文件和以數(shù)據(jù)塊為單位的日志文件。以記錄為單位的日志文件記錄的內(nèi)容包括:各個(gè)事務(wù)的開始標(biāo)記各個(gè)事務(wù)的結(jié)束標(biāo)記各個(gè)事務(wù)的所有更新操作第二十一頁(yè),共四十七頁(yè),編輯于2023年,星期三恢復(fù)的實(shí)現(xiàn)技術(shù)上述內(nèi)容均作為日志文件中的一個(gè)日志記錄,每個(gè)日志記錄的內(nèi)容包括:事務(wù)標(biāo)識(shí)(標(biāo)明是哪個(gè)事務(wù))操作的類型(插入、刪除或修改)操作對(duì)象(記錄的內(nèi)部標(biāo)識(shí))更新前數(shù)據(jù)的舊值(對(duì)插入操作,此項(xiàng)為空)更新后數(shù)據(jù)的新值(對(duì)刪除操作,此項(xiàng)為空)對(duì)于以數(shù)據(jù)塊為單位的日志文件,日志記錄的內(nèi)容包括事務(wù)標(biāo)識(shí)以及更新前和更新后的數(shù)據(jù)塊。第二十二頁(yè),共四十七頁(yè),編輯于2023年,星期三日志記錄的例子T0,startsT0,A,1000,950T0,B,2000,2050T0,commit第二十三頁(yè),共四十七頁(yè),編輯于2023年,星期三恢復(fù)的實(shí)現(xiàn)技術(shù)日志文件的作用日志文件可以用來進(jìn)行事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù),并協(xié)助后備副本進(jìn)行介質(zhì)恢復(fù)。其具體作用是:事務(wù)故障和系統(tǒng)故障恢復(fù)必須使用日志文件。在動(dòng)態(tài)轉(zhuǎn)儲(chǔ)方式中必須建立日志文件,后備副本和日志文件綜合起來才能保證備份的一致性,和有效地恢復(fù)數(shù)據(jù)庫(kù)。在靜態(tài)轉(zhuǎn)儲(chǔ)方式中,也可以建立日志文件。當(dāng)數(shù)據(jù)庫(kù)發(fā)生故障時(shí),用后援副本把數(shù)據(jù)庫(kù)恢復(fù)到轉(zhuǎn)儲(chǔ)結(jié)束時(shí)的正確狀態(tài),然后利用日志文件重做已完成的事務(wù),把數(shù)據(jù)庫(kù)恢復(fù)到故障前的正確狀態(tài)。第二十四頁(yè),共四十七頁(yè),編輯于2023年,星期三恢復(fù)的實(shí)現(xiàn)技術(shù)登記日志文件為保證數(shù)據(jù)庫(kù)是可恢復(fù)的,登記日志文件時(shí)必須遵循兩條原則:登記的次序嚴(yán)格按并發(fā)事務(wù)執(zhí)行的時(shí)間順序。必須先寫日志文件,后寫數(shù)據(jù)庫(kù)。第二十五頁(yè),共四十七頁(yè),編輯于2023年,星期三恢復(fù)策略事務(wù)故障的恢復(fù)事務(wù)故障是指事務(wù)在運(yùn)行至正常終止點(diǎn)之前被終止。事務(wù)故障的恢復(fù)是由系統(tǒng)自動(dòng)完成的,其步驟是:反向掃描文件日志(即從最后向前掃描日志文件),查找該事務(wù)的更新操作。對(duì)該事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中的“更新前的值”寫入數(shù)據(jù)庫(kù)。這時(shí),如果記錄中是插入操作,則相當(dāng)于做刪除操作;如果記錄中是刪除操作,則相當(dāng)于做插入操作;如果記錄中是修改操作,則用修改前的值代替修改后的值。繼續(xù)反向掃描日志文件,查找該事務(wù)的更新操作,并做同樣處理如此處理下去,直到讀到該事務(wù)的開始標(biāo)志。第二十六頁(yè),共四十七頁(yè),編輯于2023年,星期三恢復(fù)策略系統(tǒng)故障的恢復(fù)系統(tǒng)故障造成數(shù)據(jù)庫(kù)不一致狀態(tài)的原因有兩個(gè),一是未完成的事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新可能已經(jīng)寫入數(shù)據(jù)庫(kù);二是已提交事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新可能還留在緩沖區(qū)還沒來得及寫入數(shù)據(jù)庫(kù)。因此恢復(fù)操作就是要撤銷故障發(fā)生時(shí)未完成的事務(wù),重做已完成的事務(wù)。第二十七頁(yè),共四十七頁(yè),編輯于2023年,星期三恢復(fù)策略其步驟是:正向掃描日志文件,找出故障發(fā)生前已經(jīng)提交的事務(wù),將其事務(wù)標(biāo)識(shí)記入重做(REDO)隊(duì)列。同時(shí)找出故障發(fā)生時(shí)尚未完成的事務(wù),將其事務(wù)標(biāo)識(shí)記入撤銷(UNDO)隊(duì)列。對(duì)撤銷隊(duì)列中的各個(gè)事務(wù)進(jìn)行UNDO處理。即反向掃描日志文件,對(duì)每個(gè)UNDO事務(wù)的更新操作執(zhí)行逆操作,即將日志文件中的“更新前的值”寫入數(shù)據(jù)庫(kù)。對(duì)重做隊(duì)列中的各個(gè)事務(wù)進(jìn)行REDO處理。即正向掃描日志文件,對(duì)每個(gè)REDO事務(wù)重新執(zhí)行日志文件登記的操作,即將日志文件中的“更新后的值”寫入數(shù)據(jù)庫(kù)。第二十八頁(yè),共四十七頁(yè),編輯于2023年,星期三恢復(fù)策略介質(zhì)故障的恢復(fù)介質(zhì)故障將全部或部分地破壞數(shù)據(jù)庫(kù)甚至是日志文件,其恢復(fù)的方法是:裝入最新的數(shù)據(jù)庫(kù)后備副本(離故障發(fā)生時(shí)刻最近的轉(zhuǎn)儲(chǔ)副本),使數(shù)據(jù)庫(kù)恢復(fù)到最近一次轉(zhuǎn)儲(chǔ)時(shí)的一致狀態(tài)。對(duì)于動(dòng)態(tài)轉(zhuǎn)儲(chǔ)的副本,還需要裝入轉(zhuǎn)儲(chǔ)開始時(shí)刻的日志文件副本,將數(shù)據(jù)庫(kù)恢復(fù)到一致狀態(tài)。裝入轉(zhuǎn)儲(chǔ)以后的日志文件副本,重做已經(jīng)完成的事務(wù)。第二十九頁(yè),共四十七頁(yè),編輯于2023年,星期三推遲更新技術(shù)推遲更新技術(shù)在日志中記錄對(duì)事務(wù)T的所有更新操作,并把所有對(duì)數(shù)據(jù)庫(kù)的更新操作推遲到該事務(wù)提交時(shí)執(zhí)行。它遵循以下推遲更新協(xié)議:每個(gè)事務(wù)在到達(dá)提交點(diǎn)之前不能更新數(shù)據(jù)庫(kù)。一個(gè)事務(wù)的所有更新操作所對(duì)應(yīng)的日志記錄寫入永恒存儲(chǔ)器之前,該事務(wù)不能到達(dá)提交點(diǎn)。當(dāng)一個(gè)事務(wù)到達(dá)提交點(diǎn)時(shí),我們稱該事務(wù)進(jìn)入部分提交狀態(tài)。推遲更新協(xié)議保證當(dāng)一個(gè)事務(wù)部分提交時(shí),該事務(wù)的所有更新操作的信息已經(jīng)記錄在日志中。第三十頁(yè),共四十七頁(yè),編輯于2023年,星期三推遲更新技術(shù)當(dāng)T開始執(zhí)行時(shí),推遲更新技術(shù)在日志中寫入<T,start>。如果T執(zhí)行Write(X)的操作,推遲更新技術(shù)在日志中寫入<T,X,V1,V2>,其中V1為X的原始值,V2為Write(X)要寫入的X值。當(dāng)T進(jìn)入部分提交狀態(tài)時(shí),推遲更新技術(shù)在日志中寫入<T,commit>。接著,所有日志記錄都寫入永恒存儲(chǔ)器。然后,對(duì)于日志中的每個(gè)形如<T,X,V1,V2>的記錄,將數(shù)據(jù)庫(kù)中X數(shù)據(jù)項(xiàng)的值更新為V2

。第三十一頁(yè),共四十七頁(yè),編輯于2023年,星期三延遲執(zhí)行更新SQLUPDATERAM中的數(shù)據(jù)頁(yè)數(shù)據(jù)文件InsertDeleteUpdateCommit日志5.寫日志操作4.寫數(shù)據(jù)頁(yè)1.事務(wù)開始2.執(zhí)行更新命令6.確認(rèn)7.寫commit8.確認(rèn)10.在恰當(dāng)?shù)臅r(shí)候?qū)懭霐?shù)據(jù)文件第三十二頁(yè),共四十七頁(yè),編輯于2023年,星期三推遲更新技術(shù)試考慮如下數(shù)據(jù)庫(kù)事務(wù)T0和T1,其中A、B和C的初值分別為1000,2000和700,T0和T1按照串行調(diào)度<T0,T1>執(zhí)行:T0:read(A)A=A-50write(A)read(B)B=B+50write(B)T1:read(C)C=C-100write(C)第三十三頁(yè),共四十七頁(yè),編輯于2023年,星期三推遲更新技術(shù)日志文件數(shù)據(jù)庫(kù)T0,startsT0,A,950T0,B,2050T0,commitA=950B=2050T1,startsT1,C,600T1,commitC=600第三十四頁(yè),共四十七頁(yè),編輯于2023年,星期三推遲更新技術(shù)T0,startsT0,startsT0,startsT0,A,950T0,A,950T0,A,950T0,B,2050T0,B,2050T0,B,2050T0,commitT0,commitT1,startsT1,startsT1,C,600T1,C,600T1,commit第三十五頁(yè),共四十七頁(yè),編輯于2023年,星期三即時(shí)更新技術(shù)即時(shí)更新技術(shù)允許事務(wù)直接更新數(shù)據(jù)庫(kù)。處于活動(dòng)狀態(tài)的事務(wù)直接在數(shù)據(jù)庫(kù)實(shí)施的更新稱為非提交更新。任何即時(shí)更新技術(shù)都必須遵循如下的即時(shí)更新協(xié)議:所有<T,X,V1,V2>型日志記錄安全的存儲(chǔ)到永恒存儲(chǔ)器之前,不允許事務(wù)T更新數(shù)據(jù)庫(kù)。所有<T,X,V1,V2>型日志記錄安全的存儲(chǔ)到永恒存儲(chǔ)器之前,不允許事務(wù)T提交。即時(shí)更新協(xié)議保證在系統(tǒng)故障發(fā)生時(shí),每個(gè)運(yùn)行事務(wù)的更新操作都安全地記錄在日志中。第三十六頁(yè),共四十七頁(yè),編輯于2023年,星期三即時(shí)更新技術(shù)當(dāng)T開始執(zhí)行時(shí),<T,start>被寫入日志。在T運(yùn)行期間,當(dāng)T發(fā)出一個(gè)Write(X)操作時(shí),記錄<T,X,V1,V2>首先被寫入日志,然后,直接在數(shù)據(jù)庫(kù)上執(zhí)行Write(X)。當(dāng)T部分提交時(shí),<T,commit>被寫入日志。為滿足即時(shí)更新協(xié)議的要求,在Write(X)直接作用到數(shù)據(jù)庫(kù)之前,有關(guān)這個(gè)操作的日志記錄必須安全地寫入永恒存儲(chǔ)器。第三十七頁(yè),共四十七頁(yè),編輯于2023年,星期三即時(shí)更新技術(shù)日志文件數(shù)據(jù)庫(kù)T0,startsT0,A,1000,950A=950T0,B,2000,2050B=2050T0,commitT1,startsT1,C,700,600C=600T1,commit第三十八頁(yè),共四十七頁(yè),編輯于2023年,星期三即時(shí)更新技術(shù)T0,startsT0,startsT0,startsT0,A,1000,950T0,A,1000,950T0,A,1000,950T0,B,2000,2050T0,B,2000,2050T0,B,2000,2050T0,commitT0,commitT1,startsT1,startsT1,C,700,600T1,C,700,600T1,commit第三十九頁(yè),共四十七頁(yè),編輯于2023年,星期三具有檢查點(diǎn)的恢復(fù)技術(shù)利用日志技術(shù)進(jìn)行恢復(fù)時(shí),恢復(fù)子系統(tǒng)通常需要檢查所有日志記錄,這樣將耗費(fèi)大量時(shí)間,同時(shí)也可能REDO了一些已經(jīng)寫到數(shù)據(jù)庫(kù)中的更新操作結(jié)果,因此也浪費(fèi)了時(shí)間。為此,提出了檢查點(diǎn)技術(shù)。這種技術(shù)在日志文件中增加一類新的記錄-檢查點(diǎn)(checkpoint)記錄,增加一個(gè)重新開始文件,并讓恢復(fù)子系統(tǒng)在登錄日志文件期間動(dòng)態(tài)地維護(hù)日志。第四十頁(yè),共四十七頁(yè),編輯于2023年,星期三具有檢查點(diǎn)的恢復(fù)技術(shù)檢查點(diǎn)記錄的內(nèi)容包括:建立檢查點(diǎn)時(shí)刻所有正在執(zhí)行的事務(wù)清單。這些事務(wù)最近一個(gè)日志記錄的地址。重新開始文件用來記錄各個(gè)檢查點(diǎn)記錄在日志文件中的地址。第四十一頁(yè),共四十七頁(yè),編輯于2023年,星期三具有檢查點(diǎn)的恢復(fù)技術(shù)動(dòng)態(tài)維護(hù)日志文件的方法是周期性地執(zhí)行如下操作:將當(dāng)前日志緩存中的所有日志記錄寫入磁盤的日志文件上。在日志文件上寫入一個(gè)檢查點(diǎn)記錄將當(dāng)前數(shù)據(jù)緩存的所有數(shù)據(jù)記錄寫入磁盤的數(shù)據(jù)庫(kù)中把檢查點(diǎn)記錄在日志文件中地址寫入一個(gè)重新開始文件。第四十二頁(yè),共四十七頁(yè),編輯于2023年,星期三具有檢查點(diǎn)的恢復(fù)技術(shù)使用檢查點(diǎn)的方式可以改善效率,當(dāng)事務(wù)T在一個(gè)檢查點(diǎn)之前提交,T對(duì)數(shù)據(jù)庫(kù)所做的修改一定已經(jīng)寫入數(shù)據(jù)庫(kù),寫入時(shí)間是在這個(gè)檢查點(diǎn)建立之前或建立之時(shí)。這樣在進(jìn)行恢復(fù)處理時(shí),沒

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論