分布式數(shù)據(jù)庫(kù)中的事務(wù)管理和恢復(fù)



《分布式數(shù)據(jù)庫(kù)中的事務(wù)管理和恢復(fù)》由會(huì)員分享,可在線閱讀,更多相關(guān)《分布式數(shù)據(jù)庫(kù)中的事務(wù)管理和恢復(fù)(44頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),分布式事務(wù)概述,分布式事務(wù)的執(zhí)行與恢復(fù),兩階段提交協(xié)議,分布式數(shù)據(jù)庫(kù)中的數(shù)據(jù)更新,分布式事務(wù)增強(qiáng)數(shù)據(jù)庫(kù)一致性,本章主要內(nèi)容,分布式事務(wù)概述,分布式事務(wù)定義和特性,分布式事務(wù)的結(jié)構(gòu)和事務(wù)狀態(tài),分布式事務(wù)管理的問題和目標(biāo),分布式事務(wù)定義和特性,1.,分布式事務(wù)的定義,事務(wù),是為了實(shí)現(xiàn)特定的業(yè)務(wù)功能而訪問數(shù)據(jù)庫(kù)的一個(gè)最小的邏輯工作單位,它是一個(gè)操作序列。,分布式事務(wù),在分布式系統(tǒng)中,對(duì)分布在網(wǎng)絡(luò)中不同站點(diǎn)上數(shù)據(jù)庫(kù)存取操作的序列。,一個(gè)分布式事務(wù)即全局事務(wù),通常由一個(gè)主(父)事務(wù)和在不同站點(diǎn)上執(zhí)行的子事務(wù)(局部事
2、務(wù))組成。,主事務(wù)負(fù)責(zé)事務(wù)的開始,提交和異常中止。,子事務(wù)完成對(duì)相應(yīng)站點(diǎn)上數(shù)據(jù)庫(kù)的訪問操作。,全局事務(wù)是訪問或更新多個(gè)站點(diǎn)上數(shù)據(jù)的事務(wù)。,局部事務(wù)是僅僅訪問或更新一個(gè)站點(diǎn)上數(shù)據(jù)的事務(wù)。,2,.分布式事務(wù)的特性:ACID,原子性(atomicity)指事務(wù)執(zhí)行時(shí)的不可分割性。這個(gè)特性確保了每個(gè)事務(wù)要么全部發(fā)生,要么全部不發(fā)生。,一致性(consistency)事務(wù)執(zhí)行的結(jié)果必須使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)轉(zhuǎn)到另一個(gè)一致性狀態(tài)。,隔離性(isolaty)一個(gè)事務(wù)的執(zhí)行不被其他事務(wù)干擾。,持久性(durability)一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變應(yīng)該是永久性的。無論系統(tǒng)發(fā)生任何故障,都不會(huì)丟
3、失該事務(wù)的執(zhí)行結(jié)果。,應(yīng)用,分布式事務(wù)的結(jié)構(gòu),分布式事務(wù),分布式事務(wù),分布式事務(wù),子,事,務(wù),子,事,務(wù),子,事,務(wù),子,事,務(wù),子,事,務(wù),子,事,務(wù),分布式事務(wù)的一般結(jié)構(gòu)為:,Begin Transaction 原語:開始一個(gè)事務(wù),T1,T2,:子事務(wù)或操作序列,:,Tn,Commit 原語:事務(wù)成功完成的結(jié)束,RollBack 或Abort原語:事務(wù)失敗的結(jié)束,2.分布式數(shù)據(jù)庫(kù)中進(jìn)程的協(xié)作,(1)兩個(gè)概念,進(jìn)程:,是一個(gè)具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn),行活動(dòng)。,它有兩個(gè)側(cè)面:,進(jìn)程說明:定義進(jìn)程的行為模式,包括數(shù)據(jù)和對(duì)數(shù)據(jù)的一組,操作,執(zhí)行這組操作,完成某一功能。,進(jìn)程執(zhí)
4、行:按進(jìn)程說明中所定義的模式來啟動(dòng)這個(gè)進(jìn)程,執(zhí),行其中的那組操作。,事務(wù)代理(Agent):在分布式數(shù)據(jù)庫(kù)系統(tǒng)中,為了完成在不同站,點(diǎn)上的相應(yīng)功能,分布式應(yīng)用必須在這些站點(diǎn)中執(zhí)行若干進(jìn),程,這些進(jìn)程就稱為該應(yīng)用在那個(gè)站點(diǎn)上的“事務(wù)代理”。,(,2)進(jìn)程的協(xié)作,為了協(xié)調(diào)地執(zhí)行分布式應(yīng)用的全局操作,分駐于不同站點(diǎn)的諸事務(wù)代理必須進(jìn)行協(xié)調(diào)。為考慮事務(wù)的特性,把各站點(diǎn)上的諸代理組建成協(xié)作進(jìn)程來完成一個(gè)全局應(yīng)用,并作如下規(guī)定:,1)每一應(yīng)用均有一個(gè)負(fù)責(zé)啟動(dòng)整個(gè)事務(wù)的總代理或稱根代理,建立總代理的站點(diǎn)稱為源站點(diǎn);,2)只有總代理才能發(fā)出全局有效的事務(wù)開始,提交和撤銷原語;,3)只有總代理才能請(qǐng)求建立新的事
5、務(wù)代理;,4)各站點(diǎn)上的子事務(wù)都執(zhí)行成功,總代理才能決定提交該事務(wù),否則總代理將決定撤銷該事務(wù)。,FUND_TRANSFER:,Read(terminal,$AMOUNT,$FROM_ACC,$TO_ACC);,Begin_Transaction;,Select AMOUNT into$FROM_AMOUNT from ACCOUNT,where ACCOUNT_NUMBER=$FROM_ACC;,if$FROM_AMOUNT-$AMOUNT0 then abort,else begin,Update ACCOUNT set AMOUNT=AMOUNT-$AMOUNT,where ACCOUN
6、T_NUMBER=$FROM_ACC;,Update ACCOUNT set AMOUNT=AMOUNT-$AMOUNT,where ACCOUNT_NUMBER=$TO_ACC;,Commit,end,圖1全局級(jí)的FUND_TRANSFER事務(wù),ROOT_AGENT AGENT:,輸入:匯出金額和轉(zhuǎn)出/轉(zhuǎn)入賬號(hào),事務(wù)開始:檢查轉(zhuǎn)出賬號(hào)中,是否又足夠的轉(zhuǎn)出資金,更新轉(zhuǎn)出賬號(hào)存款余額,創(chuàng)建代理Agent,向代理送信息:轉(zhuǎn)入帳號(hào),金額,等待來自Agent的消息,成功,提交事務(wù):成功結(jié)束,否,撤銷事務(wù):失敗結(jié)束,接收來自根代理的消息,更新轉(zhuǎn)入賬號(hào)存款余額,發(fā)送執(zhí)行消息給根代理,(成功或失敗),ROO
7、T-AGENT;,Read(terminal,$AMOUNT,$FROM_ACC,$TO_ACC);,Begin_transaction;,Select AMOUNT into$FROM_AMOUNT from ACCOUNT,where ACCOUNT_NUMBER=$FROM_ACCOUNT;,if$FROM_AMOUNT-$AMOUNT0 then abort,else begin,Update ACCOUNT set AMOUNT=AMOUNT-$AMOUNT,where ACCOUNT=$FROM_ACC;,Create AGENT;,SEND to AGENT($AMOUNT,$T
8、O_ACC);,Commit,end,AGENT;,Receive from ROOT_AGENT($AMOUNT,$TO_ACC);,Update ACCOUNT set AMOUNT=AMOUNT+$AMOUNT,where ACCOUNT=$TO_ACC;,Send to ROOT_AGENT(SUCCESS/FALL),圖3兩個(gè)代理組成的FUND_TRANSFER事務(wù),分布式事務(wù)管理的問題和目標(biāo),分布式事務(wù)管理的問題,(,1,)處理數(shù)據(jù)項(xiàng)的多個(gè)副本,分布式事務(wù)管理負(fù)責(zé)保持同一數(shù)據(jù)的多個(gè)副本間的一致性。,(,2,)單個(gè)站點(diǎn)的故障,當(dāng)故障站點(diǎn)得到恢復(fù)時(shí),,DDBMS,協(xié)同該故障站點(diǎn)上的,D
9、BMS,,必須在該站點(diǎn)與系統(tǒng)重新連接時(shí),使它的局部數(shù)據(jù)與其他站點(diǎn)同步。,(,3,)通信網(wǎng)絡(luò)的故障,系統(tǒng)必須有能力處理一個(gè)或多個(gè)連接站點(diǎn)的通信網(wǎng)絡(luò)故障。這個(gè)問題的一個(gè)極端情況是發(fā)生網(wǎng)絡(luò)分割。,(,4,)分布式提交,如果在提交一個(gè)分布式事務(wù)過程中至少有一個(gè)站點(diǎn)發(fā)生故障的話,那么這個(gè)分布式事務(wù)的提交將會(huì)產(chǎn)生問題。,2.,分布式事務(wù)管理的目標(biāo),事務(wù)管理的任務(wù)就是負(fù)責(zé)當(dāng)若干個(gè)事務(wù)并發(fā)執(zhí)行和事,務(wù)執(zhí)行發(fā)生錯(cuò)誤時(shí),使數(shù)據(jù)庫(kù)仍保持一致狀態(tài)。,例如:,某公司在銀行中有A,B兩個(gè)賬號(hào),現(xiàn)在公司想從賬號(hào)A中取出一萬元,存入賬號(hào)B。,1、定義一個(gè)事務(wù),該事務(wù)包括兩個(gè)操作,第一個(gè)操作是從賬號(hào)A中減去一萬元,第二個(gè)操作是
10、向賬號(hào)B中加入一萬元。,2、在事務(wù)開始時(shí),數(shù)據(jù)庫(kù)是處于一個(gè)一致性狀態(tài)。,3、在事務(wù)執(zhí)行時(shí),如果只做第一個(gè)操作則用戶邏輯上就會(huì)發(fā)生錯(cuò)誤,少了一萬元,這時(shí)數(shù)據(jù)庫(kù)就處于非一致性狀態(tài)。,4、當(dāng)我們接著做第二個(gè)操作,且成功提交后,數(shù)據(jù)庫(kù)又處在了一致性的狀態(tài)。,事務(wù)管理所追求的理想目標(biāo)是高執(zhí)行效率,高并行性,和高可靠性。這三大理想目標(biāo)往往不能兼得,因?yàn)樗麄冎?間密切相關(guān),而又矛盾??煽啃源胧?huì)使效率下降,而事,務(wù)運(yùn)行效率不僅取決于采用的策略,還與下列因素有關(guān):,(1)CPU和主存利用率,(2)控制報(bào)文,(3)相應(yīng)時(shí)間,(4)可用性,由此可見事務(wù)管理的目標(biāo)是:,(1)維護(hù)分布式事務(wù)的原子性,一致性,持久性和
11、隔,離性。,(2)獲得最小的主存和CPU開銷,降低控制報(bào)文的傳,輸個(gè)數(shù)和加快分布式事務(wù)的響應(yīng)速度;,(3)獲得最大限度的系統(tǒng)可靠性和可用性。,分布式事務(wù)的執(zhí)行與恢復(fù),分布式事務(wù)管理的抽象模型,在分布式數(shù)據(jù)庫(kù)系統(tǒng)中,事務(wù)管理功能分成兩,個(gè)層次。,在每個(gè)站點(diǎn)上,類似于集中式數(shù)據(jù)庫(kù)系統(tǒng)中,的局部事務(wù)管理器(LTM)進(jìn)行局部事務(wù)的管理,,負(fù)責(zé)本站點(diǎn)事務(wù)的執(zhí)行,完成對(duì)本站點(diǎn)數(shù)據(jù)庫(kù)數(shù)據(jù),的訪問;,對(duì)整個(gè)分布式數(shù)據(jù)庫(kù)系統(tǒng),由駐留在各個(gè)站點(diǎn),上的分布式事務(wù)管理器(DTM)共同協(xié)作,實(shí)現(xiàn),對(duì)分布式事務(wù)的協(xié)調(diào)和管理。,圖5分布式事務(wù)管理的抽象模型,站,點(diǎn),1,站,點(diǎn),3,站,點(diǎn),2,本地事務(wù)管理器,LTM1,分布
12、式事務(wù)管理器,DTM1,分布式事務(wù)管理器,DTM1,本地事務(wù)管理器,LTM2,分布式事務(wù)管理器,DTM1,本地事務(wù)管理器,LTM3,局部事務(wù)管理器LTM的結(jié)構(gòu)和功能在許多方面,與集中式系統(tǒng)類似,主要包括:,(1)保證本地事務(wù)的ACID特性;,(2)維護(hù)一個(gè)用于恢復(fù)的日志,代替DTM把,用于分布式事務(wù)執(zhí)行和恢復(fù)的信息記入日志。,(3)參與適當(dāng)?shù)牟l(fā)控制模式,以協(xié)調(diào)在該站,點(diǎn)上執(zhí)行的事務(wù)的并發(fā)執(zhí)行。接收并聽從本站點(diǎn)上,DTM代理發(fā)來的LOG原語,記入日志并執(zhí)行之。,LOG原語包括:local begin_transaction,local commit,local abort,分布式事務(wù)管理器DT
13、M的功能包括:,(1)保證分布式事務(wù)的ACID特性,尤其是執(zhí)行分布,式事務(wù)的原子性,使每個(gè)站點(diǎn)的子事務(wù)都成功執(zhí)行,或都,不執(zhí)行。這是通過向各個(gè)站點(diǎn)發(fā),begin_transaction,commit或abort,create原語來實(shí)現(xiàn)的。,(2)負(fù)責(zé)協(xié)調(diào)由該站點(diǎn)發(fā)出的所有分布式事務(wù)的執(zhí),行。包括:?jiǎn)?dòng)分布式事務(wù)的執(zhí)行;將分布式事務(wù)分解為,一些子事務(wù),并將這些子事務(wù)分派到恰當(dāng)?shù)恼军c(diǎn)上去執(zhí),行;決定分布式事務(wù)的終止,即決定在該分布式事務(wù)中所,包含的所有站點(diǎn)上的子事務(wù)都撤銷或都提交。,(3)支持分布式事務(wù)的執(zhí)行位置透明性,這也是分,布式事務(wù)管理的最基本要求。分布式事務(wù)管理器根,據(jù)事務(wù)內(nèi)部的邏輯劃分為
14、若干子事務(wù),按某種要求,分布到相應(yīng)站點(diǎn)上執(zhí)行,最后由源發(fā)站點(diǎn)提供事務(wù),的最終結(jié)果。它實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)上各站點(diǎn)的各個(gè)子事,務(wù)的監(jiān)督與管理,完成對(duì)整個(gè)分布式事務(wù)執(zhí)行過程,的調(diào)度和管理,從而保證分布式數(shù)據(jù)庫(kù)系統(tǒng)的高效,率。,分布式事務(wù)執(zhí)行的控制模型,分布式事務(wù)的控制模型是指協(xié)調(diào)分布式事務(wù)中,各成員DBMS執(zhí)行其子事務(wù)的通用方法;,控制分布式事務(wù)執(zhí)行的控制模型有:,1)主從模型,2)三角模型,3)層次控制模型,圖6 分布式執(zhí)行的主從控制模型,圖7 分布式執(zhí)行的三角控制模型,圖8 分布式執(zhí)行的層次控制模型,分布式數(shù)據(jù)庫(kù)系統(tǒng)中的故障,事務(wù)故障恢復(fù)的基本概念,研究數(shù)據(jù)庫(kù)系統(tǒng)中故障的恢復(fù),主要是指如何恢復(fù)因,故障
15、而破壞的數(shù)據(jù)庫(kù),使數(shù)據(jù)庫(kù)恢復(fù)到一個(gè)正確,一致的,狀態(tài)?;謴?fù)的基本原理是數(shù)據(jù)冗余,即利用冗余存儲(chǔ)在別,處的信息和數(shù)據(jù),部分或全部重建數(shù)據(jù)庫(kù)。,1.事務(wù)故障和事務(wù)恢復(fù),當(dāng)發(fā)生事務(wù)故障時(shí),保證事務(wù)原子性的措施稱為事務(wù),故障恢復(fù),簡(jiǎn)稱為事務(wù)恢復(fù)。,事務(wù)恢復(fù)主要時(shí)依靠日志來實(shí)現(xiàn)的。,2.事務(wù)狀態(tài)及狀態(tài)轉(zhuǎn)移,為保證可恢復(fù)性,系統(tǒng)需要保存事務(wù)的起始,終止,,提交或撤銷的時(shí)間軌跡,事務(wù)恢復(fù)管理器還對(duì)下列操作進(jìn),行跟蹤記錄。,1)begin transaction:標(biāo)記事務(wù)開始執(zhí)行。,2)read或write:表示事務(wù)對(duì)某個(gè)數(shù)據(jù)項(xiàng)進(jìn)行讀或?qū)憽?3)End _transaction:表示事務(wù)的讀或?qū)懖僮饕呀?jīng)結(jié)束,
16、并,標(biāo)記事務(wù)執(zhí)行結(jié)束。但是,在這一點(diǎn),需要檢查被該事務(wù),所作的改變是否永久寫入數(shù)據(jù)庫(kù)(已提交),或事務(wù)由于,違反可串行性或其他原因而被撤銷。,4)commit_transaction:表示事務(wù)已經(jīng)成功結(jié)束,因此事務(wù),執(zhí)行的任何改變可以安全提交到數(shù)據(jù)庫(kù)并且不會(huì)被撤銷。,5)rollback(或 abort):表示事務(wù)沒有成功結(jié)束,因此必須撤,銷事務(wù)對(duì)數(shù)據(jù)庫(kù)所作的任何改變或影響。,read/write,Begin end,transaction transaction commit,abort abort,active,Partially,committed,committed,failed,terminated,3.事務(wù)的提交點(diǎn),當(dāng)事務(wù)T所有的站點(diǎn)數(shù)據(jù)庫(kù)存取操作都已成功執(zhí)行,,并且所有操作對(duì)數(shù)據(jù)庫(kù)的影響都已記錄在日志中時(shí),該事,務(wù)T就到達(dá)提交點(diǎn)(committed point).提交點(diǎn)后事務(wù)就成為,已提交的事務(wù),并且假定其結(jié)果已永久記錄在數(shù)據(jù)庫(kù)中,(事務(wù)的永久性)。然后事務(wù)在日志中寫入提交記錄,commit,T.在系統(tǒng)發(fā)生故障時(shí),需要掃描日志,檢查那,些已在日志中寫入start_tran
- 溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題黨課講稿:以高質(zhì)量黨建保障國(guó)有企業(yè)高質(zhì)量發(fā)展
- 廉政黨課講稿材料:堅(jiān)決打好反腐敗斗爭(zhēng)攻堅(jiān)戰(zhàn)持久戰(zhàn)總體戰(zhàn)涵養(yǎng)風(fēng)清氣正的政治生態(tài)
- 在新錄用選調(diào)生公務(wù)員座談會(huì)上和基層單位調(diào)研座談會(huì)上的發(fā)言材料
- 總工會(huì)關(guān)于2025年維護(hù)勞動(dòng)領(lǐng)域政治安全的工作匯報(bào)材料
- 基層黨建工作交流研討會(huì)上的講話發(fā)言材料
- 糧食和物資儲(chǔ)備學(xué)習(xí)教育工作部署會(huì)上的講話發(fā)言材料
- 市工業(yè)園區(qū)、市直機(jī)關(guān)單位、市紀(jì)委監(jiān)委2025年工作計(jì)劃
- 檢察院政治部關(guān)于2025年工作計(jì)劃
- 辦公室主任2025年現(xiàn)實(shí)表現(xiàn)材料
- 2025年~村農(nóng)村保潔員規(guī)范管理工作方案
- 在深入貫徹中央8項(xiàng)規(guī)定精神學(xué)習(xí)教育工作部署會(huì)議上的講話發(fā)言材料4篇
- 開展深入貫徹規(guī)定精神學(xué)習(xí)教育動(dòng)員部署會(huì)上的講話發(fā)言材料3篇
- 在司法黨組中心學(xué)習(xí)組學(xué)習(xí)會(huì)上的發(fā)言材料
- 國(guó)企黨委關(guān)于推動(dòng)基層黨建與生產(chǎn)經(jīng)營(yíng)深度融合工作情況的報(bào)告材料
- 副書記在2025年工作務(wù)虛會(huì)上的發(fā)言材料2篇
相關(guān)資源
更多