




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第十章 數(shù)據(jù)庫恢復(fù)技術(shù),事務(wù) 故障的種類 恢復(fù)的實(shí)現(xiàn)技術(shù)、策略 具有檢查點(diǎn)的恢復(fù)技術(shù),設(shè)想網(wǎng)上購物的一次交易,付款過程包括以下DB操作: 1)更新所購商品的庫存信息; 2)與銀行系統(tǒng)交互,保存客戶付款信息; 3)生成訂單,一、事務(wù),事務(wù)(Transaction)是用戶定義的一個(gè)數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個(gè)不可分割的工作單位。,定義方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 語句1 SQL 語句1 SQL 語句2 SQL 語句2 。 。 COMMIT ROLLBACK,事務(wù)的特性(ACID特性),原子性(Atomicity) 一致
2、性(Consistency) 隔離性(Isolation) 持續(xù)性(Durability ),1. 原子性,事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。,2. 一致性,定義事務(wù)時(shí),應(yīng)保證事務(wù)執(zhí)行的結(jié)果必使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài).,例:銀行轉(zhuǎn)帳,從帳號A中取出一萬元,存入帳號B。,3. 隔離性,對并發(fā)執(zhí)行而言,一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。,T1的修改被T2覆蓋了!,4. 持續(xù)性,一個(gè)事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。,思考:破壞事務(wù)ACID特性的因素可能有哪些?,回顧,什么叫事務(wù)? 如何用SQL語句定義事務(wù)? 事務(wù)的特性? 在
3、哪些情況下事務(wù)的特性可能遭到破壞?,二、故障的種類,1.事務(wù)故障: 事務(wù)在運(yùn)行過程中被中斷,沒有達(dá)到預(yù)期的終點(diǎn)。 例如:運(yùn)算溢出,并發(fā)死鎖而被撤銷的事務(wù) 思考:事務(wù)故障帶來的問題 2.系統(tǒng)故障: 造成系統(tǒng)停止運(yùn)轉(zhuǎn)的事件,影響所有正在運(yùn)行的事務(wù)。 例如:系統(tǒng)斷電,CPU故障,OS故障等 思考:系統(tǒng)故障帶來的問題 3.介質(zhì)故障: 硬故障,指外存故障,如磁盤損壞、磁場干擾等。 4.計(jì)算機(jī)病毒,三、恢復(fù)的實(shí)現(xiàn)技術(shù),基本原理:冗余 當(dāng)數(shù)據(jù)庫被破壞或產(chǎn)生不正確的數(shù)據(jù)時(shí),用存儲在系統(tǒng)別處的冗余數(shù)據(jù)來重建。,如何建立冗余數(shù)據(jù)? 數(shù)據(jù)轉(zhuǎn)儲 登記日志文件,1 數(shù)據(jù)轉(zhuǎn)儲,轉(zhuǎn)儲是指DBA定期地將整個(gè)數(shù)據(jù)庫復(fù)制到另一個(gè)
4、磁盤上保存起來的過程;備用數(shù)據(jù)稱為副本。 當(dāng)數(shù)據(jù)庫被破壞,可將副本重新裝入。,轉(zhuǎn)儲的分類,靜態(tài)轉(zhuǎn)儲:轉(zhuǎn)儲過程中不允許運(yùn)行事務(wù)。 動(dòng)態(tài)轉(zhuǎn)儲:轉(zhuǎn)儲過程中允許運(yùn)行事務(wù)。 思考: 轉(zhuǎn)儲得到的副本上的數(shù)據(jù)是否正確有效?,海量轉(zhuǎn)儲:轉(zhuǎn)儲全部數(shù)據(jù)。 增量轉(zhuǎn)儲:只轉(zhuǎn)儲上一次轉(zhuǎn)儲后更新過的數(shù)據(jù)。 思考: 用哪種轉(zhuǎn)儲方式得到的副本進(jìn)行恢復(fù)更方便? 如果數(shù)據(jù)庫很大,使用哪種方式轉(zhuǎn)儲更有效?,利用靜態(tài)轉(zhuǎn)儲副本進(jìn)行恢復(fù),故障發(fā)生點(diǎn) 靜態(tài)轉(zhuǎn)儲 運(yùn)行事務(wù) 正常運(yùn)行 Ta Tb Tf 重裝后備副本 恢復(fù) ,利用動(dòng)態(tài)轉(zhuǎn)儲副本進(jìn)行恢復(fù),Ta Tb Tf 動(dòng)態(tài)轉(zhuǎn)儲 運(yùn)行事務(wù) 故障發(fā)生點(diǎn) 正常運(yùn)行 登記日志文件 登記新日志文件 轉(zhuǎn)儲
5、日志文件 重裝后備副本,然后利用轉(zhuǎn)儲的日志文件恢復(fù) 恢復(fù)到一 致性狀態(tài),轉(zhuǎn)儲方法小結(jié),2 日志文件,日志文件是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件 日志文件的內(nèi)容,包括:事務(wù)開始標(biāo)記、結(jié)束標(biāo)記、更新操作 每個(gè)日志記錄包括: 事務(wù)標(biāo)識 操作類型 操作對象 更新前數(shù)據(jù)的舊值 更新后數(shù)據(jù)的新值 作用:事務(wù)故障和系統(tǒng)故障的恢復(fù); 協(xié)助后備副本恢復(fù)數(shù)據(jù)庫。 登記日志文件的原則:按時(shí)間次序登記;先寫日志文件,后寫數(shù)據(jù)庫,三、恢復(fù)策略,1 事務(wù)故障的恢復(fù) 由恢復(fù)子系統(tǒng)利用日志文件撤消(UNDO)此事務(wù)已對數(shù)據(jù)庫進(jìn)行的修改。 事務(wù)故障的恢復(fù)由系統(tǒng)自動(dòng)完成,不需要用戶干預(yù)。 具體步驟:,1)反向掃描文件日志,查
6、找該事務(wù)的更新操作; 2)對該事務(wù)的更新操作執(zhí)行逆操作。 3)繼續(xù)反向掃描日志文件,查找該事務(wù)的其他更新操作,并做同樣處理; 4)直至讀到此事務(wù)的開始標(biāo)記,事務(wù)故障恢復(fù)完成。,2 系統(tǒng)故障的恢復(fù),系統(tǒng)故障造成數(shù)據(jù)庫不一致狀態(tài)的原因 一些未完成事務(wù)對數(shù)據(jù)庫的更新已寫入數(shù)據(jù)庫 一些已提交事務(wù)對數(shù)據(jù)庫的更新還留在緩沖區(qū)沒來得及寫入數(shù)據(jù)庫 恢復(fù)方法 1. Undo 故障發(fā)生時(shí)未完成的事務(wù) 2. Redo 已完成的事務(wù) 系統(tǒng)故障的恢復(fù)由系統(tǒng)在重新啟動(dòng)時(shí)自動(dòng)完成,不需要用戶干預(yù),具體步驟,1) 正向掃描日志文件(即從頭掃描日志文件) Redo隊(duì)列: 在故障發(fā)生前已經(jīng)提交的事務(wù) Undo隊(duì)列:故障發(fā)生時(shí)尚未
7、完成的事務(wù) 2)對Undo隊(duì)列事務(wù)進(jìn)行UNDO處理 反向掃描日志文件,對每個(gè)UNDO事務(wù)的更新操作執(zhí)行逆操作 3)對Redo隊(duì)列事務(wù)進(jìn)行REDO處理 正向掃描日志文件,對每個(gè)REDO事務(wù)重新執(zhí)行登記過的操作,3 介質(zhì)故障的恢復(fù),恢復(fù)步驟 1)裝入最新的數(shù)據(jù)庫副本,使數(shù)據(jù)庫恢復(fù)到最近一次轉(zhuǎn)儲時(shí)的一致性狀態(tài)。 對于靜態(tài)轉(zhuǎn)儲的數(shù)據(jù)庫副本,裝入后數(shù)據(jù)庫即處于一致性狀態(tài) 對于動(dòng)態(tài)轉(zhuǎn)儲的數(shù)據(jù)庫副本,還須同時(shí)裝入轉(zhuǎn)儲時(shí)刻的日志文件副本,利用恢復(fù)系統(tǒng)故障的方法(即REDO+UNDO),才能將數(shù)據(jù)庫恢復(fù)到一致性狀態(tài)。 2) 裝入相應(yīng)的日志文件副本,重做已完成的事務(wù)。,1.事務(wù)的隔離性是由DBMS的( ) A.恢
8、復(fù)子系統(tǒng)出現(xiàn) B.完整性子系統(tǒng)實(shí)現(xiàn) C.安全性子系統(tǒng)實(shí)現(xiàn) D.并發(fā)控制子系統(tǒng)實(shí)現(xiàn) 2.在數(shù)據(jù)庫系統(tǒng)中死鎖屬于() A.系統(tǒng)故障B.程序故障C.事務(wù)故障D.介質(zhì)故障 3.若一個(gè)事務(wù)執(zhí)行成功,則它的全部更新被提交;若一個(gè)事務(wù)執(zhí)行失敗,則DB中被其更新過的數(shù)據(jù)恢復(fù)原狀,就象這些更新從未發(fā)生過,這保持了數(shù)據(jù)庫處于() A.安全性狀態(tài) B.一致性狀態(tài) C.完整性狀態(tài) D.可靠性狀態(tài),練習(xí):,四、具有檢查點(diǎn)的恢復(fù)技術(shù),1 利用日志進(jìn)行數(shù)據(jù)庫恢復(fù)時(shí)遇到的問題: 搜索整個(gè)日志將耗費(fèi)大量的時(shí)間 REDO處理:重新執(zhí)行,浪費(fèi)大量時(shí)間,2 解決方案:具有檢查點(diǎn)的恢復(fù)技術(shù) 在日志文件中增加檢查點(diǎn)記錄(checkpoi
9、nt) 增加重新開始文件,3 具有檢查點(diǎn)的日志文件和重新開始文件:,周期性執(zhí)行如下操作: 1.將當(dāng)前日志緩沖區(qū)中的所有日志記錄寫入磁盤的日志文件上; 2.在日志文件中寫入一個(gè)檢查點(diǎn)記錄; 3. 將當(dāng)前數(shù)據(jù)緩沖區(qū)的所有數(shù)據(jù)記錄寫入磁盤的數(shù)據(jù)庫中; 4. 把檢查點(diǎn)記錄在日志文件中的地址寫入重新開始文件。,4 利用檢查點(diǎn)的恢復(fù)策略,當(dāng)事務(wù)T在一個(gè)檢查點(diǎn)之前提交,T對數(shù)據(jù)庫所做的修改一定已寫入數(shù)據(jù)庫 在進(jìn)行恢復(fù)處理時(shí),沒有必要對事務(wù)T執(zhí)REDO操作,5 使用檢查點(diǎn)方法進(jìn)行恢復(fù)的步驟,1)從重新開始文件中找到最后一個(gè)檢查點(diǎn)記錄在日志文件中的地址,由該地址在日志文件中找到最后一個(gè)檢查點(diǎn)記錄; 2)由該檢查
10、點(diǎn)記錄得到檢查點(diǎn)建立時(shí)刻所有正在執(zhí)行的事務(wù)清單ACTIVE-LIST 建立兩個(gè)事務(wù)隊(duì)列 UNDO-LIST REDO-LIST 把ACTIVE-LIST暫時(shí)放入U(xiǎn)NDO-LIST隊(duì)列,REDO隊(duì)列暫為空。,3)從檢查點(diǎn)開始正向掃描日志文件,直到日志文件結(jié)束 如有新開始的事務(wù)Ti,把Ti暫時(shí)放入U(xiǎn)NDO-LIST隊(duì)列 如有提交的事務(wù)Tj,把Tj從UNDO-LIST隊(duì)列移到REDO-LIST隊(duì)列 4)對UNDO-LIST中的每個(gè)事務(wù)執(zhí)行UNDO操作, 對REDO-LIST中的每個(gè)事務(wù)執(zhí)行REDO操作,五、數(shù)據(jù)庫鏡像,許多DBMS提供數(shù)據(jù)庫鏡像功能用于數(shù)據(jù)庫恢復(fù)。,小結(jié),事務(wù)是數(shù)據(jù)庫的邏輯工作單位
11、DBMS保證系統(tǒng)中一切事務(wù)的ACID特性 恢復(fù)的基本原理:利用存儲在后備副本、日志文件和數(shù)據(jù)庫鏡像中的冗余數(shù)據(jù)來重建數(shù)據(jù)庫 常用恢復(fù)技術(shù) 事務(wù)故障的恢復(fù):UNDO 系統(tǒng)故障的恢復(fù):UNDO + REDO 介質(zhì)故障的恢復(fù) 重裝備份并恢復(fù)到一致性狀態(tài) + REDO 提高恢復(fù)效率的技術(shù) 檢查點(diǎn)技術(shù) 可以提高系統(tǒng)故障的恢復(fù)效率 鏡像技術(shù) 鏡像技術(shù)可以改善介質(zhì)故障的恢復(fù)效率,練習(xí):,設(shè)有四個(gè)事務(wù):Tl,T2,T3,T4;在系統(tǒng)崩潰之前,系統(tǒng)在日志中記錄了 如下內(nèi)容: Start-Transaction,Tl;Read-Item,T1,A;Read-Item,T1,D; White-Item,T1,D,20;Commit,T1;Checkpoint; Start-Transaction,T2;Read-Item,T2,B;Write-ltem,T2,B,l2; Start-Transaction,T4;Read-Item,T4,B;Write-Item,T4,B,l5; Start-Transaction, T3;Read-Item,T3,A;Write-Item,T3,A,30; Read-Item,T4,A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園班級教師安全培訓(xùn)
- 數(shù)學(xué)新老師培訓(xùn)
- 護(hù)理職業(yè)精神演講
- 導(dǎo)師培訓(xùn):幼兒園一日流程
- 物流倉儲安全培訓(xùn)
- 線上閱讀教育課件
- 我生氣了繪畫課件
- 托??谡Z教學(xué)課件
- 有效協(xié)商培訓(xùn)課程
- 抗疫教學(xué)課件
- 2025年中小學(xué)生安全知識競賽試題及答案
- 2024年山西煙草專賣局考試真題試卷及答案
- SOP-15天視頻起號流程圖
- 出口原產(chǎn)地管理制度
- T/CHC 1007-2023硫酸軟骨素鈉
- 陜西省特種設(shè)備隱患排查清單(2025年)
- 有機(jī)化學(xué)(上)(中國藥科大學(xué))知到智慧樹期末考試答案題庫2025年中國藥科大學(xué)
- 國際宏觀金融觀察·2024年度報(bào)告 -英國篇
- 通信基站建設(shè)技術(shù)規(guī)范
- 2025年人教版PEP三年級英語下冊期末測試卷(含答案含聽力原文無音頻)
- 國家職業(yè)技術(shù)技能標(biāo)準(zhǔn) 6-16-02-02 鉆井工 人社廳發(fā)202226號
評論
0/150
提交評論