資源描述:
《《數(shù)據(jù)庫(kù)恢復(fù)技術(shù)》PPT課件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、事務(wù)的基本概念數(shù)據(jù)庫(kù)恢復(fù)概述故障的種類(lèi)恢復(fù)的實(shí)現(xiàn)技術(shù)恢復(fù)策略具有檢查點(diǎn)的恢復(fù)技術(shù)數(shù)據(jù)庫(kù)鏡像第十章數(shù)據(jù)庫(kù)恢復(fù)技術(shù)數(shù)據(jù)庫(kù)被破壞的原因可歸納為:⒈軟硬件故障,造成數(shù)據(jù)被破壞;⒉數(shù)據(jù)庫(kù)的并發(fā)操作引起數(shù)據(jù)的不一致性;⒊自然或人為地破壞;⒋對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的更新操作有誤.針對(duì)這四類(lèi)問(wèn)題,一般DBMS提供了相應(yīng)的功能:⒈數(shù)據(jù)庫(kù)恢復(fù)⒉并發(fā)控制⒊安全性保護(hù)⒋完整性保護(hù)從系統(tǒng)的角度看,數(shù)據(jù)庫(kù)保護(hù)主要指安全性控制和完整性約束等問(wèn)題。一、什么是事務(wù)事務(wù)(Transaction)是用戶(hù)定義的一個(gè)數(shù)據(jù)庫(kù)操作序列,這些操作要么全做,要么全不做,是一個(gè)不可分割的工作單位10.1事務(wù)的基本概念例如:在關(guān)系數(shù)據(jù)庫(kù)中,一個(gè)
2、事務(wù)可以是一個(gè)SQL語(yǔ)句、一組SQL語(yǔ)句或者整個(gè)程序。事務(wù)和程序是兩個(gè)概念:1)在關(guān)系數(shù)據(jù)庫(kù)中,一個(gè)事務(wù)可以是一條SQL語(yǔ)句,一組SQL語(yǔ)句或整個(gè)程序2)一個(gè)應(yīng)用程序通常包含多個(gè)事務(wù)事務(wù)是數(shù)據(jù)庫(kù)恢復(fù)和并發(fā)控制的基本單位隱式方式:當(dāng)用戶(hù)沒(méi)有顯式地定義事務(wù)時(shí),DBMS按缺省規(guī)定自動(dòng)劃分事務(wù)顯式定義方式在SQL語(yǔ)言中,定義事務(wù)的語(yǔ)句有三條:BEGINTRANSACTION--開(kāi)始COMMIT--結(jié)束ROLLBACK--結(jié)束二、如何定義事務(wù)COMMIT:提交,即提交事務(wù)的所有操作(讀+更新)ROLLBACK:回滾,即終止事務(wù)舉例例如:銀行轉(zhuǎn)帳事務(wù),這個(gè)事務(wù)把一筆金額從一個(gè)帳戶(hù)甲轉(zhuǎn)給另一個(gè)帳
3、戶(hù)乙。BEGINTRANSACTION讀帳戶(hù)甲的余額BALANCE;BALANCE=BALANCE-AMOUNT;(AMOUNT為轉(zhuǎn)帳金額)IF(BALANCE<0)THEN{打印′金額不足,不能轉(zhuǎn)帳′;ROLLBACK;(撤消剛才的修改,恢復(fù)事務(wù))}ELSE{讀帳戶(hù)乙的余額BALANCE1;BALANCE1=BALANCE1+AMOUNT;寫(xiě)回BALANCE1;COMMIT;}原子性(Atomicity)一致性(Consistency)隔離性(Isolation)持續(xù)性(Durability)三、事務(wù)的特性(ACID特性)⑴原子性事務(wù)是數(shù)據(jù)庫(kù)的邏輯工作單元,事務(wù)中包括的諸操作
4、要么都做,要么都不做。(2)一致性例:銀行轉(zhuǎn)帳,從帳號(hào)A中取出一萬(wàn)元,存入帳號(hào)B。定義一個(gè)事務(wù),該事務(wù)包括兩個(gè)操作:ABA=A-1B=B+1這兩個(gè)操作要么全做,要么全不做:全做或者全不做,數(shù)據(jù)庫(kù)都處于一致性狀態(tài)。如果只做一個(gè)操作,數(shù)據(jù)庫(kù)就處于不一致性狀態(tài)。(3)隔離性讀A=16A←A-3寫(xiě)回A=13①讀A=16②③A←A-1寫(xiě)回A=15④T2T1隔離性即事務(wù)并發(fā)執(zhí)行的相對(duì)獨(dú)立性,這是事務(wù)并發(fā)控制的目標(biāo)。持續(xù)性也稱(chēng)永久性;一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來(lái)的其他操作或故障不應(yīng)該對(duì)其執(zhí)行結(jié)果有任何影響。(4)持久性事務(wù)ACID特性可能遭到破壞的因素:多個(gè)事
5、務(wù)并行運(yùn)行時(shí),不同事務(wù)的操作交叉執(zhí)行;(并行控制機(jī)制)事務(wù)在運(yùn)行過(guò)程中被強(qiáng)行停止。(恢復(fù)機(jī)制)故障是不可避免的計(jì)算機(jī)硬件故障系統(tǒng)軟件和應(yīng)用軟件的錯(cuò)誤操作員的失誤惡意的破壞故障的影響運(yùn)行事務(wù)非正常中斷破壞數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)故障的對(duì)策DBMS提供恢復(fù)子系統(tǒng)保證故障發(fā)生后,能把數(shù)據(jù)庫(kù)中的數(shù)據(jù)從錯(cuò)誤狀態(tài)恢復(fù)到某種邏輯一致的狀態(tài)保證事務(wù)ACID恢復(fù)技術(shù)是衡量系統(tǒng)優(yōu)劣的重要指標(biāo)10.2數(shù)據(jù)庫(kù)恢復(fù)概述10.3故障的種類(lèi)事務(wù)內(nèi)部的故障系統(tǒng)故障介質(zhì)故障計(jì)算機(jī)病毒什么是事務(wù)故障某個(gè)事務(wù)在運(yùn)行過(guò)程中由于種種原因未運(yùn)行至正常終止點(diǎn)就夭折了事務(wù)故障的常見(jiàn)原因輸入數(shù)據(jù)有誤運(yùn)算溢出違反了某些完整性限制某些應(yīng)
6、用程序出錯(cuò)并行事務(wù)發(fā)生死鎖一、事務(wù)內(nèi)部的故障事務(wù)故障的類(lèi)型預(yù)期故障和非預(yù)期故障預(yù)期的故障例如:銀行轉(zhuǎn)帳事務(wù),這個(gè)事務(wù)把一筆金額從一個(gè)帳戶(hù)甲轉(zhuǎn)給另一個(gè)帳戶(hù)乙。BEGINTRANSACTION讀帳戶(hù)甲的余額BALANCE;BALANCE=BALANCE-AMOUNT;(AMOUNT為轉(zhuǎn)帳金額)IF(BALANCE<0)THEN{打印′金額不足,不能轉(zhuǎn)帳′;ROLLBACK;(撤消剛才的修改,恢復(fù)事務(wù))}ELSE{讀帳戶(hù)乙的余額BALANCE1;BALANCE1=BALANCE1+AMOUNT;寫(xiě)回BALANCE1;COMMIT;}非預(yù)期的故障?輸入數(shù)據(jù)有誤?運(yùn)算溢出?違反了某些完整
7、性限制?某些應(yīng)用程序出錯(cuò)?并行事務(wù)發(fā)生死鎖事務(wù)故障的恢復(fù):撤消事務(wù)(UNDO)強(qiáng)行回滾(ROLLBACK)該事務(wù)清除該事務(wù)對(duì)數(shù)據(jù)庫(kù)的所有修改,使得這個(gè)事務(wù)象根本沒(méi)有啟動(dòng)過(guò)一樣事務(wù)故障的恢復(fù)系統(tǒng)故障:造成系統(tǒng)停止運(yùn)轉(zhuǎn)的任何事件,使得系統(tǒng)要重新啟動(dòng)常見(jiàn)原因:操作系統(tǒng)或DBMS代碼錯(cuò)誤、操作員操作失誤、特定類(lèi)型的硬件錯(cuò)誤、突然停電等系統(tǒng)故障表現(xiàn):整個(gè)系統(tǒng)的正常運(yùn)行突然被破壞所有正在運(yùn)行的事務(wù)都非正常終止內(nèi)存中數(shù)據(jù)庫(kù)緩沖區(qū)的信息全部丟失外部存儲(chǔ)設(shè)備上的數(shù)據(jù)未受影響二、系統(tǒng)故障