版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、CHA7 數(shù)據(jù)庫恢復(fù)技術(shù)本章內(nèi)容 事務(wù) 恢復(fù)的方法數(shù)據(jù)庫的保護(hù) 數(shù)據(jù)庫的恢復(fù) 完整性控制 并發(fā)控制 安全性控制事務(wù)transactionBegin transaction開始操作序列(全做或全不做全做或全不做)Rollback 回滾(撤銷已做的修改)Commit提交(實現(xiàn)已做的修改)事務(wù)不許嵌套事務(wù)的性質(zhì)ACID性質(zhì)性質(zhì)含義含義控制機(jī)制控制機(jī)制原子性原子性atomicity操作序列不可分割DBMS-事務(wù)管理子系統(tǒng)一致性一致性consistency數(shù)據(jù)內(nèi)容正確程序員完整性約束隔離性隔離性isolation并發(fā)執(zhí)行與單獨執(zhí)行結(jié)果相同DBMS-并發(fā)控制子系統(tǒng)持久性持久性durability事務(wù)提交后
2、對數(shù)據(jù)的更新永久保存DBMS-恢復(fù)管理子系統(tǒng)轉(zhuǎn)帳事務(wù)轉(zhuǎn)帳事務(wù)ABRead(A);A:=A-100;Write(A);Read(X)Write(X)內(nèi)存內(nèi)存(緩沖區(qū)緩沖區(qū))外存外存(數(shù)據(jù)庫數(shù)據(jù)庫)求A+BRead(B);B:=B+100;Write(B);t1t2t3t4時刻時刻ABt1500500t2t2400400500500t3400500t4400600事務(wù)事務(wù)T1事務(wù)事務(wù)T29001000系統(tǒng)常見故障故障類型原因處理事務(wù)故障非預(yù)期的事務(wù)撤銷undo預(yù)期的回滾rollback系統(tǒng)故障(軟故障)硬件故障,軟件錯誤事務(wù)撤銷undo事務(wù)重做redo介質(zhì)故障(硬故障)磁頭碰撞,磁場干擾恢復(fù)備份數(shù)
3、據(jù)病毒恢復(fù)備份數(shù)據(jù)可恢復(fù)性可恢復(fù)性recovery把數(shù)據(jù)庫從錯誤狀態(tài)恢復(fù)到最近的一個正確狀態(tài)把數(shù)據(jù)庫從錯誤狀態(tài)恢復(fù)到最近的一個正確狀態(tài)恢復(fù)方法備份類型備份內(nèi)容數(shù)據(jù)轉(zhuǎn)儲靜態(tài)轉(zhuǎn)儲轉(zhuǎn)儲期間不允許執(zhí)行事務(wù)動態(tài)轉(zhuǎn)儲轉(zhuǎn)儲期間允許執(zhí)行事務(wù)海量轉(zhuǎn)儲每次轉(zhuǎn)儲全部數(shù)據(jù)增量轉(zhuǎn)儲每次轉(zhuǎn)儲上次轉(zhuǎn)儲后的更新數(shù)據(jù)日志文件記錄事務(wù)開始、結(jié)束、操作序列事務(wù)標(biāo)識、操作類型、數(shù)據(jù)舊值、新值、更新日期、時間數(shù)據(jù)庫已破壞時的恢復(fù)轉(zhuǎn)儲運(yùn)行事務(wù)重裝副本Redo事務(wù)運(yùn)行事務(wù)發(fā)生故障發(fā)生故障日志文件日志文件Log file以數(shù)據(jù)塊為單位以記錄為單位日志文件的格式事務(wù)的開始標(biāo)記事務(wù)的結(jié)束標(biāo)記事務(wù)的更新操作事務(wù)標(biāo)識、操作類型、操作對象、數(shù)據(jù)舊值、
4、新值事務(wù)的開始標(biāo)記事務(wù)的結(jié)束標(biāo)記事務(wù)的更新操作事務(wù)標(biāo)識、數(shù)據(jù)塊舊值、新值利用日志文件恢復(fù)T1T2T3靜態(tài)轉(zhuǎn)儲運(yùn)行事務(wù)登記日志文件重裝后備副本利用日志文件恢復(fù)事務(wù)繼續(xù)運(yùn)行登記日志文件正常運(yùn)行介質(zhì)故障恢復(fù)“運(yùn)行記錄優(yōu)先”原則 按執(zhí)行次序記錄日志 先寫日志后寫數(shù)據(jù)庫snocnogrades1c387Update scSet grade=90Where sno=s1 and cno=c3;T1,beginT1,UPDATE,87,90,T1,INSERT日志文件日志文件恢復(fù)策略1事務(wù)故障反向掃描日志文件對更新操作執(zhí)行逆操作遇到該事務(wù)的開始標(biāo)記則停止T1,begin transactionT1,upda
5、te,T2,insert, T1,insert, T3,update, T1,delete, 查找該事務(wù)的更新操作Undo過程:恢復(fù)策略2系統(tǒng)故障正向掃描日志文件對更新操作執(zhí)行逆操作遇到該事務(wù)的開始標(biāo)記則停止T1,begin transactionT1,update,T2,insert, T1,insert, T1,commit已提交事務(wù)標(biāo)識redo隊列未完成事務(wù)標(biāo)識undo隊列處理undo隊列反向掃描日志文件查找該事務(wù)的更新操作重新執(zhí)行遇到該結(jié)束標(biāo)記則停止處理redo隊列正向掃描日志文件查找該事務(wù)的更新操作恢復(fù)策略3介質(zhì)故障正向掃描日志文件T1,begin transactionT1,upd
6、ate,T2,insert, T1,insert, T1,commit已提交事務(wù)標(biāo)識redo隊列重新執(zhí)行遇到該結(jié)束標(biāo)記則停止處理redo隊列正向掃描日志文件查找該事務(wù)的更新操作裝入數(shù)據(jù)庫后備副本Redo操作數(shù)據(jù)庫已損壞數(shù)據(jù)庫已損壞DBA執(zhí)行恢復(fù)執(zhí)行恢復(fù)裝入最近備份的數(shù)據(jù)庫T1,UPDATET2,INSERT轉(zhuǎn)儲轉(zhuǎn)儲備份備份日志文件日志文件REDO需撤銷需撤銷undo操作數(shù)據(jù)庫未損壞數(shù)據(jù)庫未損壞系統(tǒng)自動執(zhí)行恢復(fù)系統(tǒng)自動執(zhí)行恢復(fù)T1,beginT1,UPDATET1,INSERT日志文件日志文件UNDO完整的事務(wù)已完成已完成未完成未完成具有檢查點的恢復(fù)技術(shù)Ci檢查點記錄地址T1d1,T3d3,T1
7、,T3,d1d3重新開始文件日志文件檢查點記錄檢查點記錄:此刻正在執(zhí)行的事務(wù)清單這些事務(wù)最近一個日志記錄的地址檢查點的建立 日志緩沖日志文件 檢查點記錄日志文件 數(shù)據(jù)緩沖數(shù)據(jù)庫 檢查點記錄地址重新開始文件檢查點檢查點系統(tǒng)故障系統(tǒng)故障無需redoredoredo撤銷撤銷檢查點有記錄檢查點無記錄利用檢查點進(jìn)行恢復(fù)尋找檢查點記錄建立隊列undo-list和redo-list active-list 加入undo-list從檢查點開始正向掃描日志文件建立事務(wù)清單active-list發(fā)現(xiàn)Ti開始,則Ti undo-list發(fā)現(xiàn)Tj結(jié)束,則Tj redo-list執(zhí)行undo和redo操作數(shù)據(jù)庫鏡像mi
8、rror應(yīng)用1主庫鏡像應(yīng)用2應(yīng)用3update復(fù)制readread應(yīng)用1主庫鏡像應(yīng)用2應(yīng)用3update恢復(fù)readread事務(wù)的提交與回滾Begin transactionCommit將所有操作結(jié)果實際寫入數(shù)據(jù)庫Rollback撤銷對數(shù)據(jù)庫的修改并發(fā)操作引起的問題1丟失更新時間事務(wù)T1A值事務(wù)T21502Read(A)3Read(A)4A:=A-105A:=A*26Write(A)407Write(A)8100正確結(jié)果為80或90并發(fā)操作引起的問題2不一致分析時間事務(wù)T1A值事務(wù)T21502Read(A)3Read(A)4A:=A-105Write(A)640并發(fā)操作引起的問題3臟數(shù)據(jù)時間事
9、務(wù)T1A值事務(wù)T21502Read(A)3A:=A-104Write(A)540Read(A)6rollback750封鎖技術(shù) 排它型封鎖exclusive locksX封鎖 共享型封鎖shared locksS封鎖 兩段封鎖X封鎖和PX協(xié)議事務(wù)T1 對數(shù)據(jù)R申請X封鎖 獲得 修改數(shù)據(jù) 釋放封鎖事務(wù)T2 對數(shù)據(jù)R申請X封鎖 等待 獲得封鎖 修改數(shù)據(jù) 釋放封鎖時間PX協(xié)議:使用X封鎖的規(guī)則利用X規(guī)則解決丟失更新問題時間時間事務(wù)事務(wù)T1T1A A值值事務(wù)事務(wù)T2T21502Lock X(A)3Read(A)4Lock X(A)5A:=A-10wait6Write(A)wait740wait8UnL
10、ock (A)wait9重做重做Lock X(A)10Read(A)11A:=A*212Write(A)1380UnLock (A)并發(fā)事務(wù)的可串行化T1:Read(A)A:=A-10WRITE(A)T1T2串行執(zhí)行并發(fā)執(zhí)行T2:Read(A)A:=A*2WRITE(A)A=50 T1 T2 A=80A=50 T2 T1 A=90事務(wù)串行調(diào)度的結(jié)果都是正確的回滾操作引起的丟失更新時間時間事務(wù)事務(wù)T1T1A A值值事務(wù)事務(wù)T2T21502Lock X(A)3Read(A)4A:=A-105Write(A)6UnLock (A)407Lock X(A)8Read(A)9A:=A*210Write(
11、A)1180UnLock (A)12commit13rollback50PXC協(xié)議X封鎖必須保留到事務(wù)終點封鎖方法引起的問題 活鎖live lock某個事務(wù)永遠(yuǎn)處于等待狀態(tài) 死鎖dead lock多個事務(wù)互相等待先來先服務(wù)判斷死鎖的存在撤銷其中一個死鎖的發(fā)生時間時間事務(wù)事務(wù)T1事務(wù)事務(wù)T21Lock X(A)2Lock X(B)3Read(A)4Read(B)5Lock X(B)6Wait7WaitLock X(A)8WaitWait9WaitWaitT1T2數(shù)據(jù)B數(shù)據(jù)A事務(wù)依賴圖T6T5T8T4T1選取某事務(wù)撤銷:優(yōu)先級剩余執(zhí)行時間占用資源共享型封鎖(S封鎖)事務(wù)T1對數(shù)據(jù)R加S封鎖事務(wù)T2
12、對數(shù)據(jù)對數(shù)據(jù)R加加X封鎖封鎖(拒絕拒絕)事務(wù)T3對數(shù)據(jù)對數(shù)據(jù)R加加S封鎖封鎖(允許允許)T1 T2XSXNNYSNYYYYY相容矩陣已添加的鎖申請加的鎖時間時間事務(wù)事務(wù)T1A B C事務(wù)事務(wù)T2140 50 302Read (A)3Sum:=A4Read(B)5Sum:=sum+B6Lock X(C)7Read (C)8C:=C-109Write(C)1040 50 20Lock X(A)11Read (A)12A:=A+1013Write(A)1450 50 20commit15Read(C)16Sum:=sum+CS鎖的必要性時間時間事務(wù)事務(wù)T1A B C事務(wù)事務(wù)T2140 50 302L
13、ock S(A)3Read (A)4Sum:=A5Lock S(B)6Read(B)7Sum:=sum+BLock X(C)8Read (C)9C:=C-1010Wait(C)1140 50 20Lock X(A)12Wait13Wait14Wait15Lock S(C)Wait16waitWaitS鎖可能引起死鎖時間時間事務(wù)事務(wù)T1事務(wù)事務(wù)T21Lock S(A)2Lock S(A)3Read (A)4Read(A)5A:=A-106A:=A*27Upgrade(A)Lock X(C)8WaitUpgrade(A)9WaitWaitPSC協(xié)議S封鎖要保持到事務(wù)終點S鎖的升級增加死鎖可能兩段封
14、鎖協(xié)議對數(shù)據(jù)讀寫前先獲得封鎖申請封鎖集中進(jìn)行Lock (A)Lock(B)Lock(C)unlock (B)unlock(C)unlock(A)擴(kuò)展階段擴(kuò)展階段收縮階段收縮階段如果所有事務(wù)是兩段式的,它們的并發(fā)調(diào)度可串行化時間時間事務(wù)事務(wù)T9F G H事務(wù)事務(wù)T1010 0 02Lock S(F)3Read (F)4ATEMP:=F5unlock (F)67Lock S(G)8Read (G)9BTEMP:=G10Lock X(F)11F:=BTEMP+112Write(F)13Lock X(H)1 0 0commit14H:=ATEMP+115Write(H)16commit1 0 1兩事務(wù)
15、未遵守兩段式協(xié)議,結(jié)果正確 T9:H:=F+1T10:F:=G+1 正確結(jié)果: 0 111 0 2時間時間事務(wù)事務(wù)T9F G H事務(wù)事務(wù)T1110 0 02Lock S(F)3Read (F)4ATEMP:=F5unlock (F)67Lock S(H)8Read (H)9CTEMP:=H10Lock X(F)11F:=CTEMP+112Write(F)13Lock X(H)1 0 0commit14H:=ATEMP+115Write(H)16commit1 0 1兩事務(wù)未遵守兩段式協(xié)議,結(jié)果錯誤 T9:H:=F+1T11:F:=H+1 正確結(jié)果:2 0 11 0 2數(shù)據(jù)庫的完整性 完整性 正
16、確性和相容性 垃圾進(jìn)垃圾出 garbage in garbage out 對數(shù)據(jù)庫的非法更新 輸入數(shù)據(jù)錯誤 操作、程序錯誤 系統(tǒng)故障 事務(wù)的并發(fā)執(zhí)行 人為破壞完整性子系統(tǒng) 功能 監(jiān)督事務(wù)的執(zhí)行 針對違反現(xiàn)象采取適當(dāng)操作 完整性規(guī)則的構(gòu)成何時使用觸發(fā)條件觸發(fā)條件何種錯誤約束條件約束條件如何處理ELSE子句子句域完整性規(guī)則域聯(lián)系的規(guī)則關(guān)系完整性規(guī)則SQL的完整性約束 主鍵約束主鍵約束 外鍵約束外鍵約束 刪除、修改基本關(guān)系元組時的考慮 屬性值上的約束屬性值上的約束 非空值約束 檢查子句 域約束子句 全局約束全局約束 基于元組的檢查子句 斷言刪除、修改基本關(guān)系元組時的考慮 Restrict方式 參照表
17、中無相關(guān)記錄時允許操作 Cascade方式 參照表中的相關(guān)記錄一同更新 Set null方式 參照表中的相關(guān)記錄字段置空斷言assertionsCreate assertion asse1 check不許男生學(xué)習(xí)張老師的課程不許男生學(xué)習(xí)張老師的課程(not exists沒這種記錄:沒這種記錄:(select *男生學(xué)習(xí)張老師課程的記錄男生學(xué)習(xí)張老師課程的記錄 from sc where cno in (select cno from c where teacher=zhang) And sno in (select sno from s where sex=m) );斷言assertionsCreate assertion asse2 check每組人數(shù)不能超過每組人數(shù)不能超過50(50=all(select count(sc.sno)每門課程的學(xué)習(xí)人數(shù)每門課程的學(xué)習(xí)人數(shù) from s,sc where s.sno=sc.sno and sex=m group by cno );約束的命名 Sno char(4) constraint s_pk primary key; Age smallint constraint s_check check(age
溫馨提示
- 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年度個人旅游資金過橋借款協(xié)議2篇
- 2025年物流企業(yè)產(chǎn)品研發(fā)與技術(shù)支持合同3篇
- 二零二五版門衛(wèi)人員勞動合同及職業(yè)素養(yǎng)提升協(xié)議4篇
- 2025年物業(yè)管理公司風(fēng)險管理與保險采購合同3篇
- 2025年度個人信用卡透支額度調(diào)整協(xié)議3篇
- 2025年金融產(chǎn)品銷售擔(dān)保合同書規(guī)范文本2篇
- 建設(shè)公司合同范本(2篇)
- 2025年度園林苗木繁育與推廣合作協(xié)議4篇
- 2024年重慶高職分類考試《電工基礎(chǔ)》備考試題庫大全-下(判斷、填空題)
- 二零二五版酒店客房家具更換分期支付合同3篇
- 電力電纜故障分析報告
- 中國電信網(wǎng)絡(luò)資源管理系統(tǒng)介紹
- 2024年浙江首考高考選考技術(shù)試卷試題真題(答案詳解)
- 《品牌形象設(shè)計》課件
- 倉庫管理基礎(chǔ)知識培訓(xùn)課件1
- 藥品的收貨與驗收培訓(xùn)課件
- GH-T 1388-2022 脫水大蒜標(biāo)準(zhǔn)規(guī)范
- 高中英語人教版必修第一二冊語境記單詞清單
- 政府機(jī)關(guān)保潔服務(wù)投標(biāo)方案(技術(shù)方案)
- HIV感染者合并慢性腎病的治療指南
- 我的家鄉(xiāng)湖北荊門介紹
評論
0/150
提交評論