![數(shù)據(jù)庫原理及應(yīng)用開發(fā)技術(shù)_事務(wù)管理6_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/19/cc8b32a1-721c-4e4c-8828-507b3d0433db/cc8b32a1-721c-4e4c-8828-507b3d0433db1.gif)
![數(shù)據(jù)庫原理及應(yīng)用開發(fā)技術(shù)_事務(wù)管理6_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/19/cc8b32a1-721c-4e4c-8828-507b3d0433db/cc8b32a1-721c-4e4c-8828-507b3d0433db2.gif)
![數(shù)據(jù)庫原理及應(yīng)用開發(fā)技術(shù)_事務(wù)管理6_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/19/cc8b32a1-721c-4e4c-8828-507b3d0433db/cc8b32a1-721c-4e4c-8828-507b3d0433db3.gif)
![數(shù)據(jù)庫原理及應(yīng)用開發(fā)技術(shù)_事務(wù)管理6_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/19/cc8b32a1-721c-4e4c-8828-507b3d0433db/cc8b32a1-721c-4e4c-8828-507b3d0433db4.gif)
![數(shù)據(jù)庫原理及應(yīng)用開發(fā)技術(shù)_事務(wù)管理6_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/19/cc8b32a1-721c-4e4c-8828-507b3d0433db/cc8b32a1-721c-4e4c-8828-507b3d0433db5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、講義六:事務(wù)管理講義六:事務(wù)管理主要內(nèi)容主要內(nèi)容 事務(wù)的概念事務(wù)的概念 恢復(fù)措施恢復(fù)措施 并發(fā)控制并發(fā)控制 小結(jié)小結(jié)6.1 事務(wù)的概念事務(wù)的概念事務(wù):構(gòu)成單一邏輯工作單元的操作的集合事務(wù):構(gòu)成單一邏輯工作單元的操作的集合事務(wù)是由一系列的對數(shù)據(jù)庫的查詢操作和更新操事務(wù)是由一系列的對數(shù)據(jù)庫的查詢操作和更新操作構(gòu)成,這些操作是一個整體,不能分割。作構(gòu)成,這些操作是一個整體,不能分割。事務(wù)要么所有的操作都順利完成,要么一個操作事務(wù)要么所有的操作都順利完成,要么一個操作也不要做,絕不能只完成了部分操作,而還有一些也不要做,絕不能只完成了部分操作,而還有一些操作沒有完成。操作沒有完成。DBMS中的事務(wù)管理
2、子系統(tǒng)負(fù)責(zé)事務(wù)的處理中的事務(wù)管理子系統(tǒng)負(fù)責(zé)事務(wù)的處理(1)原子性()原子性(Atomicity) 一個事務(wù)中的所有操作,是一個邏輯上不可分一個事務(wù)中的所有操作,是一個邏輯上不可分割的單位。割的單位。(2)一致性()一致性(Consistency) 數(shù)據(jù)庫處于一個一致性狀態(tài)是指數(shù)據(jù)庫中的數(shù)數(shù)據(jù)庫處于一個一致性狀態(tài)是指數(shù)據(jù)庫中的數(shù)據(jù)滿足各種完整性約束。據(jù)滿足各種完整性約束。1 事務(wù)的特性事務(wù)的特性(3)隔離性()隔離性(Isolation) 隔離性的含義是指無論同時有多少事務(wù)在執(zhí)行,隔離性的含義是指無論同時有多少事務(wù)在執(zhí)行,DBMS會保證事務(wù)之間互不干擾,就像只有一個事會保證事務(wù)之間互不干擾,就像
3、只有一個事務(wù)在運(yùn)行一樣。務(wù)在運(yùn)行一樣。(4)持久性()持久性(Durability) DBMS的恢復(fù)子系統(tǒng)采用日志和備份技術(shù)保證的恢復(fù)子系統(tǒng)采用日志和備份技術(shù)保證事務(wù)的持久性。事務(wù)的持久性。事務(wù)的這四個特性一般簡稱為事務(wù)的事務(wù)的這四個特性一般簡稱為事務(wù)的ACID特特性。性。1 事務(wù)的特性事務(wù)的特性(1)啟動事務(wù):啟動事務(wù): BEGIN TRANSACTION(2)提交事務(wù)提交事務(wù) COMMIT TRANSACTION(3)回滾語句回滾語句 ROLLBACK TRANSACTION2 事務(wù)的語句事務(wù)的語句例例 在運(yùn)輸部門的訂票數(shù)據(jù)庫在運(yùn)輸部門的訂票數(shù)據(jù)庫一個完整事務(wù):一個完整事務(wù):-開始事務(wù):開
4、始事務(wù):(1)查詢某趟車次查詢某趟車次TrainNo的剩余車票的剩余車票(2)插入訂票記錄插入訂票記錄ReservedTicket(3)更新剩余票額更新剩余票額Ticket的數(shù)量的數(shù)量-提交事務(wù)提交事務(wù)3 事務(wù)舉例事務(wù)舉例Select TSum = TicketSum -取出剩余車票數(shù)量取出剩余車票數(shù)量From TrainTicketWhere TrainNo = D123;IF TSum = 0 -沒有剩余車票沒有剩余車票ROLLBACK TRANSACTION -回滾事務(wù)回滾事務(wù)ELSEBEGIN TRANSACTIONINSERT INTO ReservedTicket values(“
5、車次車次”,“發(fā)站發(fā)站”,“到站到站”,“座位號座位號”,“票價票價”,”日日期期”,););UPDATE TrainTicket SET TicketSum = TicketSum 1where TicketNo = D123;COMMIT TRANSACTION -提交事務(wù)提交事務(wù) END3 事務(wù)舉例事務(wù)舉例4 4 事務(wù)狀態(tài)事務(wù)狀態(tài) 事務(wù)必須處于下列狀態(tài)之一事務(wù)必須處于下列狀態(tài)之一活動狀態(tài):活動狀態(tài): 初始狀態(tài);事務(wù)執(zhí)行時處于這個狀態(tài)初始狀態(tài);事務(wù)執(zhí)行時處于這個狀態(tài)部分提交狀態(tài):部分提交狀態(tài): 最后一條語句執(zhí)行后最后一條語句執(zhí)行后失敗狀態(tài):失敗狀態(tài): 發(fā)現(xiàn)正常的執(zhí)行不能繼續(xù)之后發(fā)現(xiàn)正常的執(zhí)
6、行不能繼續(xù)之后中止?fàn)顟B(tài):中止?fàn)顟B(tài): 事務(wù)回滾并且數(shù)據(jù)庫已恢復(fù)到事務(wù)開始執(zhí)行前的狀態(tài)之后事務(wù)回滾并且數(shù)據(jù)庫已恢復(fù)到事務(wù)開始執(zhí)行前的狀態(tài)之后提交狀態(tài):提交狀態(tài): 成功完成后成功完成后6.2 6.2 事務(wù)恢復(fù)事務(wù)恢復(fù) DBMS中的數(shù)據(jù)如何流動的:中的數(shù)據(jù)如何流動的:DB系統(tǒng)緩沖區(qū)系統(tǒng)緩沖區(qū)T1工作區(qū)工作區(qū)T2工作區(qū)工作區(qū)內(nèi)存內(nèi)存圖:圖: 數(shù)據(jù)的流動數(shù)據(jù)的流動 標(biāo)號和的流程分別標(biāo)號和的流程分別是讀操作和寫操作的數(shù)是讀操作和寫操作的數(shù)據(jù)流動過程。據(jù)流動過程。 6.2 6.2 事務(wù)恢復(fù)事務(wù)恢復(fù) 恢復(fù)機(jī)制:恢復(fù)機(jī)制:1.數(shù)據(jù)庫系統(tǒng)必不可少的組成部分,負(fù)責(zé)將數(shù)數(shù)據(jù)庫系統(tǒng)必不可少的組成部分,負(fù)責(zé)將數(shù)據(jù)庫恢復(fù)到故
7、障發(fā)生前的某個一致的狀態(tài)。據(jù)庫恢復(fù)到故障發(fā)生前的某個一致的狀態(tài)。2.高可用性:盡快恢復(fù)數(shù)據(jù)庫功能,使崩潰的高可用性:盡快恢復(fù)數(shù)據(jù)庫功能,使崩潰的數(shù)據(jù)庫不能使用的時間減少到最小。數(shù)據(jù)庫不能使用的時間減少到最小。(1)事務(wù)故障)事務(wù)故障 事務(wù)在運(yùn)行過程中,如果出現(xiàn)運(yùn)算溢出,違反事務(wù)在運(yùn)行過程中,如果出現(xiàn)運(yùn)算溢出,違反了某些完整性規(guī)則,某些應(yīng)用程序的錯誤,以及并了某些完整性規(guī)則,某些應(yīng)用程序的錯誤,以及并發(fā)事務(wù)發(fā)生死鎖等,使事務(wù)不能繼續(xù)執(zhí)行下去,這發(fā)事務(wù)發(fā)生死鎖等,使事務(wù)不能繼續(xù)執(zhí)行下去,這種情況稱為事務(wù)故障。種情況稱為事務(wù)故障。非法輸入;溢出或超出資源限制等非法輸入;溢出或超出資源限制等1 1 故
8、障種類故障種類 (2)系統(tǒng)故障)系統(tǒng)故障 系統(tǒng)故障是指系統(tǒng)在運(yùn)行過程中,由于某種原系統(tǒng)故障是指系統(tǒng)在運(yùn)行過程中,由于某種原因,如操作系統(tǒng)或因,如操作系統(tǒng)或DBMS代碼錯誤,操作員操作失代碼錯誤,操作員操作失誤、特定類型的硬件錯誤(如誤、特定類型的硬件錯誤(如CPU故障)、突然停故障)、突然停電等造成系統(tǒng)停止運(yùn)行,丟失了系統(tǒng)緩沖區(qū)中的數(shù)電等造成系統(tǒng)停止運(yùn)行,丟失了系統(tǒng)緩沖區(qū)中的數(shù)據(jù),而存儲在磁盤中的數(shù)據(jù)未受到影響。據(jù),而存儲在磁盤中的數(shù)據(jù)未受到影響。1 1 故障種類故障種類 (3)介質(zhì)故障)介質(zhì)故障 系統(tǒng)在運(yùn)行過程中,由于某種硬件故障,如磁系統(tǒng)在運(yùn)行過程中,由于某種硬件故障,如磁盤壞損,磁頭碰撞
9、、或由于操作系統(tǒng)的某種潛在的盤壞損,磁頭碰撞、或由于操作系統(tǒng)的某種潛在的錯誤、瞬時強(qiáng)磁場干擾,使存儲在外存上的數(shù)據(jù)部錯誤、瞬時強(qiáng)磁場干擾,使存儲在外存上的數(shù)據(jù)部分損失或全部損失,稱為介質(zhì)故障。這類故障比前分損失或全部損失,稱為介質(zhì)故障。這類故障比前兩類故障的可能性小的多,但破壞性最大,所有正兩類故障的可能性小的多,但破壞性最大,所有正在運(yùn)行的事務(wù)被中止,系統(tǒng)緩沖區(qū)中的數(shù)據(jù)無法寫在運(yùn)行的事務(wù)被中止,系統(tǒng)緩沖區(qū)中的數(shù)據(jù)無法寫到磁盤,存儲在磁盤上的數(shù)據(jù)全部丟失!到磁盤,存儲在磁盤上的數(shù)據(jù)全部丟失!1 1 故障種類故障種類 2 2 恢復(fù)措施恢復(fù)措施 (1) 日志文件日志文件 事務(wù)由一系列對數(shù)據(jù)庫的讀寫
10、操作組成,按照事務(wù)由一系列對數(shù)據(jù)庫的讀寫操作組成,按照操作執(zhí)行的先后次序,記錄下事務(wù)所執(zhí)行的所有對操作執(zhí)行的先后次序,記錄下事務(wù)所執(zhí)行的所有對數(shù)據(jù)庫的寫操作(更新操作),就構(gòu)成了事務(wù)的日數(shù)據(jù)庫的寫操作(更新操作),就構(gòu)成了事務(wù)的日志文件。志文件。l日志文件的格式和內(nèi)容日志文件的格式和內(nèi)容日志文件從邏輯上來看是由若干條記錄構(gòu)成的,這些日志文件從邏輯上來看是由若干條記錄構(gòu)成的,這些記錄叫做日志記錄,同一個事務(wù)的日志記錄組織成了一個鏈記錄叫做日志記錄,同一個事務(wù)的日志記錄組織成了一個鏈表。表。l日志文件示意圖日志文件示意圖 T1UTrainTicket(TicketSum)8079(b)(a)Beg
11、inInsertRollbackBeginInsertCommitUpdate2 2 恢復(fù)措施恢復(fù)措施 l日志文件示意圖日志文件示意圖 在圖中,圖在圖中,圖(a)為向一個表中插入一條記錄,為向一個表中插入一條記錄,出錯了,則終止事物執(zhí)行。出錯了,則終止事物執(zhí)行。 圖圖(b)中給出中給出Update記錄的內(nèi)部結(jié)構(gòu),記錄的內(nèi)部結(jié)構(gòu),T1表示表示發(fā)出操作的是事務(wù)發(fā)出操作的是事務(wù)T1,U表示操作類型是修改表示操作類型是修改(Update),Ticket(TicketSum)表示修改的數(shù)據(jù)對表示修改的數(shù)據(jù)對象是象是TrainTicket表的表的TicketSum列,修改前的值是列,修改前的值是80,修改
12、后的值是修改后的值是79。2 2 恢復(fù)措施恢復(fù)措施 l日志文件記錄日志文件記錄日志文件由若干記錄組成,記錄有三種類型,日志文件由若干記錄組成,記錄有三種類型,一是記錄事務(wù)的開始,用一是記錄事務(wù)的開始,用Begin表示,主要記表示,主要記錄事務(wù)的內(nèi)部標(biāo)識和開始時間;錄事務(wù)的內(nèi)部標(biāo)識和開始時間;二是記錄事務(wù)的結(jié)束,圖中用二是記錄事務(wù)的結(jié)束,圖中用Rollback和和Commit表示,主要記錄事務(wù)的內(nèi)部標(biāo)識和結(jié)束時表示,主要記錄事務(wù)的內(nèi)部標(biāo)識和結(jié)束時間;間;三是記錄事務(wù)的更新操作。三是記錄事務(wù)的更新操作。2 2 恢復(fù)措施恢復(fù)措施 l日志文件記錄信息日志文件記錄信息 其中事務(wù)的更新操作用其中事務(wù)的更新
13、操作用Update表示,更新要記表示,更新要記錄以下的信息:錄以下的信息:1.事務(wù)標(biāo)識(標(biāo)明是哪個事務(wù))事務(wù)標(biāo)識(標(biāo)明是哪個事務(wù))2.操作的類型(插入、刪除或修改)操作的類型(插入、刪除或修改)3.操作對象操作對象(記錄內(nèi)部標(biāo)識記錄內(nèi)部標(biāo)識)4.更新前數(shù)據(jù)的舊值(對插入操作而言,此項為更新前數(shù)據(jù)的舊值(對插入操作而言,此項為空值)空值)5.更新后數(shù)據(jù)的新值(對刪除操作而言,更新后數(shù)據(jù)的新值(對刪除操作而言, 此項為此項為空值)空值)2 2 恢復(fù)措施恢復(fù)措施 (2)登記日志文件登記日志文件 日志文件為數(shù)據(jù)庫的數(shù)據(jù)建立了副本(冗余),日志文件為數(shù)據(jù)庫的數(shù)據(jù)建立了副本(冗余),為了保證數(shù)據(jù)庫數(shù)據(jù)的可
14、恢復(fù)性,必須堅持先寫日為了保證數(shù)據(jù)庫數(shù)據(jù)的可恢復(fù)性,必須堅持先寫日志,后寫數(shù)據(jù)的原則。事務(wù)更新了某個數(shù)據(jù)后,把志,后寫數(shù)據(jù)的原則。事務(wù)更新了某個數(shù)據(jù)后,把數(shù)據(jù)由工作區(qū)復(fù)制到系統(tǒng)緩沖區(qū),同時形成了一條數(shù)據(jù)由工作區(qū)復(fù)制到系統(tǒng)緩沖區(qū),同時形成了一條日志記錄,該日志記錄也被存放到系統(tǒng)緩沖區(qū)。日志記錄,該日志記錄也被存放到系統(tǒng)緩沖區(qū)。 DBMS保證,把更新后的數(shù)據(jù)由系統(tǒng)緩沖區(qū)移保證,把更新后的數(shù)據(jù)由系統(tǒng)緩沖區(qū)移動到數(shù)據(jù)庫之前,要首先把相應(yīng)的日志記錄寫到日動到數(shù)據(jù)庫之前,要首先把相應(yīng)的日志記錄寫到日志文件中,這叫做先寫日志規(guī)則。志文件中,這叫做先寫日志規(guī)則。2 2 恢復(fù)措施恢復(fù)措施 (3)登記日志文件步驟
15、登記日志文件步驟第一步,事務(wù)把更新后的數(shù)據(jù)和形成的日志記錄寫第一步,事務(wù)把更新后的數(shù)據(jù)和形成的日志記錄寫到系統(tǒng)緩沖區(qū)。到系統(tǒng)緩沖區(qū)。第二步,將日志記錄寫到磁盤上的日志文件。第二步,將日志記錄寫到磁盤上的日志文件。第三步,把更新后的數(shù)據(jù)寫到數(shù)據(jù)庫。第三步,把更新后的數(shù)據(jù)寫到數(shù)據(jù)庫。DB系統(tǒng)緩沖區(qū)T1工作區(qū)T2工作區(qū)內(nèi)存Log2 2 恢復(fù)措施恢復(fù)措施 (4)數(shù)據(jù)庫備份數(shù)據(jù)庫備份 為了處理介質(zhì)故障,需要由為了處理介質(zhì)故障,需要由DBA定期地將數(shù)據(jù)定期地將數(shù)據(jù)庫和日志文件復(fù)制到磁帶或磁盤上,并將這些備用庫和日志文件復(fù)制到磁帶或磁盤上,并將這些備用的數(shù)據(jù)文本妥善地保存起來,當(dāng)數(shù)據(jù)庫遭到破壞時的數(shù)據(jù)文本妥
16、善地保存起來,當(dāng)數(shù)據(jù)庫遭到破壞時就可以將后備副本重新裝入,恢復(fù)數(shù)據(jù)庫。就可以將后備副本重新裝入,恢復(fù)數(shù)據(jù)庫。 2 2 恢復(fù)措施恢復(fù)措施 (4)數(shù)據(jù)庫備份數(shù)據(jù)庫備份 制做備份的過程稱為轉(zhuǎn)儲。轉(zhuǎn)儲是十分耗費(fèi)時間和資源制做備份的過程稱為轉(zhuǎn)儲。轉(zhuǎn)儲是十分耗費(fèi)時間和資源的,不能頻繁進(jìn)行。的,不能頻繁進(jìn)行。DBA應(yīng)根據(jù)應(yīng)用情況確定適當(dāng)?shù)霓D(zhuǎn)儲應(yīng)根據(jù)應(yīng)用情況確定適當(dāng)?shù)霓D(zhuǎn)儲時間和周期。時間和周期。 轉(zhuǎn)儲可以分為增量轉(zhuǎn)儲和海量轉(zhuǎn)儲。海量轉(zhuǎn)儲是指每次轉(zhuǎn)儲可以分為增量轉(zhuǎn)儲和海量轉(zhuǎn)儲。海量轉(zhuǎn)儲是指每次轉(zhuǎn)儲全部數(shù)據(jù)庫,而增量轉(zhuǎn)儲是指每次轉(zhuǎn)儲上次轉(zhuǎn)儲后修轉(zhuǎn)儲全部數(shù)據(jù)庫,而增量轉(zhuǎn)儲是指每次轉(zhuǎn)儲上次轉(zhuǎn)儲后修改過的數(shù)據(jù)。改過的數(shù)
17、據(jù)。 轉(zhuǎn)儲還可分為靜態(tài)轉(zhuǎn)儲和動態(tài)轉(zhuǎn)儲。靜態(tài)轉(zhuǎn)儲是指系統(tǒng)轉(zhuǎn)儲還可分為靜態(tài)轉(zhuǎn)儲和動態(tài)轉(zhuǎn)儲。靜態(tài)轉(zhuǎn)儲是指系統(tǒng)停止對外服務(wù),不允許用戶運(yùn)行事務(wù),只進(jìn)行轉(zhuǎn)儲操作。停止對外服務(wù),不允許用戶運(yùn)行事務(wù),只進(jìn)行轉(zhuǎn)儲操作。動態(tài)轉(zhuǎn)儲是指轉(zhuǎn)儲期間允許用戶對數(shù)據(jù)庫進(jìn)行存取操作,動態(tài)轉(zhuǎn)儲是指轉(zhuǎn)儲期間允許用戶對數(shù)據(jù)庫進(jìn)行存取操作,即轉(zhuǎn)儲和用戶事務(wù)可以并發(fā)執(zhí)行。即轉(zhuǎn)儲和用戶事務(wù)可以并發(fā)執(zhí)行。 2 2 恢復(fù)措施恢復(fù)措施 (5) 故障恢復(fù)故障恢復(fù)l事務(wù)故障恢復(fù)事務(wù)故障恢復(fù)事務(wù)未運(yùn)行至正常終止點前被事務(wù)未運(yùn)行至正常終止點前被DBMS或用戶撤或用戶撤消,這時恢復(fù)子系統(tǒng)對此事務(wù)做消,這時恢復(fù)子系統(tǒng)對此事務(wù)做UNDO處理。處理。具體做法
18、:具體做法:反向閱讀日志文件,找出該事務(wù)的所有更新反向閱讀日志文件,找出該事務(wù)的所有更新操作,對每一個更新操作做它的逆操作。即若記錄操作,對每一個更新操作做它的逆操作。即若記錄中是插入操作,則做刪除操作。若記錄中是刪除操中是插入操作,則做刪除操作。若記錄中是刪除操作,則做插入操作,若是修改操作,則用修改前的作,則做插入操作,若是修改操作,則用修改前的值代替修改后的值。如此處理直至讀到此事務(wù)的開值代替修改后的值。如此處理直至讀到此事務(wù)的開始標(biāo)簽,事務(wù)故障恢復(fù)完成始標(biāo)簽,事務(wù)故障恢復(fù)完成。2 2 恢復(fù)措施恢復(fù)措施 (5)故障恢復(fù)故障恢復(fù)l系統(tǒng)故障恢復(fù)系統(tǒng)故障恢復(fù)造成數(shù)據(jù)庫不一致狀態(tài)的原因有兩個,一
19、是造成數(shù)據(jù)庫不一致狀態(tài)的原因有兩個,一是由于一些未完成事務(wù)對數(shù)據(jù)庫的更新已寫入數(shù)據(jù)庫,由于一些未完成事務(wù)對數(shù)據(jù)庫的更新已寫入數(shù)據(jù)庫,二是由于一些已提交事務(wù)對數(shù)據(jù)庫的更新還留在緩二是由于一些已提交事務(wù)對數(shù)據(jù)庫的更新還留在緩沖區(qū)沒來得及寫入數(shù)據(jù)庫。沖區(qū)沒來得及寫入數(shù)據(jù)庫。 系統(tǒng)故障恢復(fù)是在系統(tǒng)重新啟動以后進(jìn)行的。系統(tǒng)故障恢復(fù)是在系統(tǒng)重新啟動以后進(jìn)行的。基本的恢復(fù)算法分為二步:基本的恢復(fù)算法分為二步: 1.根據(jù)日志文件建立重作隊列和撤消隊列根據(jù)日志文件建立重作隊列和撤消隊列 2.對對UNDO隊列中的事務(wù)進(jìn)行隊列中的事務(wù)進(jìn)行UNDO處理,對處理,對REDO隊列中事務(wù)的進(jìn)行隊列中事務(wù)的進(jìn)行REDO處理。
20、處理。 2 2 恢復(fù)措施恢復(fù)措施 (5)故障恢復(fù)故障恢復(fù)l介質(zhì)故障恢復(fù)介質(zhì)故障恢復(fù) 在發(fā)生介質(zhì)故障時,磁盤上的物理數(shù)據(jù)庫被破壞,在發(fā)生介質(zhì)故障時,磁盤上的物理數(shù)據(jù)庫被破壞,因此,需要重裝最后一次備份的數(shù)據(jù)庫備份,但重因此,需要重裝最后一次備份的數(shù)據(jù)庫備份,但重裝副本只能將數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲時的狀態(tài)。從那以裝副本只能將數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲時的狀態(tài)。從那以后的所有更新事務(wù)必須重新運(yùn)行才能恢復(fù)到故障時后的所有更新事務(wù)必須重新運(yùn)行才能恢復(fù)到故障時的狀態(tài)。的狀態(tài)。2 2 恢復(fù)措施恢復(fù)措施 (6)恢復(fù)過程示例恢復(fù)過程示例舉例:舉例:系統(tǒng)在系統(tǒng)在t1時刻停止運(yùn)行事務(wù),進(jìn)行數(shù)據(jù)庫轉(zhuǎn)儲,時刻停止運(yùn)行事務(wù),進(jìn)行數(shù)據(jù)庫轉(zhuǎn)
21、儲,在在t2時刻轉(zhuǎn)儲完畢,得到時刻轉(zhuǎn)儲完畢,得到t2時刻的數(shù)據(jù)庫的一致性副本。當(dāng)時刻的數(shù)據(jù)庫的一致性副本。當(dāng)系統(tǒng)運(yùn)行到系統(tǒng)運(yùn)行到tn時刻發(fā)生故障。時刻發(fā)生故障。運(yùn)行事務(wù)運(yùn)行事務(wù)介質(zhì)故障恢復(fù)過程介質(zhì)故障恢復(fù)過程t1t2tn故障點故障點轉(zhuǎn)儲完畢轉(zhuǎn)儲完畢轉(zhuǎn)儲開始轉(zhuǎn)儲開始2 2 恢復(fù)措施恢復(fù)措施 (6)恢復(fù)過程示例恢復(fù)過程示例l 重裝轉(zhuǎn)儲的數(shù)據(jù)庫副本,使數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲時重裝轉(zhuǎn)儲的數(shù)據(jù)庫副本,使數(shù)據(jù)庫恢復(fù)到轉(zhuǎn)儲時的一致狀態(tài)。的一致狀態(tài)。l 裝入轉(zhuǎn)儲后備份的第一個日志文件裝入轉(zhuǎn)儲后備份的第一個日志文件l 讀日志文件,找出已提交的事務(wù),按提交次序的讀日志文件,找出已提交的事務(wù),按提交次序的先后將其記入先后
22、將其記入REDO隊列。隊列。l 重做重做REDO隊列中每個事務(wù)的所有更新操作。隊列中每個事務(wù)的所有更新操作。l 裝入下一個日志文件重復(fù)上一步,直至處理完所裝入下一個日志文件重復(fù)上一步,直至處理完所有的日志文件,這時數(shù)據(jù)庫恢復(fù)至故障前一時刻的有的日志文件,這時數(shù)據(jù)庫恢復(fù)至故障前一時刻的一致狀態(tài)。一致狀態(tài)。2 2 恢復(fù)措施恢復(fù)措施 6.3 6.3 并發(fā)控制并發(fā)控制 DBMS為了有效的利用計算機(jī)的硬件資源和數(shù)為了有效的利用計算機(jī)的硬件資源和數(shù)據(jù)庫中的數(shù)據(jù),據(jù)庫中的數(shù)據(jù),允許多個事務(wù)并發(fā)執(zhí)行允許多個事務(wù)并發(fā)執(zhí)行,但事務(wù)的,但事務(wù)的并發(fā)執(zhí)行可能出現(xiàn)諸如丟失修改、讀臟數(shù)據(jù)、不可并發(fā)執(zhí)行可能出現(xiàn)諸如丟失修改
23、、讀臟數(shù)據(jù)、不可重復(fù)讀問題,使數(shù)據(jù)庫處于不一致性的狀態(tài)。重復(fù)讀問題,使數(shù)據(jù)庫處于不一致性的狀態(tài)。 為了防止并發(fā)執(zhí)行產(chǎn)生的問題,為了防止并發(fā)執(zhí)行產(chǎn)生的問題,DBMS需要具備需要具備并發(fā)控制的功能。并發(fā)控制的功能。并發(fā)控制常用的方法有并發(fā)控制常用的方法有封鎖法封鎖法、時間印法時間印法和和樂觀控制法樂觀控制法,商用的,商用的DBMS一般都采用一般都采用封鎖法。封鎖法。 并發(fā)控制由并發(fā)控制由DBMS中的調(diào)度器、事務(wù)管理器以及中的調(diào)度器、事務(wù)管理器以及存儲子系統(tǒng)協(xié)同完成并發(fā)控制存儲子系統(tǒng)協(xié)同完成并發(fā)控制READ(X),WRITE(X)LOCK(X),READ(X),WRITE(X),UNLOCK(X)R
24、EAD(X),WRITE(X),COMMIT(T),ABORT(T)事務(wù)管理器調(diào)度器 第一部分DB調(diào)度器 第二部分鎖表6.3 6.3 并發(fā)控制并發(fā)控制并發(fā)控制示意圖并發(fā)控制示意圖l作用:作用:實現(xiàn)可串行化調(diào)度實現(xiàn)可串行化調(diào)度采用串行調(diào)度來保證數(shù)據(jù)庫處于一致性狀態(tài)采用串行調(diào)度來保證數(shù)據(jù)庫處于一致性狀態(tài)本節(jié)中對數(shù)據(jù)庫的操作用更底層的讀操作和寫操作本節(jié)中對數(shù)據(jù)庫的操作用更底層的讀操作和寫操作來描述并發(fā)控制。來描述并發(fā)控制。用用R(x)表示對數(shù)據(jù)表示對數(shù)據(jù)x的讀操作的讀操作W(x)表示對數(shù)據(jù)表示對數(shù)據(jù)x的寫操作,的寫操作,一個事務(wù)由若干的讀操作和寫操作組成。一個事務(wù)由若干的讀操作和寫操作組成。SQL中
25、的中的SELECT語句可以用一串讀操作表示,語句可以用一串讀操作表示,INSERT語句可以用一串寫操作表示,語句可以用一串寫操作表示,UPDATE和和DELETE可以用一串讀寫操作表示??梢杂靡淮x寫操作表示。6.3 6.3 并發(fā)控制并發(fā)控制舉例:舉例: 假設(shè)有兩個售票員同時運(yùn)行售票的事務(wù),分別假設(shè)有兩個售票員同時運(yùn)行售票的事務(wù),分別用用T1和和T2表示。事務(wù)用底層操作可以表示為:表示。事務(wù)用底層操作可以表示為:W(A)R(B)W(B)-W(A)表示向表示向ReservedTicket表插入一個元組;表插入一個元組;-R(B)和和W(B)表示讀、寫表示讀、寫Ticket表的表的TicketSu
26、m列,因為一個列,因為一個UPDATE語句首先要讀出語句首先要讀出TicketSum上上的值,然后才能做加的值,然后才能做加1運(yùn)算,所以,運(yùn)算,所以,UPDATE語句要語句要使用兩個底層操作。使用兩個底層操作。1 1 并發(fā)產(chǎn)生的問題并發(fā)產(chǎn)生的問題并發(fā)執(zhí)行一:并發(fā)執(zhí)行一: 在在t1、t2和和t3時刻售票時刻售票1的事務(wù)的三個操作被送到的事務(wù)的三個操作被送到DBMS的存取層,并立刻的存取層,并立刻獲得執(zhí)行,在獲得執(zhí)行,在t4、t5和和t6時時刻執(zhí)行售票刻執(zhí)行售票2的三個操作,的三個操作,執(zhí)行的結(jié)果和我們預(yù)期的執(zhí)行的結(jié)果和我們預(yù)期的結(jié)果完全相同,如右圖所結(jié)果完全相同,如右圖所示。兩個事務(wù)的執(zhí)行是實示
27、。兩個事務(wù)的執(zhí)行是實際上是串行執(zhí)行,先執(zhí)行際上是串行執(zhí)行,先執(zhí)行完完T1,再執(zhí)行,再執(zhí)行T2。開始時Limit = 80 時時刻刻 T1 T2 t1 W(A) t2R(ticketsum=80)t3W(ticketsum=ticketsum -1)t4 W(A)t5R(ticketsum=79)t6W(ticketsum=ticketsum -2) 結(jié)束時Limit=77 1 1 并發(fā)產(chǎn)生的問題并發(fā)產(chǎn)生的問題并發(fā)執(zhí)行二:并發(fā)執(zhí)行二: 如右圖所示,如右圖所示,T1和和T2的操作穿插執(zhí)行,結(jié)的操作穿插執(zhí)行,結(jié)果是果是T1的修改操作沒有的修改操作沒有起到應(yīng)有的作用,這種起到應(yīng)有的作用,這種現(xiàn)象稱為現(xiàn)
28、象稱為“丟失修改丟失修改”。1 1 并發(fā)產(chǎn)生的問題并發(fā)產(chǎn)生的問題開始時Limit = 80 時時刻刻 T1 T2 t1 W(A) t2R(ticketsum=80)W(A)t3R(ticketsum=80)t4W(ticketsum=ticketsum -1) t5W(ticketsum=ticketsum -2) t6結(jié)束時Limit=78 并發(fā)執(zhí)行三:并發(fā)執(zhí)行三: 售票售票1執(zhí)行事務(wù)執(zhí)行事務(wù)T1,但是在確認(rèn)是否真正買票但是在確認(rèn)是否真正買票時,他放棄了買票,事務(wù)時,他放棄了買票,事務(wù)被回滾。具體的執(zhí)行過程被回滾。具體的執(zhí)行過程如右圖所示,如右圖所示,T2的售票操的售票操作也沒有獲得成功,原
29、因作也沒有獲得成功,原因是在是在T1沒有結(jié)束時,就讀沒有結(jié)束時,就讀了了ticketsum,這種現(xiàn)象,這種現(xiàn)象叫做叫做“讀臟數(shù)據(jù)讀臟數(shù)據(jù)”。開始時Limit = 1 時刻時刻 T1 T2 t1 W(A) t2R(ticketsum=1)t3W(ticketsum=0)W(A)t4R(ticketsum=0)t5t6t7RollBack 結(jié)束時Limit=0 1 1 并發(fā)產(chǎn)生的問題并發(fā)產(chǎn)生的問題并發(fā)執(zhí)行四并發(fā)執(zhí)行四: T1在執(zhí)行過程中讀了兩在執(zhí)行過程中讀了兩次次ticketsum,但是發(fā)現(xiàn),但是發(fā)現(xiàn)ticketsum的兩次余額不一的兩次余額不一樣,由于不知道發(fā)生了什樣,由于不知道發(fā)生了什么情況而
30、將么情況而將T1撤消了。原撤消了。原因是在兩個讀操作中間執(zhí)因是在兩個讀操作中間執(zhí)行了另外的事務(wù)行了另外的事務(wù)T2,這種,這種現(xiàn)象叫做現(xiàn)象叫做“不可重復(fù)讀不可重復(fù)讀”。開始時Limit = 1時刻時刻 T1 T2 t1 W(A) t2R(ticketsum=1)t3W(A)t4W(ticketsum=0)t5R(ticketsum=0)t6RollBackt7RollBack結(jié)束時Limit=1 1 1 并發(fā)產(chǎn)生的問題并發(fā)產(chǎn)生的問題2 2 鎖鎖l 類型:類型:S鎖和鎖和X鎖鎖 S鎖又被稱為共享鎖鎖又被稱為共享鎖(Share Locks),X鎖又被叫鎖又被叫做排它鎖做排它鎖(eXclusive L
31、ocks)。 共享鎖又稱為讀鎖:若事務(wù)共享鎖又稱為讀鎖:若事務(wù)T對數(shù)據(jù)對象對數(shù)據(jù)對象A加上加上S鎖,則事務(wù)鎖,則事務(wù)T可以讀可以讀A但不能修改但不能修改A,其它事務(wù)只能再其它事務(wù)只能再對對A加加S鎖,而不能加鎖,而不能加X鎖,直到鎖,直到T釋放釋放A上的上的S鎖。鎖。這就保證了其它事務(wù)可以讀這就保證了其它事務(wù)可以讀A,但在,但在T釋放釋放A上的上的S鎖之前不能對鎖之前不能對A做任何修改。做任何修改。(2)排它鎖排它鎖 排它鎖又稱為寫鎖。若事務(wù)排它鎖又稱為寫鎖。若事務(wù)T對數(shù)據(jù)對象對數(shù)據(jù)對象A加上加上X鎖,則只允許鎖,則只允許T讀取和修改讀取和修改A,其它任何事務(wù)都不能,其它任何事務(wù)都不能再對再對
32、A加任何類型的鎖,直到加任何類型的鎖,直到T釋放釋放A上的鎖。這就上的鎖。這就保證了其它事務(wù)在保證了其它事務(wù)在T釋放釋放A上的鎖之前不能讀取和修上的鎖之前不能讀取和修改改A。 T2 T1XS-XNNYSNYY-YYY封鎖類型的相容矩陣封鎖類型的相容矩陣 Y=Yes,相容的請求N=No,不相容的請求2 2 鎖鎖l封鎖級別封鎖級別l對數(shù)據(jù)對象加鎖所采用的規(guī)則。對數(shù)據(jù)對象加鎖所采用的規(guī)則。 一級封鎖協(xié)議一級封鎖協(xié)議:事務(wù):事務(wù)T在修改數(shù)據(jù)在修改數(shù)據(jù)R之前必之前必須先對其加須先對其加X鎖,直到事務(wù)結(jié)束才釋放。事務(wù)鎖,直到事務(wù)結(jié)束才釋放。事務(wù)結(jié)束包括正常結(jié)束結(jié)束包括正常結(jié)束(COMMIT)和非正常結(jié)束和
33、非正常結(jié)束(ROLLBACK)。1. 可防止:丟失修改可防止:丟失修改2. 不能防止:可重復(fù)讀和不讀不能防止:可重復(fù)讀和不讀“臟臟”數(shù)據(jù)。數(shù)據(jù)。2 2 鎖鎖l封鎖級別封鎖級別: 二級封鎖協(xié)議二級封鎖協(xié)議:實施一級封鎖協(xié)議:實施一級封鎖協(xié)議,并且事務(wù)并且事務(wù)T在讀取數(shù)據(jù)在讀取數(shù)據(jù)R之前必須先對其加之前必須先對其加S鎖,讀完后即可釋鎖,讀完后即可釋放放S鎖。鎖。 二級封鎖協(xié)議除防止了丟失修改,還可進(jìn)一步二級封鎖協(xié)議除防止了丟失修改,還可進(jìn)一步防止讀防止讀“臟臟”數(shù)據(jù),由于讀完數(shù)據(jù)后即可釋放數(shù)據(jù),由于讀完數(shù)據(jù)后即可釋放S鎖,鎖,所以它不能保證可重復(fù)讀。所以它不能保證可重復(fù)讀。2 2 鎖鎖l封鎖級別封
34、鎖級別三級封鎖協(xié)三級封鎖協(xié)議:實施一級封鎖協(xié)議,并且事議:實施一級封鎖協(xié)議,并且事務(wù)務(wù)T在讀取數(shù)據(jù)在讀取數(shù)據(jù)R之前必須先對其加之前必須先對其加S鎖,直到事務(wù)鎖,直到事務(wù)結(jié)束才釋放。結(jié)束才釋放。三級封鎖協(xié)議除防止了丟失修改和不讀三級封鎖協(xié)議除防止了丟失修改和不讀“臟臟”數(shù)據(jù)外,還進(jìn)一步防止了不可重復(fù)讀。數(shù)據(jù)外,還進(jìn)一步防止了不可重復(fù)讀。2 2 鎖鎖l兩階段封鎖協(xié)議:加鎖和解鎖兩階段封鎖協(xié)議:加鎖和解鎖l“兩階段兩階段”是獲得鎖的第一階段和釋放鎖的第是獲得鎖的第一階段和釋放鎖的第二階段二階段l一個事務(wù)中一旦開始釋放鎖,就不能再申請新一個事務(wù)中一旦開始釋放鎖,就不能再申請新鎖了。事務(wù)的加鎖和解鎖嚴(yán)格
35、分為兩個階段,第鎖了。事務(wù)的加鎖和解鎖嚴(yán)格分為兩個階段,第一階段加鎖,第二階段解鎖。一階段加鎖,第二階段解鎖。l可實現(xiàn)并發(fā)的串行化調(diào)度可實現(xiàn)并發(fā)的串行化調(diào)度2 2 鎖鎖l加鎖內(nèi)容包括加鎖內(nèi)容包括:l在事務(wù)在事務(wù)T的的R(A)操作之前,先對操作之前,先對A加加S鎖,如果鎖,如果加鎖成功,則執(zhí)行操作加鎖成功,則執(zhí)行操作R(A),否則,將,否則,將R(A)加加入入A的等待隊列。的等待隊列。l在事務(wù)在事務(wù)T的的W(A)操作之前,先對操作之前,先對A加加X鎖,如果鎖,如果加鎖成功,則執(zhí)行操作加鎖成功,則執(zhí)行操作W(A),否則,將,否則,將W(A)加加入入A的等待隊列。的等待隊列。2 2 鎖鎖l解鎖內(nèi)容包
36、括:解鎖內(nèi)容包括:l在收到事務(wù)的在收到事務(wù)的Abort或或Commit請求后,釋放請求后,釋放T在每個數(shù)據(jù)上所加的鎖,如果在數(shù)據(jù)在每個數(shù)據(jù)上所加的鎖,如果在數(shù)據(jù)A的等待隊的等待隊列中不空,即有其它的事務(wù)等待對列中不空,即有其它的事務(wù)等待對A進(jìn)行操作,進(jìn)行操作,則從隊列中取出第一個操作,完成加鎖,然后執(zhí)則從隊列中取出第一個操作,完成加鎖,然后執(zhí)行該操作。行該操作。l執(zhí)行執(zhí)行Abort和和Commit請求后,不再接收該事務(wù)請求后,不再接收該事務(wù)的讀寫操作的讀寫操作 。2 2 鎖鎖l兩階段封鎖協(xié)議舉例:兩階段封鎖協(xié)議舉例:事務(wù)1的封鎖序列:Slock A . Slock B . Xlock C .
37、Unlock C . Unlock B . Unlock A;事務(wù)2的封鎖序列:Slock A . Unlock A . Slock B . Xlock C . Unlock C . Unlock B;事務(wù)1遵守兩段鎖協(xié)議,而事務(wù)2不遵守兩段協(xié)議。2 2 鎖鎖l封鎖粒度封鎖粒度l封鎖對象的大小稱為封鎖粒度。封鎖對象的大小稱為封鎖粒度。l封鎖對象可以是邏輯單位,這時的粒度可以是封鎖對象可以是邏輯單位,這時的粒度可以是數(shù)據(jù)庫、表、元組、屬性。數(shù)據(jù)庫、表、元組、屬性。l封鎖對象也可以是物理單位,這時的封鎖對象封鎖對象也可以是物理單位,這時的封鎖對象可以是數(shù)據(jù)塊、物理記錄。不同的粒度會影響事可以是數(shù)據(jù)
38、塊、物理記錄。不同的粒度會影響事務(wù)的并發(fā)度。務(wù)的并發(fā)度。2 2 鎖鎖兩個事務(wù)造成的死鎖問題兩個事務(wù)造成的死鎖問題T1ABT22 2 鎖鎖DBMS的并發(fā)控制子系統(tǒng)保證了事務(wù)的隔離的并發(fā)控制子系統(tǒng)保證了事務(wù)的隔離性,盡管同時有很多事務(wù)在使用系統(tǒng),但是它們互性,盡管同時有很多事務(wù)在使用系統(tǒng),但是它們互不干擾,就像單獨(dú)使用系統(tǒng)一樣,不會出現(xiàn)丟失修不干擾,就像單獨(dú)使用系統(tǒng)一樣,不會出現(xiàn)丟失修改,讀臟數(shù)據(jù),不可重復(fù)讀等問題。改,讀臟數(shù)據(jù),不可重復(fù)讀等問題。對于一些只讀事務(wù),有時可以忍受讀臟數(shù)據(jù),對于一些只讀事務(wù),有時可以忍受讀臟數(shù)據(jù),不可重復(fù)讀等問題,為了加快它的執(zhí)行,不需要嚴(yán)不可重復(fù)讀等問題,為了加快它
39、的執(zhí)行,不需要嚴(yán)格的按照兩段鎖協(xié)議運(yùn)行。格的按照兩段鎖協(xié)議運(yùn)行。SQL提供的隔離級別設(shè)提供的隔離級別設(shè)置語句能滿足這個要求。置語句能滿足這個要求。3 3 隔離級別隔離級別隔離級別考慮因素隔離級別考慮因素l是否在讀數(shù)據(jù)的時候使用鎖是否在讀數(shù)據(jù)的時候使用鎖l讀鎖持續(xù)多長時間讀鎖持續(xù)多長時間l在讀數(shù)據(jù)的時候使用何種類型的鎖在讀數(shù)據(jù)的時候使用何種類型的鎖SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE 3 3 隔離級別隔離級別(1)READ UNCOMMI
40、TTED 執(zhí)行事務(wù)的讀操作之前執(zhí)行事務(wù)的讀操作之前不對數(shù)據(jù)對象加不對數(shù)據(jù)對象加S鎖,可能會讀到未完成事務(wù)的操鎖,可能會讀到未完成事務(wù)的操作結(jié)果(臟數(shù)據(jù)),不能重復(fù)讀。作結(jié)果(臟數(shù)據(jù)),不能重復(fù)讀。(2)READ COMMITTED執(zhí)行事務(wù)的讀操作之前對數(shù)執(zhí)行事務(wù)的讀操作之前對數(shù)據(jù)對象加據(jù)對象加S鎖,執(zhí)行完讀操作之后立刻釋放鎖,執(zhí)行完讀操作之后立刻釋放S鎖。不鎖。不會讀到臟數(shù)據(jù),但不能重復(fù)讀。會讀到臟數(shù)據(jù),但不能重復(fù)讀。(3)REPEATABLE READ執(zhí)行事務(wù)的讀操作之前對執(zhí)行事務(wù)的讀操作之前對數(shù)據(jù)對象加數(shù)據(jù)對象加S鎖,持有該鎖直到事務(wù)結(jié)束,可以重鎖,持有該鎖直到事務(wù)結(jié)束,可以重復(fù)讀。復(fù)讀。3 3 隔離級別隔離級別(4) SERIALIZABLEl嚴(yán)格按照兩段封鎖協(xié)議對數(shù)據(jù)加鎖。嚴(yán)格按照兩段封鎖協(xié)議對數(shù)據(jù)加鎖。3 3 隔離級別隔離級別ANSI 99定義了定義了4種事務(wù)隔離級別,種事務(wù)隔離級別,SQL Server 能夠完全支能夠完全支持這些級別:持這些級別: l未提交讀未提交讀 在讀數(shù)據(jù)時不會檢查或使用任何鎖。因此,在這在讀數(shù)據(jù)時不會檢查或使用任何鎖。因此,在這種隔離級別中可能讀取到?jīng)]有提交的數(shù)據(jù)。種隔離級別中可能讀取到?jīng)]有提交的數(shù)據(jù)。l已提交讀已提交讀 只讀取提
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年法律顧問風(fēng)險代理費(fèi)用協(xié)議書模板
- 2025年辦公室區(qū)域裝修合同模板
- 2025年稻草訂購合同樣本
- 2025年車輛租賃合同補(bǔ)充協(xié)議
- 2025版自愿放棄共有資產(chǎn)的離婚協(xié)議書范本
- 2025年度員工培訓(xùn)策劃費(fèi)用協(xié)作協(xié)議
- 2025年餐飲代理合作合同
- 2025年勞動合同續(xù)簽協(xié)議文本
- 2025年產(chǎn)品銷售合同標(biāo)準(zhǔn)化文本
- 2025年企業(yè)結(jié)構(gòu)調(diào)整策劃發(fā)起人協(xié)議樣本
- 公共服務(wù)均等化研究-第2篇-深度研究
- 西安經(jīng)濟(jì)技術(shù)開發(fā)區(qū)管委會招聘筆試真題2024
- 2025屆浙江省高三歷史選考總復(fù)習(xí)模擬測試(八)歷史試題(含答案)
- 二零二五年度港口碼頭安全承包服務(wù)協(xié)議4篇
- 廣州2025年第一次廣東廣州市白云區(qū)政務(wù)服務(wù)和數(shù)據(jù)管理局政府雇員招聘筆試歷年參考題庫附帶答案詳解
- 2025年四川中煙工業(yè)有限責(zé)任公司招聘筆試參考題庫含答案解析
- 【市質(zhì)檢】泉州市2025屆高中畢業(yè)班質(zhì)量監(jiān)測(二) 生物試卷(含答案解析)
- 六年級2025寒假特色作業(yè)
- DCS-應(yīng)急預(yù)案演練方案
- 2025年江蘇轄區(qū)農(nóng)村商業(yè)銀行招聘筆試參考題庫含答案解析
- 2025年中華財險湖南分公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論