



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1. 1.分布式事務(wù)概述分布式事務(wù)概述2.2.分布式事務(wù)的執(zhí)行和恢復(fù)分布式事務(wù)的執(zhí)行和恢復(fù)3.3.兩階段提交協(xié)議兩階段提交協(xié)議4.4.分布式數(shù)據(jù)庫中的數(shù)據(jù)更新分布式數(shù)據(jù)庫中的數(shù)據(jù)更新5.5.分布式事務(wù)增強(qiáng)數(shù)據(jù)庫一致性分布式事務(wù)增強(qiáng)數(shù)據(jù)庫一致性6.6.總結(jié)總結(jié)分布式數(shù)據(jù)庫中的事務(wù)管理和恢復(fù)分布式數(shù)據(jù)庫中的事務(wù)管理和恢復(fù) 第第4章章事務(wù)概念 事務(wù)是訪問或更新各種數(shù)據(jù)項的最小邏輯工作單位。 它是一個操作序列 它可以使數(shù)據(jù)庫從一個一致狀態(tài)到另外一個一致狀態(tài) 事務(wù)必須保證數(shù)據(jù)庫的一致性 事務(wù)執(zhí)行期間數(shù)據(jù)庫可能不一致1.1 分布式事務(wù)定義和特性分布式事務(wù)定義和特性1 1 分布式事務(wù)概述分布式事務(wù)概述 當(dāng)事
2、務(wù)提交(commit)時數(shù)據(jù)庫必須是一致的事務(wù)T開始事務(wù)T結(jié)束事務(wù)T的執(zhí)行數(shù)據(jù)庫一致數(shù)據(jù)庫一致數(shù)據(jù)庫可能臨時不一致1.1 分布式事務(wù)定義和特性分布式事務(wù)定義和特性1 1 分布式事務(wù)概述分布式事務(wù)概述事務(wù)概念分布式事務(wù) 集中式 事務(wù)和操作數(shù)據(jù)在一個站點上 不存在傳輸費用 分布式 操作數(shù)據(jù)分布在不同的站點上 事務(wù)也在多個站點上執(zhí)行 分布式事務(wù)是集中式事務(wù)的擴(kuò)充 站點和通信鏈路故障都可能導(dǎo)致錯誤發(fā)生 分布式事務(wù)的恢復(fù)要比集中式事務(wù)復(fù)雜的多1.1 分布式事務(wù)定義和特性分布式事務(wù)定義和特性1 1 分布式事務(wù)概述分布式事務(wù)概述 事務(wù)分類: 全局事務(wù) 通常由一個主事務(wù)和在不同站點上執(zhí)行的子事務(wù)組成 主事務(wù):
3、負(fù)責(zé)事務(wù)的開始、提交和異常終止 子事務(wù):完成對相應(yīng)站點上的數(shù)據(jù)庫的訪問操作 局部事務(wù) 僅訪問或更新一個站點上的數(shù)據(jù)的事務(wù)1.1 分布式事務(wù)定義和特性分布式事務(wù)定義和特性1 1 分布式事務(wù)概述分布式事務(wù)概述分布式數(shù)據(jù)庫中的事務(wù)分布式數(shù)據(jù)庫中的事務(wù) ACID特性 原子性(原子性(Atomicity) 事務(wù)的操作要么全部執(zhí)行,要么全部不執(zhí)行,保證數(shù)據(jù)庫一致性狀態(tài)。 一致性(一致性(Consistency) 事務(wù)的正確性,串行性,并發(fā)執(zhí)行的多個事務(wù),其操作的結(jié)果應(yīng)與以某種順序串行執(zhí)行這幾個事務(wù)所得的結(jié)果相同。 持久性(持久性(Durability) 當(dāng)事務(wù)提交后,其操作的結(jié)果將永久化,而與提交后發(fā)生的
4、故障無關(guān)。 1.1 分布式事務(wù)定義和特性分布式事務(wù)定義和特性1 1 分布式事務(wù)概述分布式事務(wù)概述分布式事務(wù)特性分布式事務(wù)特性 隔離性( Isolation) 雖然可以有多個事務(wù)同時執(zhí)行,但是單個事務(wù)的執(zhí)行不應(yīng)該感知其他事務(wù)的存在,因此事務(wù)執(zhí)行的中間結(jié)果應(yīng)該對其他并發(fā)事務(wù)隱藏 。 此外,分布式數(shù)據(jù)庫系統(tǒng)中還要考慮數(shù)據(jù)傳送、通信原語和控制報文等。 全局事務(wù)的主事務(wù)和子事務(wù)全部成功提交,才能改變數(shù)據(jù)庫狀態(tài),有一個失敗,其他子事務(wù)操作都要撤銷。1.1 分布式事務(wù)定義和特性分布式事務(wù)定義和特性1 1 分布式事務(wù)概述分布式事務(wù)概述分布式事務(wù)特性分布式事務(wù)特性 從賬號A向賬號B轉(zhuǎn)賬 $50: 1. read
5、(A) 2. A := A 50 3. write(A) 4. read(B) 5. B := B + 50 6. write(B)1.1 分布式事務(wù)定義和特性分布式事務(wù)定義和特性1 1 分布式事務(wù)概述分布式事務(wù)概述分布式事務(wù)特性舉例分布式事務(wù)特性舉例 一致性要求: 事務(wù)執(zhí)行后A 和 B賬號的總金額不變 原子性要求: 如果事物在第3步和第6步之間故障,系統(tǒng)應(yīng)該保證事務(wù)對數(shù)據(jù)庫的修改沒有產(chǎn)生,否則將導(dǎo)致不一致性。1.1 分布式事務(wù)定義和特性分布式事務(wù)定義和特性1 1 分布式事務(wù)概述分布式事務(wù)概述分布式事務(wù)特性舉例分布式事務(wù)特性舉例 持久性要求: 一旦用戶通知說事務(wù)已經(jīng)完成(即$50 轉(zhuǎn)賬成功),
6、那么由該事務(wù)對數(shù)據(jù)庫的修改就必須保證是永久的,即使是發(fā)生故障也如此。1.1 分布式事務(wù)定義和特性分布式事務(wù)定義和特性1 1 分布式事務(wù)概述分布式事務(wù)概述分布式事務(wù)特性舉例分布式事務(wù)特性舉例 獨立性要求 如果在第 3步和第6步之間,允許其他事務(wù)訪問被修改的數(shù)據(jù)庫的中間結(jié)果,那么它將見到一個不一致的數(shù)據(jù)庫 (也就是說, A + B 的和少于它的正確值) 當(dāng)然事務(wù)的串行執(zhí)行將不會出現(xiàn)這種情況,但是數(shù)據(jù)庫中事務(wù)并行執(zhí)行的優(yōu)點就損失了1.1 分布式事務(wù)定義和特性分布式事務(wù)定義和特性1 1 分布式事務(wù)概述分布式事務(wù)概述分布式事務(wù)特性舉例分布式事務(wù)特性舉例Begin Transaction原語:開始一個事務(wù)
7、 T1 T2 : 子事務(wù)或操作序列 : TnCommit原語:事務(wù)成功完成的結(jié)束Rollback或Abort原語:事務(wù)失敗的結(jié)束1.2 分布式事務(wù)結(jié)構(gòu)和事務(wù)狀態(tài)分布式事務(wù)結(jié)構(gòu)和事務(wù)狀態(tài)1 1 分布式事務(wù)概述分布式事務(wù)概述分布式事務(wù)的一般結(jié)構(gòu)分布式事務(wù)的一般結(jié)構(gòu) 活動 從事務(wù)開始執(zhí)行的初始狀態(tài)始, 事務(wù)執(zhí)行中保持該狀態(tài) 部分提交 事務(wù)的最后一個語句執(zhí)行后進(jìn)入該狀態(tài) 失敗 一旦發(fā)現(xiàn)事務(wù)不能正常執(zhí)行時進(jìn)入該狀態(tài)一旦發(fā)現(xiàn)事務(wù)不能正常執(zhí)行時進(jìn)入該狀態(tài) 夭折 當(dāng)事務(wù)被回滾后,數(shù)據(jù)庫恢復(fù)到事務(wù)開始執(zhí)行前當(dāng)事務(wù)被回滾后,數(shù)據(jù)庫恢復(fù)到事務(wù)開始執(zhí)行前的狀態(tài)。的狀態(tài)。 事務(wù)夭折后有兩種選擇 重啟動 僅當(dāng)沒有內(nèi)部邏輯
8、錯誤時 殺死 提交 當(dāng)事務(wù)成功執(zhí)行后1.2 分布式事務(wù)結(jié)構(gòu)和事務(wù)狀態(tài)分布式事務(wù)結(jié)構(gòu)和事務(wù)狀態(tài)1 1 分布式事務(wù)概述分布式事務(wù)概述分布式事務(wù)的狀態(tài)分布式事務(wù)的狀態(tài)1.2 分布式事務(wù)結(jié)構(gòu)和事務(wù)狀態(tài)分布式事務(wù)結(jié)構(gòu)和事務(wù)狀態(tài)1 1 分布式事務(wù)概述分布式事務(wù)概述分布式事務(wù)的狀態(tài)分布式事務(wù)的狀態(tài) 進(jìn)程:系統(tǒng)中可以并行執(zhí)行的一段操作序列,分布式事務(wù)中的子事務(wù)序列是進(jìn)程方式完成的 過程:不可并行執(zhí)行的操作序列 事務(wù)代理(Agent):應(yīng)用在各個Site上執(zhí)行的若干進(jìn)程,稱作應(yīng)用在該Site上的代理。代理可以執(zhí)行應(yīng)用程序員寫的程序,也可以執(zhí)行系統(tǒng)的原語函數(shù),不同代理間通過報文實現(xiàn)通訊 根代理(Root Agen
9、t) 應(yīng)用啟動Site上的代理。根代理所在的Site稱作原發(fā)Site。一般,根代理負(fù)責(zé)發(fā)系統(tǒng)原語,只有根代理可以請求創(chuàng)建新代理。1.2 分布式事務(wù)結(jié)構(gòu)和事務(wù)狀態(tài)分布式事務(wù)結(jié)構(gòu)和事務(wù)狀態(tài)1 1 分布式事務(wù)概述分布式事務(wù)概述進(jìn)程相關(guān)定義進(jìn)程相關(guān)定義 為了協(xié)調(diào)執(zhí)行分布式應(yīng)用的全局操作,分駐于不同站點的諸事務(wù)代理必須進(jìn)行協(xié)調(diào),有如下規(guī)定: 每一應(yīng)用都有一個負(fù)責(zé)啟動整個事務(wù)的總代理(或稱根代理) 只有總代理才能發(fā)出全局有效的事務(wù)開始、提交和撤消原語 只有總代理才能請求建立新的事務(wù)代理 各站點上的子事務(wù)都執(zhí)行成功,總代理才能決定提交該事務(wù),否則總代理將決定撤銷該事務(wù)1.2 分布式事務(wù)結(jié)構(gòu)和事務(wù)狀態(tài)分布式事
10、務(wù)結(jié)構(gòu)和事務(wù)狀態(tài)1 1 分布式事務(wù)概述分布式事務(wù)概述進(jìn)程協(xié)作進(jìn)程協(xié)作轉(zhuǎn)賬應(yīng)用事務(wù)在兩個賬戶之間執(zhí)行“基金匯兌”操作。如果匯兌的金額小于轉(zhuǎn)出帳號現(xiàn)有金額,就撤銷如果大于等于就提交全局關(guān)系 Account (Account-number, Amount)假設(shè)賬戶分布在網(wǎng)絡(luò)的不同站點上。1.2 分布式事務(wù)結(jié)構(gòu)和事務(wù)狀態(tài)分布式事務(wù)結(jié)構(gòu)和事務(wù)狀態(tài)1 1 分布式事務(wù)概述分布式事務(wù)概述全局級轉(zhuǎn)帳事務(wù)FUND_TRANSFER:read (terminal,$AMOUNT,$FROM_ACC,$TO_ACC);begin_transaction;select AMOUNT into $FROM_AMOUNT
11、from ACCOUNT where ACCOUNT_NUMBER=$FROM_ACC;if $FROM_AMOUNT-$AMOUNT0 then abortelse begin update ACCOUNT set AMOUNT = AMOUNT-$AMOUNT where ACCOUNT_NUMBER = $FROM_ACC; update ACCOUNT set AMOUNT = AMOUNT+$AMOUNT where ACCOUNT_NUMBER = $TO_ACC; commitend輸入:匯出金額和轉(zhuǎn)入/轉(zhuǎn)出帳號事務(wù)開始:檢查轉(zhuǎn)出帳號中是否 有足夠的轉(zhuǎn)出資金?更新轉(zhuǎn)出帳號存款余額
12、創(chuàng)建AGENT1向代理1送消息:轉(zhuǎn)入帳號,金額等待來自AGENT1的消息成功?提交事務(wù):成功結(jié)束撤消事務(wù):失敗結(jié)束ROOT_AGENTAGENT接收來自根代理的信息更新轉(zhuǎn)入帳號存款余額發(fā)送執(zhí)行消息給根代理(成功或失敗)是否否轉(zhuǎn)賬應(yīng)用處理流程ROOT_AGENT;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 abor
13、telse begin update ACCOUNT set AMOUNT = AMOUNT-$AMOUNT where ACCOUNT_NUMBER = $FROM_ACC;create AGENT;send to AGENT($AMOUNT,$TO_ACC);commit/*這里省略了等待消息和判別*/endAGENT;receive from ROOT_AGENT($AMOUNT,$TO_ACC);update ACCOUNT set AMOUNT=AMOUNT+$AMOUNT where ACCOUNT=$TO_ACC;send to ROOT_AGENT(SUCCESS/FALL)
14、轉(zhuǎn)賬事務(wù)的兩個代理分布式事務(wù)管理問題分布式事務(wù)管理問題 處理數(shù)據(jù)項的多個副本 分布式事務(wù)處理負(fù)責(zé)保持同一數(shù)據(jù)的多個副本之間的一致性。當(dāng)某個副本所在站點發(fā)生故障時,負(fù)責(zé)生成與該數(shù)據(jù)其他副本一致的拷貝,以便于及時恢復(fù)。 單個站點的故障 一個站點或多個站點故障時,DDBMS繼續(xù)與其他正常運(yùn)行的站點一起繼續(xù)工作 當(dāng)故障站點恢復(fù)時, DDBMS協(xié)同故障站點的DBMS,必須使得該站點與系統(tǒng)連接時,局部數(shù)據(jù)庫與其他站點同步 通信網(wǎng)絡(luò)的故障 必須能夠處理兩個或者多個站點間的通信網(wǎng)絡(luò)故障 分布式提交 如果提交分布式事務(wù)過程中有一個站點發(fā)生故障,提交就會產(chǎn)生問題 兩階段提交協(xié)議用于解決這一問題1.3 分布式事務(wù)管
15、理的問題和目標(biāo)分布式事務(wù)管理的問題和目標(biāo)1 1 分布式事務(wù)概述分布式事務(wù)概述分布式事務(wù)管理目標(biāo)分布式事務(wù)管理目標(biāo) 目的:事務(wù)能有效、可靠、并發(fā)的執(zhí)行 除了策略之外,效率的幾個重要方面 CPU和主存的使用 控制報文 響應(yīng)時間 可用性 目標(biāo) 維護(hù)事務(wù)的ACID性質(zhì) 獲得最小的主存和CPU開銷,降低報文數(shù)目,加快響應(yīng)時間 獲得最大限度的可靠性和可用性1.3 分布式事務(wù)管理的問題和目標(biāo)分布式事務(wù)管理的問題和目標(biāo)1 1 分布式事務(wù)概述分布式事務(wù)概述抽象模型抽象模型LTM: Local Transaction Manager DTM: Distributed Transaction Manager2.1
16、分布式事務(wù)管理的抽象模型分布式事務(wù)管理的抽象模型2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù)本地事務(wù)管理器 LTM1本地事務(wù)管理器 LTM2本地事務(wù)管理器 LTMn分布式事務(wù)管理器 DTM1分布式事務(wù)管理器 DTM2分布式事務(wù)管理器 DTMn站點 n站點 2站點 1事務(wù)管理事務(wù)管理 DTM功能 保證分布式事務(wù)ACID特性, 特別是原子性,使每一站點的子事務(wù)都成功執(zhí)行,或者都不執(zhí)行。 通過向各站點發(fā)begin-transaction,commit或者abort,create原語來實現(xiàn)的 負(fù)責(zé)協(xié)調(diào)由該站點發(fā)出的所有分布式事務(wù)的執(zhí)行 啟動分布式事務(wù)的執(zhí)行 將分布式事務(wù)分解為子事務(wù),并將其分派
17、到恰當(dāng)?shù)恼军c上執(zhí)行 決定分布式事務(wù)的終止(子事務(wù)都提交或者都撤銷) 支持分布式事務(wù)執(zhí)行位置透明性 實現(xiàn)了對網(wǎng)絡(luò)上各站點的各子事務(wù)的監(jiān)督和管理 完成對整個分布式事務(wù)執(zhí)行過程的調(diào)度和管理 保證分布式數(shù)據(jù)庫系統(tǒng)的高效率Log原語: Local Begin-Trans, Local-Commit, Local-Abort2.1 分布式事務(wù)管理的抽象模型分布式事務(wù)管理的抽象模型2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù)事務(wù)管理事務(wù)管理 LTM功能 保證本地事務(wù)的ACID特性 維護(hù)一個用于恢復(fù)的日志,代替DTM把分布事務(wù)的執(zhí)行與恢復(fù)信息記入日志 參與適當(dāng)?shù)牟l(fā)控制模式,以協(xié)調(diào)在該站點上執(zhí)行的事務(wù)
18、的并發(fā)執(zhí)行。接收并遵從本Site上DTM發(fā)來的Log原語,記入Log并執(zhí)行之Log原語: Local Begin-Trans, Local-Commit, Local-Abort2.1 分布式事務(wù)管理的抽象模型分布式事務(wù)管理的抽象模型2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)執(zhí)行的控制模型分布式事務(wù)執(zhí)行的控制模型 是指協(xié)調(diào)分布式事務(wù)中各成員DBMS執(zhí)行其子事務(wù)的通用方法,有三種: 主從模型:主、從控制器,LTM之間無通信 三角模型:LTM之間可以傳遞數(shù)據(jù),避免了主從之間不必要的傳輸 層次控制模型:LTM還可再創(chuàng)建Agent,控制其它LTM執(zhí)行,比前兩種復(fù)雜2.2 分布式事務(wù)
19、執(zhí)行的控制模型分布式事務(wù)執(zhí)行的控制模型2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)管理器局部事務(wù)管理器局部事務(wù)管理器局部事務(wù)管理器數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫命令命令命令回答回答回答主從控制模型分布式事務(wù)管理器局部事務(wù)管理器局部事務(wù)管理器數(shù)據(jù)庫數(shù)據(jù)庫命令命令回答回答臨時數(shù)據(jù)三角控制模型分布式事務(wù)管理器局部事務(wù)管理器數(shù)據(jù)庫命令命令回答回答局部事務(wù)管理器局部事務(wù)管理器局部事務(wù)管理器局部事務(wù)管理器局部事務(wù)管理器命令命令命令命令回答回答回答回答數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫層次控制模型 故障類型 事務(wù)故障 由非預(yù)期的、不正常的程序結(jié)束所造成的故障,即事務(wù)沒有執(zhí)行到Commit或顯示Rollba
20、ck語句的故障,如:計算溢出、完整性破壞、操作員干預(yù)、輸入輸出錯誤、死循環(huán)等) 處理方法:內(nèi)存、磁盤上信息沒有損失,使用Log做Rollback 系統(tǒng)故障 造成系統(tǒng)停止運(yùn)行的任何事件,要求系統(tǒng)重啟動,如CPU出錯、緩沖區(qū)滿、系統(tǒng)崩潰等 處理方法:內(nèi)存、I/O Buffer內(nèi)容皆丟失,DB沒有破壞,恢復(fù)時,搜索Log,確定Rollback的事務(wù)。2.3 分布式數(shù)據(jù)庫系統(tǒng)中的故障分布式數(shù)據(jù)庫系統(tǒng)中的故障2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù) 介質(zhì)故障: 輔助存儲器介質(zhì)遭破壞 處理方法:如數(shù)據(jù)丟失, 日志無損失,從某個Dump狀態(tài)開始執(zhí)行已提交事務(wù);數(shù)據(jù)與日志都丟失 不可能完全恢復(fù)以上
21、三種可以統(tǒng)稱為站點故障. 2.3 分布式數(shù)據(jù)庫系統(tǒng)中的故障分布式數(shù)據(jù)庫系統(tǒng)中的故障2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù)通訊故障 報文故障 報文錯 報文失序 報文丟失 報文延遲 網(wǎng)絡(luò)分割故障(網(wǎng)絡(luò)斷連) 通訊發(fā)生, 即有某個報文Message從Site x 發(fā)往Site y, 正常情況:(a) 在某時間段Dmax 中, x 站點收到y(tǒng)發(fā)回的應(yīng)答信息(Ack)(b) y收到的Message是一個合適的次序(c ) Message本身的信息是正確的 但是當(dāng)某個Dmax之后, x還沒收到y(tǒng)的Ack, 則可能發(fā)生: (a) Message 或 Ack 信息丟失 (b) 網(wǎng)絡(luò)分割, 即網(wǎng)絡(luò)
22、不通2.3 分布式數(shù)據(jù)庫系統(tǒng)中的故障分布式數(shù)據(jù)庫系統(tǒng)中的故障2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù) 問題可以進(jìn)一步分為:a) 是否是所在Site故障, 還是系統(tǒng)響應(yīng)過慢,還是網(wǎng)絡(luò)流量過大b) 若是故障, 是通訊故障, 還是 y 站點故障?c) 如果是報文故障,是報文丟失還是應(yīng)答丟失 對上述故障, 其恢復(fù)程序可以有不同級別:一級: 僅處理Site故障二級: Site故障及Message故障三級: Site故障及Message故障, 還包括網(wǎng)絡(luò)分割2.3 分布式數(shù)據(jù)庫系統(tǒng)中的故障分布式數(shù)據(jù)庫系統(tǒng)中的故障2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù) 事務(wù)恢復(fù) 當(dāng)發(fā)生故障時,保證
23、事務(wù)原子性的措施稱為事務(wù)故障恢復(fù),簡稱事務(wù)恢復(fù) 主要依靠日志來實現(xiàn) 事務(wù)狀態(tài)轉(zhuǎn)移跟蹤(操作) Begin_transaction:標(biāo)記事務(wù)開始執(zhí)行 Read & write:表示事務(wù)對某個數(shù)據(jù)項進(jìn)行讀寫 End_transaction:表示讀寫操作已完成,標(biāo)記事務(wù)執(zhí)行結(jié)束 Commit_transaction:表示事務(wù)已經(jīng)成功結(jié)束,任何改變已不可更改 Rollback (abort):表示事務(wù)沒有成功結(jié)束,撤銷事務(wù)對數(shù)據(jù)庫所作的任何改變2.4 事務(wù)故障恢復(fù)的基本概念事務(wù)故障恢復(fù)的基本概念2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù)2.4 事務(wù)故障恢復(fù)的基本概念事務(wù)故障恢復(fù)的基本
24、概念2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù)ACTVEPARTIALLYCOMMITTEDCOMMITEDFAILEDTERMINATED BEGIN TRANSACTION READ/ WRITE END TRANSACTIONCOMMITABORTABORT 事務(wù)的提交點 當(dāng)事務(wù)T所有的站點數(shù)據(jù)庫存取操作都已成功執(zhí)行; 所有操作對數(shù)據(jù)庫的影響都已記錄在日志中。到達(dá)提交點 提交點后事務(wù)就成為已提交的事務(wù),并假定其結(jié)果已永久記錄在數(shù)據(jù)庫中 事務(wù)在日志中寫入提交記錄commit,T 在系統(tǒng)發(fā)生故障時,需要掃描日志,檢查日志中寫入start_transaction,T,但沒有寫入com
25、mit,T的所有事務(wù)T 恢復(fù)時必須回滾這些事務(wù)以取消他們對數(shù)據(jù)庫的影響 此外,還必須對日志中記錄的已提交子事務(wù)的所有寫操作進(jìn)行恢復(fù)。2.4 事務(wù)故障恢復(fù)的基本概念事務(wù)故障恢復(fù)的基本概念2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù) 事務(wù)的提交點相關(guān)操作(日志) 日志文件保存到磁盤上 一般先將文件的相關(guān)塊,從磁盤拷貝到主存的緩沖區(qū),然后更新,再寫回磁盤 緩沖區(qū)中會經(jīng)常存在一個或多個日志文件塊,寫滿后一次性寫回磁盤 系統(tǒng)崩潰時,主存中的信息會丟失,這些信息無法利用 因此,事務(wù)到達(dá)提交點之前,未寫到磁盤的日志必須寫入,稱為事務(wù)提交前強(qiáng)制寫日志。2.4 事務(wù)故障恢復(fù)的基本概念事務(wù)故障恢復(fù)的基本概
26、念2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù) 日志 Log:記錄所有對DB的操作 事務(wù)標(biāo)識:每個事務(wù)給定一個惟一性的標(biāo)識符 Log記錄項 : start_transaction, T, write_item, T, x, 舊值, 新值 read_item, T, x commit, T abort, T 寫動作:寫Log比寫數(shù)據(jù)優(yōu)先 Log存儲:一般磁盤,還會定期備份到磁帶上2.4 事務(wù)故障恢復(fù)的基本概念事務(wù)故障恢復(fù)的基本概念2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù)Log舉例舉例Log Write Output A = 950 B = 2050 C = 600 BB, B
27、A BC注: BX 表示含有X的存儲塊.2.4 事務(wù)故障恢復(fù)的基本概念事務(wù)故障恢復(fù)的基本概念2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù)數(shù)據(jù)訪問數(shù)據(jù)訪問xYABx1y1 緩沖區(qū)緩沖塊 A 緩沖塊 Binput(A)output(B) read(X)write(Y)磁盤 T1工作區(qū)T2 工作區(qū)主存x22.4 事務(wù)故障恢復(fù)的基本概念事務(wù)故障恢復(fù)的基本概念2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù) 檔案庫檔案庫 一天要產(chǎn)生大量的Log Log劃分為兩部分 一部分是當(dāng)前活動的聯(lián)機(jī)部分,存儲在磁盤上 另一部分是檔案存儲部分,存儲在磁帶上2.4 事務(wù)故障恢復(fù)的基本概念事務(wù)故障恢復(fù)的基本概
28、念2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù)日志緩沖區(qū)數(shù)據(jù)庫緩沖區(qū)(易變數(shù)據(jù)庫)局部恢復(fù)管理器數(shù)據(jù)庫緩沖區(qū)管理器主存fetch/flush讀/寫讀/寫日志檔案庫DB檔案庫穩(wěn)定日志穩(wěn)定DB讀/寫讀/寫2.4 事務(wù)故障恢復(fù)的基本概念事務(wù)故障恢復(fù)的基本概念2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù)數(shù)據(jù)庫、日志和檔案庫的存儲模式數(shù)據(jù)庫、日志和檔案庫的存儲模式 檢查點(Checkpoint) 設(shè)置一個周期性(時間/容量)操作點a) Log Buffer內(nèi)容寫入Log數(shù)據(jù)集b) 寫檢查點Log信息:當(dāng)前活動事務(wù)表, 每個事務(wù)最近一次Log記錄在Log文件中的位置c) DB Buffer
29、內(nèi)容寫入DBd) 將本次檢查點Log項在Log文件中的地址記入“重啟動文件”2.4 事務(wù)故障恢復(fù)的基本概念事務(wù)故障恢復(fù)的基本概念2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù) 事務(wù)本身也會發(fā)生故障,也是主要通過日志來實現(xiàn)恢復(fù) 恢復(fù)原則 孤立和逐步退出事務(wù)的原則 undo 事務(wù)已對DB的修改 ( 不影響其他事務(wù)的可排除性局部故障,如事務(wù)操作的刪除、超時、違反完整性原則、資源、限制和死鎖等) 成功結(jié)束事務(wù)原則 Redo 已成功事務(wù)的操作 夭折事務(wù)原則 撤銷全部事務(wù), 恢復(fù)到初態(tài),兩種做法:利用數(shù)據(jù)備份和Undo 2.5 事務(wù)故障的恢復(fù)事務(wù)故障的恢復(fù)2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)
30、行與恢復(fù) 本地事務(wù)恢復(fù) (與集中式恢復(fù)相同) 從“重啟動文件” 讀出最近Checkpoint的地址, 并定出Checkpoint在Log文件中的位置 創(chuàng)建Redo表(初態(tài)為空), Undo表(即Checkpoint相應(yīng)內(nèi)容中的活動事務(wù)表) 檢查得出Undo事務(wù)(向前檢索,遇到begin transaction的log記錄,其對應(yīng)的事務(wù))與Redo事務(wù)(向前檢索,遇到commit的log記錄,其對應(yīng)事務(wù)) 反向檢索Log, 將Undo表中事務(wù), 直到遇到對應(yīng)的Begin Trans 正向檢索Redo事務(wù)的Log記錄, 并執(zhí)行之, 直到對應(yīng)的Commit記錄2.5 事務(wù)故障的恢復(fù)事務(wù)故障的恢復(fù)2
31、2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù)重啟動文件UNDOREDO活動事務(wù)表故障發(fā)生地址c0c1(1)(3)(5)(2)(4)日志數(shù)據(jù)集利用日志進(jìn)行事務(wù)恢復(fù)的過程2.5 事務(wù)故障的恢復(fù)事務(wù)故障的恢復(fù)2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù)Checkpoints 舉例 T1 可以忽略 (因為有檢查點,更新已經(jīng)被寫入磁盤) T2 和 T3 redo. T4 undoTcTfT1T2T3T4checkpointsystem failure2.5 事務(wù)故障的恢復(fù)事務(wù)故障的恢復(fù)2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)恢復(fù)參考模型RootAgentAgentAge
32、ntDTM-Agent站點1的LTMDTM-AgentDTM-Agent站點2的LTM站點n的LTM全局事務(wù)分布式事務(wù)管理器(DTM)局部事務(wù) 管理器 (LTM)2.5 事務(wù)故障的恢復(fù)事務(wù)故障的恢復(fù)2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù) 分布式事務(wù)模型 底層:本地事務(wù)管理層,LTM之間不需要進(jìn)行聯(lián)系,執(zhí)行上層DTM代理發(fā)來的原語,實現(xiàn)接口1 Local begin, local commit, local abort, local create 中間層:分布式事務(wù)管理層,一組互相交換報文的本地DTM組成,實現(xiàn)接口2 Begin transaction, commit, abort
33、, create 頂層:全局事務(wù)層,由總代理和其他代理組成,只有它與中間層聯(lián)系2.5 事務(wù)故障的恢復(fù)事務(wù)故障的恢復(fù)2 2 分布式事務(wù)的執(zhí)行與恢復(fù)分布式事務(wù)的執(zhí)行與恢復(fù).Begin Transaction.Create Agent1Send to Agent1.Local-begin .Send Create ReqWriteBegin -transactionin Local LogRoot AgentDTM-AgentLTMReceive.Local CreateLocal-begin.WriteBegin -transactionin Local LogLTMDTM-Agent Agent
34、113245678分布式事務(wù)執(zhí)行和恢復(fù)舉例 基本思想 將本地原子性提交行為的效果擴(kuò)展到分布式事務(wù), 保證了分布式事務(wù)提交的原子性, 并在不損壞Log的情況下, 實現(xiàn)快速故障恢復(fù), 提高DDB系統(tǒng)的可靠性. 第一階段:表決階段 第二階段:執(zhí)行階段 兩類代理 協(xié)調(diào)者(Coordinator):提交和撤銷事務(wù)的決定權(quán),一般是總代理 參與者(Participants):負(fù)責(zé)在本地數(shù)據(jù)庫中執(zhí)行寫操作,并且向協(xié)調(diào)者提出提交和撤銷子事務(wù)的意向3.1 基本思想和內(nèi)容基本思想和內(nèi)容3 3 兩階段提交協(xié)議兩階段提交協(xié)議3.1 基本思想和內(nèi)容基本思想和內(nèi)容3 3 兩階段提交協(xié)議兩階段提交協(xié)議協(xié)調(diào)者 參與者日志日志日
35、志日志命令應(yīng)答. . 參與者 參與者2PC中協(xié)調(diào)者和參與者的關(guān)系中協(xié)調(diào)者和參與者的關(guān)系 表決階段 目的是形成一個共同的決定 首先,協(xié)調(diào)者給所有參與者發(fā)送“準(zhǔn)備”消息,進(jìn)入等待狀態(tài) 其次,參與者收到“準(zhǔn)備”消息后,檢查是否能夠提交本地事務(wù) 如能,給協(xié)調(diào)者發(fā)送“建議提交”消息,進(jìn)入就緒狀態(tài) 如不能,給協(xié)調(diào)者發(fā)送“建議撤銷”消息,可以單方面撤銷 第三,協(xié)調(diào)者收到所有參與者的消息后,他就做出是否提交事務(wù)的決定, 只要有一個參與者投了反對票,就決定撤銷整個事務(wù),發(fā)送“全局撤銷”消息給所有參與者,進(jìn)入撤銷狀態(tài) 否則,就決定提交整個事務(wù),發(fā)送“全局提交”消息給所有參與者,進(jìn)入提交狀態(tài) 執(zhí)行階段 實現(xiàn)表決階段
36、的決定,提交或者撤銷3.1 基本思想和內(nèi)容基本思想和內(nèi)容3 3 兩階段提交協(xié)議兩階段提交協(xié)議初始寫begin_commit到日志等待有要求撤消的?寫commit到日志提交寫end_of_transt到日志初始準(zhǔn)備提交?寫ready到日志就緒消息類型?寫abort到日志寫commit到日志提交撤消撤消寫abort到日志寫abort到日志協(xié)調(diào)者參與者nonoabortcommit準(zhǔn)備撤消提交全局撤消全局提交ACKACK兩階段提交協(xié)議的活動 2PC協(xié)議的重要特點 允許參與者單方面撤銷事務(wù) 一旦參與者確定了提交或撤銷協(xié)議,它就不能再更改它的提議 當(dāng)參與者處于就緒狀態(tài)時,根據(jù)協(xié)調(diào)者發(fā)出的消息種類,它可以
37、轉(zhuǎn)換為提交狀態(tài)或者撤銷狀態(tài) 協(xié)調(diào)者根據(jù)全局提交規(guī)則做出全局終止決定 協(xié)調(diào)者和參與者可能進(jìn)入互相等待對方消息的狀態(tài),使用定時器,保證退出消息等待狀態(tài)3.1 基本思想和內(nèi)容基本思想和內(nèi)容3 3 兩階段提交協(xié)議兩階段提交協(xié)議 集中式 通訊只發(fā)生在協(xié)調(diào)者和參與者之間,參與者之間不交換信息 分層式 協(xié)調(diào)者是在樹根的DTM代理者,協(xié)調(diào)者與參與者之間的通訊不用直接廣播的方法進(jìn)行,而是使報文在樹中上下傳播。每個DTM代理是通信樹的一個內(nèi)部節(jié)點,它從下層節(jié)點處收集報文或向它們廣播報文。 線性 參與者之間可以互相通信。系統(tǒng)中的站點間要排序,消息串行傳遞。支持沒有廣播功能的網(wǎng)絡(luò) 分布式 允許所有參與者在第一階段相互
38、通信,從而可以獨立做出事務(wù)終止決定。3.2 通信結(jié)構(gòu)通信結(jié)構(gòu)3 3 兩階段提交協(xié)議兩階段提交協(xié)議23451234511協(xié)調(diào)者參與者協(xié)調(diào)者協(xié)調(diào)者參與者第一階段第二階段準(zhǔn)備建議撤消/提交全局撤消/提交提交/撤消集中式集中式34251511協(xié)調(diào)者參 與 者協(xié)調(diào)者協(xié)調(diào)者參 與 者第一階段第二階段準(zhǔn)備建議撤消/提交全局撤消/提交提交/撤消23422分層式分層式1234n第一階段第二階段準(zhǔn)備建議提交/撤消建議提交/撤消建議提交/撤消全局提交/撤消全局提交/撤消全局提交/撤消全局提交/撤消線性式線性式1n4324321n協(xié)調(diào)者協(xié)調(diào)者協(xié)調(diào)者+參與者第一階段準(zhǔn)備建議撤消/提交全局撤消/提交可獨立做決定分布式分布
39、式1.站點故障a 參與者在將“Ready”記錄入Log之前故障此時協(xié)調(diào)者(C)達(dá)到超時,Abort發(fā)生。站點(P)恢復(fù)時,重啟動程序?qū)?zhí)行Abort,不必從其他站點獲取信息。b 當(dāng)將“Ready”寫入Log后,站點故障此時所有運(yùn)行的站點都將正常結(jié)束事務(wù)(Commit/Abort)。P恢復(fù)時,因為P已Ready,所以不可判定C的最終決定。因此恢復(fù)時,重啟動程序要詢問C或其他站點。c 當(dāng)C將“Prepare”寫入Log,但“G-commit”/”G-abort”還沒有寫入前故障所有回答“Ready”的P等待C恢復(fù)。C重啟動時,將重開提交協(xié)議,重發(fā)“Prepare”,于是P要識別重發(fā)。d C在將“G
40、-commit”/”G-abort”寫入Log后,“Complete”沒有寫入前故障收到命令的P正常執(zhí)行,C重啟動程序必須再次向所有P重發(fā)命令。以前沒有收到命令的P也必須等待C恢復(fù),P要識別兩次命令。e “Complete”寫入Log后故障無任何動作發(fā)生3.2 兩階段提交協(xié)議兩階段提交協(xié)議和故障恢復(fù)和故障恢復(fù)3 3 兩階段提交協(xié)議兩階段提交協(xié)議2. 報文丟失a 從P發(fā)出的“Ready”/“Abort”報文丟失 C達(dá)到超時,整個事務(wù)執(zhí)行“G-abort”。該故障僅能被C識別,此時C認(rèn)為P故障,但P并無故障,不需執(zhí)行重啟動程序。b “Prepare”報文丟失 P等待,C得不到回答,結(jié)果同2.ac
41、“G-commit”/”G-abort”報文丟失 P處于不確定狀態(tài)。回答“Abort”的可以確定其工作,回答“Ready”的不行。此時可以修改加入計時器,超時則申請重發(fā)命令。d “Ack”報文丟失 C超時,可重發(fā)“G-commit”/”G-abort”命令,P無論是否有活動,都重發(fā)“Ack”報文3.2 兩階段提交協(xié)議兩階段提交協(xié)議和故障恢復(fù)和故障恢復(fù)3 3 兩階段提交協(xié)議兩階段提交協(xié)議3.網(wǎng)絡(luò)分割站點假設(shè)分成兩組:協(xié)調(diào)者組和參與者組。一組是協(xié)調(diào)者,一組是參與者。于是從協(xié)調(diào)者看是參與者組故障,結(jié)果同1.a, 1.b。 從參與者組看是協(xié)調(diào)者站點故障,動作如1.c, 1.d。3.2 兩階段提交協(xié)議兩
42、階段提交協(xié)議和故障恢復(fù)和故障恢復(fù)3 3 兩階段提交協(xié)議兩階段提交協(xié)議初始寫begin_commit到日志等待有要求撤消的?寫commit到日志提交寫Complete到日志初始準(zhǔn)備提交?寫ready到日志就緒消息類型?寫abort到日志寫commit到日志提交撤消撤消寫abort到日志寫abort到日志協(xié)調(diào)者參與者nonoabortcommit 2. b 準(zhǔn)備2.a撤消2.a 提交2.c全局撤消全局提交ACKACK1.c1.d1.e1.a1.b2.d 多站點數(shù)據(jù)更新 方法 :站點A上有事務(wù)T對X更新, X在B1,Bn和C1,Cm上有副本, 則也要對這些副本更新 問題 多個站點同時更新不現(xiàn)實(每一
43、個站點某一時刻與站點A連通的概率小于1) 對未連通站點上的副本更新增多時出錯, 更新的順序也不一定是連通順序4.1 多站點數(shù)據(jù)更新多站點數(shù)據(jù)更新4 4 分布式數(shù)據(jù)庫中的數(shù)據(jù)更新分布式數(shù)據(jù)庫中的數(shù)據(jù)更新4.1 多站點數(shù)據(jù)更新多站點數(shù)據(jù)更新4 4 分布式數(shù)據(jù)庫中的數(shù)據(jù)更新分布式數(shù)據(jù)庫中的數(shù)據(jù)更新站點A要更新X站點B1站點B2站點Bn站點C1站點C2站點Cm說明:(1) X在B1,B2,Bn 和C1,C2,Cm上 都有副本;(2)但只有站點 B1,B2,Bn 與站點A連通而站點 C1,C2,Cm 與站 點A暫時未連通。 主文本更新 思想:指定主副本, 修改只對主副本進(jìn)行, 修改輔助副本時, 也按在主
44、副本上執(zhí)行的更新順序執(zhí)行 問題 修改傳播必須在短時間內(nèi)完成, 否則將獲得“過時”數(shù)據(jù) 主副本不可用, 引得其他副本也不可用4.2 主文本更新主文本更新4 4 分布式數(shù)據(jù)庫中的數(shù)據(jù)更新分布式數(shù)據(jù)庫中的數(shù)據(jù)更新4.2 主文本更新主文本更新4 4 分布式數(shù)據(jù)庫中的數(shù)據(jù)更新分布式數(shù)據(jù)庫中的數(shù)據(jù)更新網(wǎng)絡(luò)網(wǎng)絡(luò)站點AX主文本站點B2X輔文本站點B1X輔文本站點B3X輔文本站點B5X輔文本站點B4X輔文本T1T2未未連連通通T1在在T2之前之前 移動主文本法 若初次更新在輔文本上進(jìn)行,然后再把更新引向該數(shù)據(jù)的主站點 如果主站點此時尚未連通,則另選一個輔站點中的輔文本為該數(shù)據(jù)新的主文本進(jìn)行更新 待原主文本站點連
45、通后,系統(tǒng)將自動把它改為輔文本,并按記錄要求執(zhí)行更新 如果初次更新在主文本上進(jìn)行,但主文本站點與網(wǎng)絡(luò)未接通,則此次更新操作失敗,事務(wù)被撤銷,因為無法傳播更新 移動文本法的問題 網(wǎng)絡(luò)分割成很多部分時,更新處理會不一致 網(wǎng)絡(luò)分割成W1,W2,W1中X更新為R, W2中X更新為S,網(wǎng)絡(luò)連通時,使用R還是S來恢復(fù)X呢?4.2 主文本更新主文本更新4 4 分布式數(shù)據(jù)庫中的數(shù)據(jù)更新分布式數(shù)據(jù)庫中的數(shù)據(jù)更新 快照(Snapshot) 與視圖相似, 是導(dǎo)出的關(guān)系 快照的數(shù)據(jù)是實際存放在數(shù)據(jù)庫中的,視圖不是 周期地更新 用于某些需要“凍結(jié)”數(shù)據(jù)的應(yīng)用 4.3 快照方法快照方法4 4 分布式數(shù)據(jù)庫中的數(shù)據(jù)更新分布
46、式數(shù)據(jù)庫中的數(shù)據(jù)更新 例子 Define Snapshot HP-Book as SELECT * FROM Book WHERE Price$100 REFRESH Every day 特點 快照不考慮數(shù)據(jù)的輔助副本, 只關(guān)心主文本和這個主本上定義的多個快照 快照與視圖一樣可以定義為一個或多個主副本的部分或全部 快照可以完成復(fù)雜的查詢, 但又不阻止更新 查詢操作可使用快照,也可使用主文本,對更新操作還是在主文本上進(jìn)行4.3 快照方法快照方法4 4 分布式數(shù)據(jù)庫中的數(shù)據(jù)更新分布式數(shù)據(jù)庫中的數(shù)據(jù)更新 業(yè)務(wù)規(guī)則約束 有效性約束: 域約束,數(shù)據(jù)項的取值范圍 數(shù)據(jù)依賴約束: 實體完整性和引用完整性 例
47、子 取現(xiàn)金時 一個賬戶的存款余額必須大于零 轉(zhuǎn)賬時 一個賬戶的存款余額必須大于零. 事務(wù)結(jié)束時,兩賬戶中存款總和, 必須與事務(wù)開始時兩賬戶存款之和相同 定期利息計算 事務(wù)執(zhí)行后, 所有賬戶存款之和比事務(wù)開始前各賬戶存款總和大于10%(假定利息是總額的10%)5.1 業(yè)務(wù)規(guī)則的一致性業(yè)務(wù)規(guī)則的一致性5 5 分布式事務(wù)增強(qiáng)數(shù)據(jù)庫一致性分布式事務(wù)增強(qiáng)數(shù)據(jù)庫一致性 業(yè)務(wù)規(guī)則要強(qiáng)制執(zhí)行 用戶編寫的事務(wù)中 由DBMS事務(wù)優(yōu)化器產(chǎn)生的事務(wù)中 在產(chǎn)生的分布式執(zhí)行方案中,要編入業(yè)務(wù)規(guī)則的強(qiáng)制條件 或者從數(shù)據(jù)字典中獲取相關(guān)的業(yè)務(wù)規(guī)則,并在生產(chǎn)分布式事務(wù)的時候使用它 多數(shù)商用分布式DBMS的事務(wù)優(yōu)化器,只加入少數(shù)幾類業(yè)務(wù)規(guī)則,為了補(bǔ)救這種不足,需要 程序員必
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基層醫(yī)療衛(wèi)生機(jī)構(gòu)信息化建設(shè)中的醫(yī)療信息化與疾病預(yù)防控制報告
- 月嫂技能培訓(xùn)課件
- 新零售背景下便利店智能化供應(yīng)鏈金融創(chuàng)新報告
- 薄膜干涉題目及答案
- 安全質(zhì)量培訓(xùn)試題及答案
- 咖啡連鎖品牌擴(kuò)張戰(zhàn)略布局報告:2025年市場拓展與品牌戰(zhàn)略優(yōu)化方案創(chuàng)新
- 安全護(hù)理的試題及答案
- 單位音樂培訓(xùn)課件模板
- 安檢排爆培訓(xùn)課件
- cpa培訓(xùn)課件下載
- 過敏性休克的急救及處理流程教材課件(28張)
- 物理發(fā)泡絕緣的生產(chǎn)與應(yīng)用課件
- 北交所評測20題及答案
- 《消防安全技術(shù)實務(wù)》課本完整版
- CLSI EP25-A 穩(wěn)定性考察研究
- SJG 44-2018 深圳市公共建筑節(jié)能設(shè)計規(guī)范-高清現(xiàn)行
- 職工子女暑期工會愛心托管班的方案通知
- (5年高職)客戶服務(wù)實務(wù)(第二版)教學(xué)課件全套電子教案匯總整本書課件最全教學(xué)教程完整版教案(最新)
- 精品中文版b4a新手指南第4章開發(fā)環(huán)境
- 兒科患兒及家屬的溝通技巧
- 童聲合唱訓(xùn)練講座
評論
0/150
提交評論