關(guān)系數(shù)據(jù)庫事務(wù)處理技術(shù).pps_第1頁
關(guān)系數(shù)據(jù)庫事務(wù)處理技術(shù).pps_第2頁
關(guān)系數(shù)據(jù)庫事務(wù)處理技術(shù).pps_第3頁
關(guān)系數(shù)據(jù)庫事務(wù)處理技術(shù).pps_第4頁
關(guān)系數(shù)據(jù)庫事務(wù)處理技術(shù).pps_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第10講 事務(wù)處理技術(shù),參考教材第1011章,2,本講內(nèi)容,事務(wù)的基本概念 數(shù)據(jù)庫恢復(fù)技術(shù) 并發(fā)控制技術(shù),3,什么是事務(wù),事務(wù)是用戶定義的一個(gè)數(shù)據(jù)庫操作序列 該序列內(nèi)的操作是不可分割的 在RDBMS中,一個(gè)事務(wù)可由一條、多條SQL語句組成 在RDBMS中,用于事務(wù)的標(biāo)準(zhǔn)SQL語句有 BEGIN TRANSACTION開始事務(wù) COMMIT提交事務(wù)所有操作,事務(wù)正常結(jié)束 ROLLBACK事務(wù)執(zhí)行中遇故障,回滾到事務(wù)開始時(shí)的狀態(tài),事務(wù)結(jié)束,4,事務(wù)的特性,原子性(Atomicity) 同一事務(wù)內(nèi)的操作不可分割 一致性(Consistency) 事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài) 隔離性(Isolation) 一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾,5,事務(wù)的特性,持續(xù)性(Durability) 某一事務(wù)一旦提交,其對(duì)數(shù)據(jù)庫中數(shù)據(jù)的改變就是永久性的 發(fā)生于該事務(wù)提交后的其他操作或故障,均不影響該事務(wù)的執(zhí)行結(jié)果 事務(wù)的四個(gè)特征 Atomicity、Consistency、Isolation、Durability ACID特性,6,事務(wù)的處理技術(shù),事務(wù)處理技術(shù)用于保證事務(wù)的ACID特性 保證被強(qiáng)行終止的事務(wù)對(duì)數(shù)據(jù)庫和其他事務(wù)沒有任何影響 數(shù)據(jù)庫恢復(fù)技術(shù) 保證多個(gè)事務(wù)的交叉運(yùn)行不影響這些事務(wù)的原子性 并發(fā)控制,7,本講內(nèi)容,事務(wù)的基本概念 數(shù)據(jù)庫恢復(fù)技術(shù) 并發(fā)控制技術(shù),8,數(shù)據(jù)庫恢復(fù)技術(shù),故障種類 恢復(fù)的實(shí)現(xiàn)技術(shù) 恢復(fù)的策略,9,事務(wù)內(nèi)部故障,事務(wù)內(nèi)部故障有兩大類 可通過事務(wù)程序發(fā)現(xiàn)的,ROLLBACK 非預(yù)期的,不能由應(yīng)用程序處理 若未特別指明,事務(wù)故障特指這一類故障 事務(wù)故障意味著事務(wù)沒有到達(dá)預(yù)期的終點(diǎn) 數(shù)據(jù)庫可能處于不正確的狀態(tài),10,系統(tǒng)故障,所有造成系統(tǒng)停止運(yùn)轉(zhuǎn)的事件都可稱為系統(tǒng)故障 發(fā)生系統(tǒng)故障 可能造成數(shù)據(jù)庫緩沖區(qū)中內(nèi)容丟失,使得運(yùn)行的事務(wù)非正常終止 已完成的事務(wù)部分或全部留在緩沖區(qū),尚沒有寫到物理數(shù)據(jù)庫中,11,介質(zhì)故障,系統(tǒng)故障又稱為軟故障 介質(zhì)故障被稱為硬故障,比如 磁盤損壞、瞬時(shí)強(qiáng)磁場(chǎng)干擾等 破壞部分或整個(gè)數(shù)據(jù)庫,影響正在存取相應(yīng)數(shù)據(jù)的事務(wù) 發(fā)生機(jī)率小于前兩種故障,但破壞性大,12,數(shù)據(jù)庫恢復(fù)技術(shù),故障種類 恢復(fù)的實(shí)現(xiàn)技術(shù) 恢復(fù)的策略,13,數(shù)據(jù)庫恢復(fù)機(jī)制的關(guān)鍵 建立冗余數(shù)據(jù) 利用冗余數(shù)據(jù)恢復(fù)數(shù)據(jù)庫 建立冗余數(shù)據(jù)的常用技術(shù) 數(shù)據(jù)轉(zhuǎn)儲(chǔ) 登記日志文件,14,數(shù)據(jù)轉(zhuǎn)儲(chǔ),DBA定期地將整個(gè)數(shù)據(jù)庫復(fù)制到磁盤或另一個(gè)磁盤上保存的過程稱為轉(zhuǎn)儲(chǔ) 備用數(shù)據(jù)稱為后備副本,運(yùn)行事務(wù),15,數(shù)據(jù)轉(zhuǎn)儲(chǔ)的分類,靜態(tài)轉(zhuǎn)儲(chǔ) 在系統(tǒng)中無運(yùn)行事務(wù)時(shí)進(jìn)行的轉(zhuǎn)儲(chǔ) 只要轉(zhuǎn)儲(chǔ)開始時(shí)數(shù)據(jù)庫處于一致性狀態(tài),則得到的后備副本一定是一致的 由于對(duì)事務(wù)運(yùn)行的限制,可能降低數(shù)據(jù)庫可用性 動(dòng)態(tài)轉(zhuǎn)儲(chǔ) 在轉(zhuǎn)儲(chǔ)期間允許對(duì)數(shù)據(jù)庫進(jìn)行存取或修改 得到的后備副本不一定是一致的,16,數(shù)據(jù)轉(zhuǎn)儲(chǔ)的分類,海量轉(zhuǎn)儲(chǔ) 每次轉(zhuǎn)儲(chǔ)全部數(shù)據(jù)庫 用得到的后備副本進(jìn)行數(shù)據(jù)庫恢復(fù)比較方便 但如果數(shù)據(jù)庫大且事務(wù)處理頻繁,則不實(shí)用 增量轉(zhuǎn)儲(chǔ) 每次只轉(zhuǎn)儲(chǔ)上一次轉(zhuǎn)儲(chǔ)后被更新過的數(shù)據(jù) 轉(zhuǎn)儲(chǔ)和使用后備副本進(jìn)行恢復(fù)時(shí)比海量轉(zhuǎn)儲(chǔ)麻煩,17,日志文件概念及格式,日志文件是用于記錄事務(wù)對(duì)數(shù)據(jù)庫的更新操作的文件 不同RDBMS采用的日志文件格式不完全一樣 日志文件的格式 以記錄為單位的日志文件 事務(wù)標(biāo)識(shí)、操作類型、操作對(duì)象、更新前數(shù)據(jù)的值、更新后數(shù)據(jù)的值 以數(shù)據(jù)庫塊為單位的日志文件 事務(wù)標(biāo)識(shí)、更新前的數(shù)據(jù)塊、更新后的數(shù)據(jù)塊,18,日志文件的作用,事務(wù)故障和系統(tǒng)故障的恢復(fù)必須使用登記日志 動(dòng)態(tài)轉(zhuǎn)儲(chǔ)方式中,必須使用登記日志 靜態(tài)轉(zhuǎn)儲(chǔ)中,也可能用到登記日志,19,登記日志文件的準(zhǔn)則,日志的登記次序嚴(yán)格按并發(fā)事務(wù)執(zhí)行的時(shí)間次序 必須先寫日志文件,后寫數(shù)據(jù)庫 將數(shù)據(jù)的修改寫到數(shù)據(jù)庫中是一個(gè)操作 將表示該數(shù)據(jù)修改的日志寫到日志文件中又是一個(gè)操作 兩操作執(zhí)行時(shí)可能發(fā)生發(fā)生故障,20,數(shù)據(jù)庫恢復(fù)技術(shù),故障種類 恢復(fù)的實(shí)現(xiàn)技術(shù) 恢復(fù)的策略,21,事務(wù)故障的恢復(fù),事務(wù)故障的恢復(fù)由系統(tǒng)自動(dòng)完成,對(duì)用戶透明 某事務(wù)發(fā)生故障后,系統(tǒng)恢復(fù)步驟 1. 反向掃描日志文件,查找該事務(wù)的更新操作 2. 對(duì)該事務(wù)的更新操作執(zhí)行逆操作 3. 繼續(xù)反向掃描日志,查找該事務(wù)的其他更新操作,返2 4. 直到反向掃描到事務(wù)的開始標(biāo)記,22,系統(tǒng)故障的恢復(fù),系統(tǒng)故障恢復(fù)由系統(tǒng)自動(dòng)完成,不需用戶干預(yù) 系統(tǒng)故障的恢復(fù)步驟 1. 正向掃描日志文件,找出在故障發(fā)生前已提交的事務(wù),將其事務(wù)標(biāo)識(shí)記入重做隊(duì)列;找出故障發(fā)生時(shí)尚未完成的事務(wù),將其事務(wù)標(biāo)識(shí)記入撤消隊(duì)列 2. 對(duì)撤消隊(duì)列中的各個(gè)事務(wù)進(jìn)行撤消處理 3. 對(duì)重做隊(duì)列中的各個(gè)事務(wù)進(jìn)行重做處理,23,介質(zhì)故障的恢復(fù),最嚴(yán)重的故障,磁盤上的物理數(shù)據(jù)和日志文件被破壞 介質(zhì)故障的恢復(fù)步驟 1. 裝入最新的數(shù)據(jù)庫后備副本,使數(shù)據(jù)庫恢復(fù)到最近一次轉(zhuǎn)儲(chǔ)時(shí)的一致性狀態(tài) 2. 裝入相應(yīng)的日志文件副本,重做已完成的事務(wù),24,本講內(nèi)容,事務(wù)的基本概念 數(shù)據(jù)庫恢復(fù)技術(shù) 并發(fā)控制技術(shù),25,并發(fā)操作及其引發(fā)的問題 并發(fā)控制的實(shí)現(xiàn) 封鎖 兩段鎖協(xié)議,26,并發(fā)操作的必要性,事務(wù)一個(gè)一個(gè)串行執(zhí)行,可避免同時(shí)運(yùn)行多個(gè)事務(wù)所引發(fā)的沖突 但無法充分利用系統(tǒng)資源 不同的事務(wù),在執(zhí)行過程中需不同 的資源 串行執(zhí)行所有事務(wù),導(dǎo)致某些系統(tǒng) 資源處于空閑,27,并發(fā)的分類,交叉并發(fā)(Interleaved Concurrency) 單CPU處理系統(tǒng)中采用的并發(fā)方式 事務(wù)輪流交叉運(yùn)行 不是真正意義上的并發(fā) 同時(shí)并發(fā)(Simultaneous Concurrency) 多CPU處理系統(tǒng)中采用的并發(fā)方式 每個(gè)CPU運(yùn)行一個(gè)事務(wù) 是真正意義上的并發(fā),28,并發(fā)操作引發(fā)的問題,丟失修改 兩事務(wù)同時(shí)讀入同一數(shù)據(jù)并修改 某一事務(wù)提交的結(jié)果破壞了另一事務(wù)提交的結(jié)果,29,并發(fā)操作引發(fā)的問題,不可重復(fù)讀 兩事務(wù)并發(fā)操作 某一事務(wù)T1讀取數(shù)據(jù)后,另一事務(wù)T2執(zhí)行了更新操作,使T1無法再現(xiàn)前一次讀取的結(jié)果,30,并發(fā)操作引發(fā)的問題,讀“臟”數(shù)據(jù) 兩事務(wù)并發(fā)操作 某一事務(wù)T1修改某一數(shù)據(jù),并將其寫入數(shù)據(jù);另一事務(wù)T2讀取該數(shù)據(jù)后,T1回滾 事務(wù)T2讀到的數(shù)據(jù)是不正確的數(shù)據(jù),31,并發(fā)控制的必要性,當(dāng)多個(gè)事務(wù)對(duì)數(shù)據(jù)庫進(jìn)行并發(fā)操作,可能造成丟失修改、不可重復(fù)讀、讀“臟”數(shù)據(jù)等問題 破壞事務(wù)的ACID特性 為保證事務(wù)的隔離性、一致性,需對(duì)并發(fā)操作進(jìn)行控制 并發(fā)控制機(jī)制也是衡量一個(gè)RDBMS性能的重要指標(biāo)之一,32,并發(fā)操作及其引發(fā)的問題 并發(fā)控制的實(shí)現(xiàn) 封鎖 兩段鎖協(xié)議,33,封鎖,事務(wù)T對(duì)某個(gè)數(shù)據(jù)對(duì)象進(jìn)行操作前,向系統(tǒng)發(fā)出加鎖請(qǐng)求 系統(tǒng)加鎖,事務(wù)T擁有對(duì)該數(shù)據(jù)對(duì)象的控制 控制程度由所加鎖類型確定 事務(wù)T釋放所加的瑣之前,其他事務(wù)不可更新該數(shù)據(jù)對(duì)象 事務(wù)T執(zhí)行完后,釋放所加的瑣,34,常用鎖類型,排它鎖(寫鎖)Xlock 事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加Xlock,則只有T才可讀取、修改A 其他事務(wù)不可對(duì)A加任何類型的鎖,直到T釋放A上的鎖 共享鎖(讀鎖)Slock 事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加Slock,則T可讀A但不能修改A 其他事務(wù)可對(duì)A加Slock ,直到T釋放A上的鎖,35,封鎖解決丟失修改,36,封鎖存在的問題,死鎖 相互等待,事務(wù)無法結(jié)束,T1封鎖R1,T2封鎖R2,請(qǐng)求封鎖R2 等待T2,請(qǐng)求封鎖R1 等待T1,37,死鎖的預(yù)防,一次封鎖法 要求每個(gè)事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行 缺點(diǎn):擴(kuò)大封鎖范圍,降低系統(tǒng)并發(fā)性 無法準(zhǔn)確預(yù)期哪些數(shù)據(jù)被加鎖 順序封鎖法 預(yù)先對(duì)數(shù)據(jù)對(duì)象規(guī)定一個(gè)封鎖順序,所有事務(wù)按該順序?qū)嵭蟹怄i 缺點(diǎn):維護(hù)成本高、很難準(zhǔn)確預(yù)測(cè)封鎖對(duì)象,38,死鎖的診斷,超時(shí)法 當(dāng)一事務(wù)等待時(shí)間超過預(yù)定值,則診斷為發(fā)生了死鎖 難點(diǎn):超時(shí)時(shí)間的設(shè)定 等待圖法 以有向圖的方式描述所有事務(wù)的等待情況 圖中出現(xiàn)回路則發(fā)生了死鎖,39,并發(fā)操作及其引發(fā)的問題 并發(fā)控制的實(shí)現(xiàn) 封鎖 兩段鎖協(xié)議,40,封鎖協(xié)議,封鎖時(shí),對(duì)數(shù)據(jù)對(duì)象加

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論