




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數據保護PPT課件數據保護PPT課件2022/9/212數據庫管理系統對故障的對策DBMS提供恢復子系統保證故障發生后,能把數據庫中的數據從錯誤狀態恢復到某一已知的正確狀態(一致狀態或完整狀態)保證事務ACID恢復技術是衡量系統優劣的重要指標2022/9/214數據庫管理系統對故障的對策2022/9/2136.4.2故障的種類一、事務故障某個事務在運行過程中由于種種原因,未能運行至正常終止點就夭折了。2022/9/2156.4.2故障的種類一、事務故障2022/9/214事務故障分為兩類可預料的可通過事務程序本身發現例:銀行轉帳事務不可預料的事務沒有在預定的結束點結束而引起的故障運算溢出并發事
2、務發生死鎖而被選中撤銷該事務違反了某些完整性限制等2022/9/216事務故障分為兩類2022/9/215BEGIN TRANSACTION 讀賬戶甲的余額BALANCE; BALANCE=BALANCE-AMOUNT;(AMOUNT 為轉賬金額) 寫回BALANCE; IF(BALANCE 0 ) THEN 打印金額不足,不能轉賬; ROLLBACK;(撤銷剛才的修改,恢復事務) ELSE 讀賬戶乙的余額BALANCE1; BALANCE1=BALANCE1+AMOUNT; 寫回BALANCE1; COMMIT; 2022/9/217BEGIN TRANSACTION2022/9/216事務
3、內部更多的故障是不可預料的事務故障僅指這類不可預料的故障2022/9/218事務內部更多的故障是不可預料的2022/9/217發生事務故障時,夭折的事務可能已把對數據庫的部分修改寫回磁盤事務故障的恢復撤消事務(UNDO)強行回滾(ROLLBACK)該事務,清除該事務對數據庫的所有修改,使得這個事務象根本沒有啟動過一樣2022/9/219發生事務故障時,夭折的事務可能已把對數據2022/9/218二、系統故障(軟故障)造成系統停止運轉的任何事件,使得系統要重新啟動。整個系統的正常運行突然被破壞所有正在運行的事務都非正常終止內存中數據庫緩沖區的信息全部丟失外部存儲設備上的數據未受影響2022/9/
4、2110二、系統故障(軟故障)2022/9/219系統故障的常見原因操作系統或DBMS代碼錯誤操作員操作失誤特定類型的硬件錯誤(如CPU故障)突然停電2022/9/2111系統故障的常見原因2022/9/2110系統故障的恢復發生系統故障時,事務未提交系統重新啟動時,恢復程序強行撤消(UNDO)所有未完成事務發生系統故障時,事務已提交,但緩沖區中的信息尚未完全寫回到磁盤上。系統重新啟動時,恢復程序重做(REDO)所有已提交的事務2022/9/2112系統故障的恢復2022/9/2111三、介質故障(硬故障)外存故障硬件故障使存儲在外存中的數據部分丟失或全部丟失。介質故障比前兩類故障的可能性小得
5、多,但破壞性大得多2022/9/2113三、介質故障(硬故障)2022/9/2112介質故障的常見原因硬件故障磁盤損壞磁頭碰撞操作系統的某種潛在錯誤瞬時強磁場干擾2022/9/2114介質故障的常見原因2022/9/2113介質故障的恢復裝入數據庫發生介質故障前某個時刻的數據副本重做自此時始的所有成功事務,將這些事務已提交的結果重新記入數據庫2022/9/2115介質故障的恢復2022/9/2114四、計算機病毒一種人為的故障或破壞,是一些惡作劇者研制的一種計算機程序可以繁殖和傳播危害破壞、盜竊系統中的數據破壞系統文件2022/9/2116四、計算機病毒2022/9/2115各類故障,對數據庫
6、的影響有兩種可能性數據庫本身被破壞數據庫沒有被破壞,但數據可能不正確,這是由于事務的運行被非正常終止造成的。2022/9/2117各類故障,對數據庫的影響有兩種可能性2022/9/21166.4.3恢復的實現技術恢復操作的基本原理冗余利用存儲在系統其它地方的冗余數據來重建數據庫中已被破壞或不正確的那部分數據恢復的實現技術復雜一個大型數據庫產品,恢復子系統的代碼要占全部代碼的10%以上2022/9/21186.4.3恢復的實現技術恢復操作的基2022/9/2117恢復機制涉及的關鍵問題1. 如何建立冗余數據數據轉儲(backup)登錄日志文件(logging)2. 如何利用這些冗余數據實施數據庫
7、恢復2022/9/2119恢復機制涉及的關鍵問題2022/9/21186.4.3.1數據轉儲一、數據轉儲數據轉儲:DBA將整個數據庫復制到磁帶或另一個磁盤上保存起來的過程。這些備用的數據文本稱為后備副本或后援副本。2022/9/21206.4.3.1數據轉儲一、數據轉儲2022/9/2119二、轉儲的作用轉儲是數據庫恢復中采用的基本技術。一旦系統發生介質故障,數據庫遭到破壞,可將后備副本重新裝入,把數據庫恢復起來。重裝后備副本只能將數據庫恢復到轉儲時的狀態,要想恢復到故障發生時的狀態,必須重新運行自轉儲以后的所有更新事務。2022/9/2121二、轉儲的作用2022/9/2120 故障發生點
8、轉儲 運行事務 正常運行 Ta Tb Tf 重裝后備副本 重新運行事務恢復 2022/9/2122 2022/9/2121三、轉儲方法1靜態轉儲與動態轉儲靜態轉儲在系統中無運行事務時進行轉儲轉儲開始時數據庫處于一致性狀態轉儲期間不允許對數據庫的任何存取、修改活動2022/9/2123三、轉儲方法2022/9/2122優點實現簡單缺點降低了數據庫的可用性轉儲必須等用戶事務結束新的事務必須等轉儲結束2022/9/2124優點2022/9/2123利用靜態轉儲副本進行恢復 故障發生點 靜態轉儲 運行事務 正常運行 Ta Tb Tf 重裝后備副本 恢復 2022/9/2125利用靜態轉儲副本進行恢復
9、2022/9/2124利用靜態轉儲副本進行恢復 運行事務 故障發生點 動態轉儲 運行事務 正常運行 Ta Tb Tf重裝后備副本 利用日志文件恢復恢復 2022/9/2126利用靜態轉儲副本進行恢復 2022/9/2125動態轉儲轉儲操作與用戶事務并發進行轉儲期間允許對數據庫進行存取或修改優點不用等待正在運行的用戶事務結束不會影響新事務的運行缺點不能保證副本中的數據正確有效例:在轉儲期間的某個時刻Tc,系統把數據A=100轉儲到磁帶上,而在下一時刻Td,某一事務將A改為200。轉儲結束后,后備副本上的A已是過時的數據了。2022/9/2127動態轉儲2022/9/2126利用動態轉儲得到的副本
10、進行故障恢復需要把動態轉儲期間各事務對數據庫的修改活動登記下來,建立日志文件后備副本加上日志文件才能把數據庫恢復到某一時刻的正確狀態2022/9/2128利用動態轉儲得到的副本進行故障恢復2022/9/2127利用動態轉儲副本進行恢復 Ta Tb Tf 動態轉儲 運行事務 故障發生點正常運行 登記日志文件 登記新日志文件 轉儲日志文件 重裝后備副本,然后利用轉儲的日志文件恢復恢復到一 致性狀態2022/9/2129利用動態轉儲副本進行恢復 2022/9/21282海量轉儲與增量轉儲海量轉儲:每次轉儲全部數據庫。增量轉儲:只轉儲上次轉儲后更新過的數據。海量轉儲與增量轉儲比較從恢復角度看,使用海量
11、轉儲得到的后備副本進行恢復往往更方便如果數據庫很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效2022/9/21302海量轉儲與增量轉儲2022/9/21293轉儲方法小結轉儲方法分類轉儲狀態動態轉儲靜態轉儲轉儲方式海量轉儲動態海量轉儲靜態海量轉儲增量轉儲動態增量轉儲靜態增量轉儲2022/9/21313轉儲方法小結轉儲狀態動態轉儲靜態2022/9/2130轉儲策略應定期進行數據轉儲,制作后備副本。轉儲是十分耗費時間和資源的,不能頻繁進行。DBA應該根據數據庫使用情況確定適當的轉儲周期和轉儲方法。例:每天晚上進行動態增量轉儲每周進行一次動態海量轉儲每月進行一次靜態海量轉儲2022/9/213
12、2轉儲策略2022/9/21316.4.3.2登記日志文件一、日志文件的內容1.日志文件(log)用來記錄事務對數據庫的更新操作的文件。2. 日志文件的格式以記錄為單位的日志文件以數據塊為單位的日志文件2022/9/21336.4.3.2登記日志文件一、日志文2022/9/21323. 日志文件內容以記錄為單位的日志文件內容各個事務的開始標記(BEGIN TRANSACTION)各個事務的結束標記(COMMIT或ROLLBACK)各個事務的所有更新操作與事務有關的內部更新操作以上為日志文件中的一個日志記錄 (log record)2022/9/21343. 日志文件內容2022/9/21334
13、. 基于記錄的日志文件每條日志記錄的內容事務標識操作類型(插入、刪除或修改)操作對象(記錄ID、Block NO.)更新前數據的舊值(對插入操作而言,此項為空值)更新后數據的新值(對刪除操作而言, 此項為空值)2022/9/21354. 基于記錄的日志文件2022/9/21345. 基于數據塊的日志文件每條日志記錄的內容事務標識(標明是那個事務)操作對象(記錄ID、Block NO.)更新前數據所在的整個數據塊的值(對插入操作而言,此項為空值)更新后整個數據塊的值(對刪除操作而言, 此項為空值)2022/9/21365. 基于數據塊的日志文件2022/9/2135二、日志文件的用途1用途進行事
14、務故障恢復進行系統故障恢復協助后備副本進行介質故障恢復2022/9/2137二、日志文件的用途2022/9/21362與靜態轉儲后備副本配合進行介質故障恢復靜態轉儲的數據已是一致性的數據如果靜態轉儲完成后,仍能定期轉儲日志文件,則在出現介質故障重裝數據副本后,可以利用這些日志文件副本對已完成的事務進行重做處理不必重新運行那些已完成的事務程序就可把數據庫恢復到故障前某一時刻的正確狀態2022/9/21382與靜態轉儲后備副本配合進行介質故障2022/9/2137 故障發生點 靜態轉儲 運行事務 正常運行 Ta Tb Tf 登記日志文件 重裝后備副本 利用日志文件恢復事務 繼續運行介質故障恢復 登
15、記日志文件 2022/9/2139 2022/9/2138上圖中:系統在Ta時刻停止運行事務,進行數據庫轉儲在Tb時刻轉儲完畢,得到Tb時刻的數據庫一致性副本系統運行到Tf時刻發生故障為恢復數據庫,首先由DBA重裝數據庫后備副本,將數據庫恢復至Tb時刻的狀態重新運行自TbTf時刻的所有更新事務,把數據庫恢復到故障發生前的一致狀態2022/9/2140上圖中:2022/9/21393介質故障恢復:LOG FILE + 動態轉儲后備副本動態轉儲數據庫,同時轉儲同一時點的日志文件后備副本與該日志文件結合起來才能將數據庫恢復到一致性狀態。利用這些日志文件副本進一步恢復事務,避免重新運行事務程序。202
16、2/9/21413介質故障恢復:LOG FILE +2022/9/2140三、登記日志文件的原則為保證數據庫是可恢復的,登記日志文件時必須遵循兩條原則登記的次序嚴格按并行事務執行的時間次序必須先寫日志文件,后寫數據庫寫日志文件操作:把表示這個修改的日志記錄寫到日志文件寫數據庫操作:把對數據的修改寫到數據庫中2022/9/2142三、登記日志文件的原則2022/9/2141為什么要先寫日志文件?寫數據庫和寫日志文件是兩個不同的操作在這兩個操作之間可能發生故障如果先寫了數據庫修改,而在日志文件中沒有登記下這個修改,則以后就無法恢復這個修改。如果先寫日志,但沒有修改數據庫,按日志文件恢復時只不過是多
17、執行一次不必要的UNDO操作,并不會影響數據庫的正確性。2022/9/2143為什么要先寫日志文件?2022/9/21426.4.4恢復策略6.4.4.1事務故障的恢復事務故障:事務在運行至正常終止點前被中止。恢復方法由恢復子系統應利用日志文件撤消(UNDO)此事務已對數據庫進行的修改事務故障的恢復由系統自動完成,不需要用戶干預2022/9/21446.4.4恢復策略6.4.4.1事2022/9/2143事務故障的恢復步驟1. 反向掃描文件日志(即從最后向前掃描日志文件),查找該事務的更新操作。2. 對該事務的更新操作執行逆操作。即將日志記錄中“更新前的值”(Befor Image, BI)寫
18、入數據庫。插入操作,“更新前的值”為空,則相當于做刪除操作刪除操作,“更新后的值”為空,則相當于做插入操作若是修改操作,則用BI 代替 AI(After Image)2022/9/2145事務故障的恢復步驟2022/9/21443. 繼續反向掃描日志文件,查找該事務的其他更新操作,并做同樣處理。4. 如此處理下去,直至讀到此事務的開始標記,事務故障恢復就完成了。2022/9/21463. 繼續反向掃描日志文件,查找該事務2022/9/21456.4.4.2系統故障的恢復系統故障造成數據庫不一致狀態的原因一些未完成事務對數據庫的更新已寫入數據庫一些已提交事務對數據庫的更新還留在緩沖區沒來得及寫入
19、數據庫2022/9/21476.4.4.2系統故障的恢復系統故障2022/9/2146恢復方法Undo 故障發生時未完成的事務Redo 已完成的事務系統故障的恢復由系統在重新啟動時自動完成,不需要用戶干預2022/9/2148恢復方法2022/9/2147系統故障的恢復步驟1.正向掃描日志文件(即從頭掃描日志文件)Redo隊列:在故障發生前已經提交的事務 T1,T3,T8Undo隊列:故障發生時尚未完成的事務 T2,T4,T5,T6,T7,T9 2022/9/2149系統故障的恢復步驟2022/9/21482. 對Undo隊列事務進行UNDO處理反向掃描日志文件,對每個UNDO事務的更新操作執
20、行逆操作T2,T4,T5,T6,T7,T93. 對Redo隊列事務進行REDO處理正向掃描日志文件,對每個REDO事務重新 執行登記的操作T1,T3,T82022/9/21502. 對Undo隊列事務進行UNDO處2022/9/21496.4.4.3介質故障的恢復介質故障的恢復方法重裝數據庫,使數據庫恢復到一致性狀態重做已完成的事務2022/9/21516.4.4.3介質故障的恢復介質故障2022/9/2150介質故障的恢復步驟1. 裝入最新的后備數據庫副本,使數據庫恢復到最近一次轉儲時的一致性狀態。對于靜態轉儲的數據庫副本,裝入后數據庫即處于一致性狀態對于動態轉儲的數據庫副本,還須同時裝入轉
21、儲時刻的日志文件副本,利用與恢復系統故障相同的方法(即REDO+UNDO),才能將數據庫恢復到一致性狀態。2022/9/2152介質故障的恢復步驟2022/9/2151利用靜態轉儲副本將數據庫恢復到一致性狀態 故障發生點 靜態轉儲 運行事務 正常運行 Ta Tb Tf 登記日志文件 重裝后備副本 恢復 2022/9/2153利用靜態轉儲副本將數據庫恢復到一致性狀2022/9/2152利用動態轉儲副本將數據庫恢復到一致性狀態 Ta Tb Tf 動態轉儲 運行事務 故障發生點正常運行 登記日志文件 登記新日志文件 轉儲日志文件 重裝后備副本,然后利用轉儲的日志文件恢復恢復到一 致性狀態2022/9
22、/2154利用動態轉儲副本將數據庫恢復到一致性狀2022/9/21532. 裝入有關的日志文件副本,重做已完成的事務。首先掃描日志文件,找出故障發生時已提交的事務的標識,將其記入重做隊列。然后正向掃描日志文件,對重做隊列中的所有事務進行重做處理。即將日志記錄中“更新后的值”寫入數據庫。2022/9/21552. 裝入有關的日志文件副本,重做已完2022/9/2154介質故障的恢復需要DBA介入DBA的工作重裝最近轉儲的數據庫副本和有關的各日志文件副本執行系統提供的恢復命令具體的恢復操作仍由DBMS完成2022/9/2156介質故障的恢復需要DBA介入2022/9/21556.4.5具有檢查點的
23、恢復技術一、問題的提出兩個問題搜索整個日志將耗費大量的時間REDO處理:重新執行,浪費了大量時間2022/9/21576.4.5具有檢查點的恢復技術一、問2022/9/2156解決方案具有檢查點(checkpoint)的恢復技術在日志文件中增加檢查點記錄(checkpoint)增加重新開始文件恢復子系統在登錄日志文件期間動態地維護日志2022/9/2158解決方案2022/9/21572022/9/21592022/9/2158二、檢查點技術檢查點記錄的內容建立檢查點時刻所有正在執行的事務清單這些事務最近一個日志記錄的地址重新開始文件的內容記錄各個檢查點記錄在日志文件中的地址2022/9/21
24、60二、檢查點技術2022/9/21592022/9/21612022/9/2160在檢查點維護日志文件將當前日志緩沖區中的所有日志記錄寫入磁盤的日志文件上。在日志文件中寫入一個檢查點記錄。將當前數據緩沖區的所有數據記錄寫入磁盤的數據庫中。把檢查點記錄在日志文件中的地址寫入一個重新開始文件。2022/9/2162在檢查點維護日志文件2022/9/2161建立檢查點定期按照預定的一個時間間隔不定期按照某種規則,如日志文件已寫滿一半建立一個檢查點2022/9/2163建立檢查點2022/9/2162三、利用檢查點的恢復策略當事務T在一個檢查點之前提交,T對數據庫所做的修改已寫入數據庫。在進行恢復處
25、理時,沒有必要對事務T執行REDO操作2022/9/2164三、利用檢查點的恢復策略2022/9/2163Tc (檢查點)Tf(系統故障) REDOUNDOUNDO REDOT2T3T4T5不要REDOT12022/9/2165Tc (檢查點)Tf(系統故障) RE2022/9/2164利用檢查點的恢復步驟1、從重新開始文件中找到最后一個檢查點記錄在日志文件中的地址,由該地址在日志文件中找到最后一個檢查點記錄2022/9/2166利用檢查點的恢復步驟2022/9/21652、由該檢查點記錄得到檢查點建立時刻所有正在執行的事務清單ACTIVE-LIST建立兩個事務隊列UNDO-LIST REDO-LIST 把ACTIVE-LIST暫時放入UNDO-LIST隊列,REDO隊列暫為空。2022/9/21672、由該檢查點記錄得到檢查點建立時刻所2022/9/21663、從檢查點開始正向掃描日志文件,直到日志文件結束如有新開始的事務Ti
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 燈具環境友好型設計與綠色制造考核試卷
- 生物質能發電項目的社會影響評估考核試卷
- 生態產品價值實現機制考核試卷
- 石墨礦石的浮選與熔煉過程考核試卷
- 管道工程法律法規與政策考核試卷
- 糖果與巧克力品牌營銷經驗分享考核試卷
- 山東旅游職業學院《計算機數學》2023-2024學年第一學期期末試卷
- 喀什理工職業技術學院《安全監測技術及實驗》2023-2024學年第二學期期末試卷
- 山東藝術設計職業學院《土建工程基礎》2023-2024學年第二學期期末試卷
- 山東省聊城市華陽中學2024-2025學年高三保溫練習(二)語文試題含解析
- DPtechIPS2000系列入侵防御系統培訓膠片課件
- “四不傷害”安全生產專題培訓課件
- 阿特拉斯空壓機保養課件
- (房屋建筑部分)工程建設標準強制性條文2023年版
- 幼兒園中班語言《小兔子開鋪子》課件
- 公司面談表模板
- 蘇教版科學一年級下冊第10課形形色色的動物課件25張
- 超聲診斷學:局灶性肝病(肝臟占位性病變)
- GB∕T 5019.8-2009 以云母為基的絕緣材料 第8部分:玻璃布補強B階環氧樹脂粘合云母帶
- 延期還款申請表
- OSN9800光傳輸網絡解決方案
評論
0/150
提交評論