版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、CHA7 數據庫恢復技術本章內容 事務 恢復的方法數據庫的保護 數據庫的恢復 完整性控制 并發(fā)控制 安全性控制事務transactionBegin transaction開始操作序列(全做或全不做全做或全不做)Rollback 回滾(撤銷已做的修改)Commit提交(實現已做的修改)事務不許嵌套事務的性質ACID性質性質含義含義控制機制控制機制原子性原子性atomicity操作序列不可分割DBMS-事務管理子系統一致性一致性consistency數據內容正確程序員完整性約束隔離性隔離性isolation并發(fā)執(zhí)行與單獨執(zhí)行結果相同DBMS-并發(fā)控制子系統持久性持久性durability事務提交后
2、對數據的更新永久保存DBMS-恢復管理子系統轉帳事務轉帳事務ABRead(A);A:=A-100;Write(A);Read(X)Write(X)內存內存(緩沖區(qū)緩沖區(qū))外存外存(數據庫數據庫)求A+BRead(B);B:=B+100;Write(B);t1t2t3t4時刻時刻ABt1500500t2t2400400500500t3400500t4400600事務事務T1事務事務T29001000系統常見故障故障類型原因處理事務故障非預期的事務撤銷undo預期的回滾rollback系統故障(軟故障)硬件故障,軟件錯誤事務撤銷undo事務重做redo介質故障(硬故障)磁頭碰撞,磁場干擾恢復備份數
3、據病毒恢復備份數據可恢復性可恢復性recovery把數據庫從錯誤狀態(tài)恢復到最近的一個正確狀態(tài)把數據庫從錯誤狀態(tài)恢復到最近的一個正確狀態(tài)恢復方法備份類型備份內容數據轉儲靜態(tài)轉儲轉儲期間不允許執(zhí)行事務動態(tài)轉儲轉儲期間允許執(zhí)行事務海量轉儲每次轉儲全部數據增量轉儲每次轉儲上次轉儲后的更新數據日志文件記錄事務開始、結束、操作序列事務標識、操作類型、數據舊值、新值、更新日期、時間數據庫已破壞時的恢復轉儲運行事務重裝副本Redo事務運行事務發(fā)生故障發(fā)生故障日志文件日志文件Log file以數據塊為單位以記錄為單位日志文件的格式事務的開始標記事務的結束標記事務的更新操作事務標識、操作類型、操作對象、數據舊值、
4、新值事務的開始標記事務的結束標記事務的更新操作事務標識、數據塊舊值、新值利用日志文件恢復T1T2T3靜態(tài)轉儲運行事務登記日志文件重裝后備副本利用日志文件恢復事務繼續(xù)運行登記日志文件正常運行介質故障恢復“運行記錄優(yōu)先”原則 按執(zhí)行次序記錄日志 先寫日志后寫數據庫snocnogrades1c387Update scSet grade=90Where sno=s1 and cno=c3;T1,beginT1,UPDATE,87,90,T1,INSERT日志文件日志文件恢復策略1事務故障反向掃描日志文件對更新操作執(zhí)行逆操作遇到該事務的開始標記則停止T1,begin transactionT1,upda
5、te,T2,insert, T1,insert, T3,update, T1,delete, 查找該事務的更新操作Undo過程:恢復策略2系統故障正向掃描日志文件對更新操作執(zhí)行逆操作遇到該事務的開始標記則停止T1,begin transactionT1,update,T2,insert, T1,insert, T1,commit已提交事務標識redo隊列未完成事務標識undo隊列處理undo隊列反向掃描日志文件查找該事務的更新操作重新執(zhí)行遇到該結束標記則停止處理redo隊列正向掃描日志文件查找該事務的更新操作恢復策略3介質故障正向掃描日志文件T1,begin transactionT1,upd
6、ate,T2,insert, T1,insert, T1,commit已提交事務標識redo隊列重新執(zhí)行遇到該結束標記則停止處理redo隊列正向掃描日志文件查找該事務的更新操作裝入數據庫后備副本Redo操作數據庫已損壞數據庫已損壞DBA執(zhí)行恢復執(zhí)行恢復裝入最近備份的數據庫T1,UPDATET2,INSERT轉儲轉儲備份備份日志文件日志文件REDO需撤銷需撤銷undo操作數據庫未損壞數據庫未損壞系統自動執(zhí)行恢復系統自動執(zhí)行恢復T1,beginT1,UPDATET1,INSERT日志文件日志文件UNDO完整的事務已完成已完成未完成未完成具有檢查點的恢復技術Ci檢查點記錄地址T1d1,T3d3,T1
7、,T3,d1d3重新開始文件日志文件檢查點記錄檢查點記錄:此刻正在執(zhí)行的事務清單這些事務最近一個日志記錄的地址檢查點的建立 日志緩沖日志文件 檢查點記錄日志文件 數據緩沖數據庫 檢查點記錄地址重新開始文件檢查點檢查點系統故障系統故障無需redoredoredo撤銷撤銷檢查點有記錄檢查點無記錄利用檢查點進行恢復尋找檢查點記錄建立隊列undo-list和redo-list active-list 加入undo-list從檢查點開始正向掃描日志文件建立事務清單active-list發(fā)現Ti開始,則Ti undo-list發(fā)現Tj結束,則Tj redo-list執(zhí)行undo和redo操作數據庫鏡像mi
8、rror應用1主庫鏡像應用2應用3update復制readread應用1主庫鏡像應用2應用3update恢復readread事務的提交與回滾Begin transactionCommit將所有操作結果實際寫入數據庫Rollback撤銷對數據庫的修改并發(fā)操作引起的問題1丟失更新時間事務T1A值事務T21502Read(A)3Read(A)4A:=A-105A:=A*26Write(A)407Write(A)8100正確結果為80或90并發(fā)操作引起的問題2不一致分析時間事務T1A值事務T21502Read(A)3Read(A)4A:=A-105Write(A)640并發(fā)操作引起的問題3臟數據時間事
9、務T1A值事務T21502Read(A)3A:=A-104Write(A)540Read(A)6rollback750封鎖技術 排它型封鎖exclusive locksX封鎖 共享型封鎖shared locksS封鎖 兩段封鎖X封鎖和PX協議事務T1 對數據R申請X封鎖 獲得 修改數據 釋放封鎖事務T2 對數據R申請X封鎖 等待 獲得封鎖 修改數據 釋放封鎖時間PX協議:使用X封鎖的規(guī)則利用X規(guī)則解決丟失更新問題時間時間事務事務T1T1A A值值事務事務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ā)事務的可串行化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事務串行調度的結果都是正確的回滾操作引起的丟失更新時間時間事務事務T1T1A A值值事務事務T2T21502Lock X(A)3Read(A)4A:=A-105Write(A)6UnLock (A)407Lock X(A)8Read(A)9A:=A*210Write(
11、A)1180UnLock (A)12commit13rollback50PXC協議X封鎖必須保留到事務終點封鎖方法引起的問題 活鎖live lock某個事務永遠處于等待狀態(tài) 死鎖dead lock多個事務互相等待先來先服務判斷死鎖的存在撤銷其中一個死鎖的發(fā)生時間時間事務事務T1事務事務T21Lock X(A)2Lock X(B)3Read(A)4Read(B)5Lock X(B)6Wait7WaitLock X(A)8WaitWait9WaitWaitT1T2數據B數據A事務依賴圖T6T5T8T4T1選取某事務撤銷:優(yōu)先級剩余執(zhí)行時間占用資源共享型封鎖(S封鎖)事務T1對數據R加S封鎖事務T2
12、對數據對數據R加加X封鎖封鎖(拒絕拒絕)事務T3對數據對數據R加加S封鎖封鎖(允許允許)T1 T2XSXNNYSNYYYYY相容矩陣已添加的鎖申請加的鎖時間時間事務事務T1A B C事務事務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鎖的必要性時間時間事務事務T1A B C事務事務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鎖可能引起死鎖時間時間事務事務T1事務事務T21Lock S(A)2Lock S(A)3Read (A)4Read(A)5A:=A-106A:=A*27Upgrade(A)Lock X(C)8WaitUpgrade(A)9WaitWaitPSC協議S封鎖要保持到事務終點S鎖的升級增加死鎖可能兩段封
14、鎖協議對數據讀寫前先獲得封鎖申請封鎖集中進行Lock (A)Lock(B)Lock(C)unlock (B)unlock(C)unlock(A)擴展階段擴展階段收縮階段收縮階段如果所有事務是兩段式的,它們的并發(fā)調度可串行化時間時間事務事務T9F G H事務事務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兩事務
15、未遵守兩段式協議,結果正確 T9:H:=F+1T10:F:=G+1 正確結果: 0 111 0 2時間時間事務事務T9F G H事務事務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兩事務未遵守兩段式協議,結果錯誤 T9:H:=F+1T11:F:=H+1 正確結果:2 0 11 0 2數據庫的完整性 完整性 正
16、確性和相容性 垃圾進垃圾出 garbage in garbage out 對數據庫的非法更新 輸入數據錯誤 操作、程序錯誤 系統故障 事務的并發(fā)執(zhí)行 人為破壞完整性子系統 功能 監(jiān)督事務的執(zhí)行 針對違反現象采取適當操作 完整性規(guī)則的構成何時使用觸發(fā)條件觸發(fā)條件何種錯誤約束條件約束條件如何處理ELSE子句子句域完整性規(guī)則域聯系的規(guī)則關系完整性規(guī)則SQL的完整性約束 主鍵約束主鍵約束 外鍵約束外鍵約束 刪除、修改基本關系元組時的考慮 屬性值上的約束屬性值上的約束 非空值約束 檢查子句 域約束子句 全局約束全局約束 基于元組的檢查子句 斷言刪除、修改基本關系元組時的考慮 Restrict方式 參照表
17、中無相關記錄時允許操作 Cascade方式 參照表中的相關記錄一同更新 Set null方式 參照表中的相關記錄字段置空斷言assertionsCreate assertion asse1 check不許男生學習張老師的課程不許男生學習張老師的課程(not exists沒這種記錄:沒這種記錄:(select *男生學習張老師課程的記錄男生學習張老師課程的記錄 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每組人數不能超過每組人數不能超過50(50=all(select count(sc.sno)每門課程的學習人數每門課程的學習人數 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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024新媒體內容版權授權與保護合作協議2篇
- 2024年標準土地共同開發(fā)合同版
- 2023-2024學年高中信息技術選擇性必修1(浙教版2019)數據與數據結構-說課稿-5.4-數據查找
- 2024提高教育資源共享傳播能力采購合同3篇
- 2024數碼相機租賃與體育賽事轉播合同范本3篇
- 高血壓健康宣教
- 專業(yè)車輛租賃協議:2024經典版式版
- 職業(yè)學院學生外出活動安全承諾書
- 2024志愿服務協議書
- 個人最高額抵押融資協議樣本(2024版)版B版
- 醫(yī)療廢物轉運工作制度
- 新編建筑施工扣件式鋼管腳手架安全技術規(guī)范
- 三年級下冊小猿口算題1000道
- 《古蘭》中文譯文版
- 井下機電安裝安全教育培訓試題及答案
- GB/T 4744-2013紡織品防水性能的檢測和評價靜水壓法
- GB/T 24267-2009建筑用阻燃密封膠
- 勞動仲裁追加申請申請書(標準版)
- 決策的藝術課件
- 了不起的狐貍爸爸-全文打印
- 2022年反射療法師(三級)理論考試題庫-下部分(500題)
評論
0/150
提交評論