數(shù)據庫的恢復_第1頁
數(shù)據庫的恢復_第2頁
數(shù)據庫的恢復_第3頁
數(shù)據庫的恢復_第4頁
數(shù)據庫的恢復_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

數(shù)據庫的恢復第一頁,共四十七頁,編輯于2023年,星期三為什么要數(shù)據庫恢復故障是不可避免的計算機硬件故障系統(tǒng)軟件和應用軟件的錯誤操作員的失誤惡意的破壞故障的影響輕則造成運行事務非正常中斷,影響數(shù)據庫中數(shù)據的正確性重則破壞數(shù)據庫,使數(shù)據庫中數(shù)據部分或全部丟失。例,銀行轉帳。第二頁,共四十七頁,編輯于2023年,星期三恢復的原理事務故障某個事務在運行過程中由于種種原因未運行至正常終止點就夭折了系統(tǒng)故障由于某種原因造成整個系統(tǒng)的正常運行突然停止,致使所有正在運行的事務都以非正常方式終止。介質故障硬件故障使存儲在外存中的數(shù)據部分丟失或全部丟失操作系統(tǒng)或DBMS代碼錯誤操作員操作失誤特定類型的硬件錯誤(如CPU故障)突然停電輸入數(shù)據有誤運算溢出違反了某些完整性限制某些應用程序出錯并行事務發(fā)生死鎖第三頁,共四十七頁,編輯于2023年,星期三事務故障事務故障的恢復發(fā)生事務故障時,夭折的事務可能已把對數(shù)據庫的部分修改寫回磁盤。事務故障的恢復:事務撤消(UNDO)恢復程序要在不影響其它事務運行的情況下,強行回滾(ROLLBACK)該事務,即清除該事務對數(shù)據庫的所有修改,使得這個事務象根本沒有啟動過一樣第四頁,共四十七頁,編輯于2023年,星期三系統(tǒng)故障系統(tǒng)故障的恢復1.清除尚未完成的事務對數(shù)據庫的所有修改如果DBMS無法確定哪些事務已更新過數(shù)據庫,則系統(tǒng)重新啟動后,恢復程序要強行撤消(UNDO)所有未完成事務,使這些事務象沒有運行過一樣。2.將緩沖區(qū)中已完成事務提交的結果寫入數(shù)據庫如果DBMS無法確定哪些事務的提交結果尚未寫入物理數(shù)據庫,則系統(tǒng)重新啟動后,恢復程序需要重做(REDO)所有已提交的事務。第五頁,共四十七頁,編輯于2023年,星期三介質故障常見原因硬件故障磁盤損壞磁頭碰撞操作系統(tǒng)的某種潛在錯誤瞬時強磁場干擾第六頁,共四十七頁,編輯于2023年,星期三介質故障(續(xù))介質故障的恢復裝入數(shù)據庫發(fā)生介質故障前某個時刻的數(shù)據副本重做自此時始的所有成功事務,將這些事務已提交的結果重新記入數(shù)據庫(REDO)第七頁,共四十七頁,編輯于2023年,星期三故障的種類小結數(shù)據庫系統(tǒng)中各類故障對數(shù)據庫的影響數(shù)據庫本身被破壞(介質故障)數(shù)據庫處于不一致狀態(tài)數(shù)據庫中包含了未完成事務對數(shù)據庫的修改(事務故障、系統(tǒng)故障)數(shù)據庫中丟失了已提交事務對數(shù)據庫的修改(系統(tǒng)故障)不同類型的故障應采用不同的恢復操作第八頁,共四十七頁,編輯于2023年,星期三故障的種類小結(續(xù))恢復操作的基本原理:簡單任何恢復操作的原理都是一樣的原理:利用存儲在系統(tǒng)其它地方的冗余數(shù)據來重建數(shù)據庫中已經被破壞或已經不正確的那部分數(shù)據恢復的實現(xiàn)技術:復雜一般一個大型數(shù)據庫產品,恢復子系統(tǒng)的代碼要占全部代碼的10%以上第九頁,共四十七頁,編輯于2023年,星期三恢復的實現(xiàn)技術恢復技術的原理利用存儲在系統(tǒng)其它地方的冗余數(shù)據來修復或重建數(shù)據庫中被破壞的或不正確的數(shù)據。利用存儲在后備副本、日志文件和數(shù)據庫鏡像中的冗余數(shù)據來重建數(shù)據庫恢復機制涉及的關鍵問題1.如何建立冗余數(shù)據數(shù)據轉儲登記日志文件2.如何利用這些冗余數(shù)據實施數(shù)據庫恢復

第十頁,共四十七頁,編輯于2023年,星期三恢復的實現(xiàn)技術數(shù)據轉儲轉儲是指DBA將整個數(shù)據庫復制到磁帶或另一個磁盤上保存起來的過程登記日志文件恢復策略第十一頁,共四十七頁,編輯于2023年,星期三冗余數(shù)據--轉儲的用途用途:供介質故障恢復時使用一旦系統(tǒng)發(fā)生介質故障,數(shù)據庫遭到破壞,可以將后備副本重新裝入,把數(shù)據庫恢復起來?;謴偷某潭戎匮b后備副本只能將DB恢復到轉儲時的狀態(tài)要想恢復到故障發(fā)生時的狀態(tài),必須重新運行自轉儲以后的所有更新事務第十二頁,共四十七頁,編輯于2023年,星期三冗余數(shù)據--轉儲方法1.靜態(tài)轉儲與動態(tài)轉儲

靜態(tài)轉儲是在系統(tǒng)中無運行事務時進行的轉儲操作動態(tài)轉儲是指轉儲操作與用戶事務并發(fā)進行,轉儲期間允許對數(shù)據庫進行存取或修改2.海量轉儲與增量轉儲3.轉儲方法小結第十三頁,共四十七頁,編輯于2023年,星期三利用靜態(tài)轉儲副本進行恢復

故障發(fā)生點

靜態(tài)轉儲

運行事務↓正常運行─┼───────┼─────────────

Ta

TbTf

重裝后備副本

恢復

━━━━━━┥第十四頁,共四十七頁,編輯于2023年,星期三利用動態(tài)轉儲副本進行恢復

Ta

TbTf

動態(tài)轉儲

運行事務

故障發(fā)生點正常運行─┼───────┼─────────────登記日志文件登記新日志文件─────────┼─────────────

轉儲日志文件

重裝后備副本,然后利用轉儲的日志文件恢復恢復到一

━━━━━━┥致性狀態(tài)第十五頁,共四十七頁,編輯于2023年,星期三2.海量轉儲與增量轉儲海量轉儲每次轉儲全部數(shù)據庫增量轉儲只轉儲上次轉儲后更新過的數(shù)據海量轉儲與增量轉儲比較從恢復角度看,使用海量轉儲得到的后備副本進行恢復往往更方便但如果數(shù)據庫很大,事務處理又十分頻繁,則增量轉儲方式更實用更有效第十六頁,共四十七頁,編輯于2023年,星期三3.轉儲方法小結轉儲方法分類

轉儲狀態(tài)動態(tài)轉儲靜態(tài)轉儲轉儲方式海量轉儲動態(tài)海量轉儲靜態(tài)海量轉儲增量轉儲動態(tài)增量轉儲靜態(tài)增量轉儲第十七頁,共四十七頁,編輯于2023年,星期三冗余數(shù)據--日志文件1.什么是日志文件日志文件(log)是用來記錄事務對數(shù)據庫的更新操作的文件。2.日志文件的格式以記錄為單位的日志文件以數(shù)據塊為單位的日志文件第十八頁,共四十七頁,編輯于2023年,星期三冗余數(shù)據--日志文件3.日志文件內容各個事務的開始標記(BEGINTRANSACTION)各個事務的結束標記(COMMIT或ROLLBACK)各個事務的所有更新操作每個事務開始的標記、每個事務的結束標記和每個更新操作均作為日志文件中的一個日志記錄(logrecord)第十九頁,共四十七頁,編輯于2023年,星期三冗余數(shù)據--日志文件的用途1.用途進行事務故障恢復進行系統(tǒng)故障恢復協(xié)助后備副本進行介質故障恢復第二十頁,共四十七頁,編輯于2023年,星期三登記日志文件的原則為保證數(shù)據庫是可恢復的,登記日志文件時必須遵循兩條原則登記的次序嚴格按并行事務執(zhí)行的時間次序必須先寫日志文件,后寫數(shù)據庫寫數(shù)據庫操作:把對數(shù)據的修改寫到數(shù)據庫中寫日志文件操作:把表示這個修改的日志記錄寫到日志文件第二十一頁,共四十七頁,編輯于2023年,星期三登記日志文件的原則(續(xù))為什么要先寫日志文件寫數(shù)據庫和寫日志文件是兩個不同的操作有可能在這兩個操作之間發(fā)生故障,即這兩個寫操作只完成了一個如果先寫了數(shù)據庫修改,而在日志文件中沒有登記下這個修改,則以后就無法恢復這個修改了如果先寫日志,但沒有修改數(shù)據庫,按日志文件恢復時只不過是多執(zhí)行一次不必要的UNDO操作,并不會影響數(shù)據庫的正確性第二十二頁,共四十七頁,編輯于2023年,星期三數(shù)據庫的恢復策略1.事務故障的恢復2.系統(tǒng)故障的恢復3.介質故障的恢復第二十三頁,共四十七頁,編輯于2023年,星期三1.事務故障的恢復事務故障是指事務在運行至正常終止點前被中止恢復方法由恢復子系統(tǒng)應利用日志文件撤消(UNDO)此事務已對數(shù)據庫進行的修改事務故障的恢復由系統(tǒng)自動完成,不需要用戶干預第二十四頁,共四十七頁,編輯于2023年,星期三事務故障的恢復(續(xù))恢復步驟1.反向掃描文件日志,查找該事務的更新操作。2.對該事務的更新操作執(zhí)行逆操作。如果記錄中是插入操作,則相當于做刪除操作若記錄中是刪除操作,則相當于做插入操作若是修改操作,則相當于用修改前值代替修改后值3.繼續(xù)反向掃描日志文件,查找該事務的其他更新操作,并做同樣處理。4.如此處理下去,直至讀到此事務的開始標記第二十五頁,共四十七頁,編輯于2023年,星期三2.系統(tǒng)故障的恢復系統(tǒng)故障造成數(shù)據庫不一致狀態(tài)的原因一些未完成事務對數(shù)據庫的更新已寫入數(shù)據庫一些已提交事務對數(shù)據庫的更新還留在緩沖區(qū)沒來得及寫入數(shù)據庫恢復方法1.撤消故障發(fā)生時未完成的事務2.重做已完成的事務系統(tǒng)故障的恢復由系統(tǒng)在重新啟動時自動完成,不需要用戶干預第二十六頁,共四十七頁,編輯于2023年,星期三系統(tǒng)故障的恢復(續(xù))恢復步驟1. 正向掃描日志文件(即從頭掃描日志文件)找出在故障發(fā)生前已經提交的事務,將事務標識記入重做隊列同時找出故障發(fā)生時尚未完成的事務,將事務標識記入撤消隊列第二十七頁,共四十七頁,編輯于2023年,星期三系統(tǒng)故障的恢復(續(xù))

2.對撤消隊列中的各個事務進行撤消(UNDO)處理反向掃描日志文件,對每個UNDO事務的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”寫入數(shù)據庫

3.對重做隊列中的各個事務進行重做(REDO)處理正向掃描日志文件,對每個REDO事務重新執(zhí)行登記的操作。即將日志記錄中“更新后的值”寫入數(shù)據庫第二十八頁,共四十七頁,編輯于2023年,星期三3.介質故障的恢復發(fā)生介質故障后,磁盤上的物理數(shù)據和日志文件被破壞,這是最嚴重的一種故障恢復方法1.重裝數(shù)據庫,使數(shù)據庫恢復到一致性狀態(tài)2.重做已完成的事務第二十九頁,共四十七頁,編輯于2023年,星期三介質故障的恢復(續(xù))恢復步驟1.裝入最新的后備數(shù)據庫副本,使數(shù)據庫恢復到最近一次轉儲時的一致性狀態(tài)。對于靜態(tài)轉儲的數(shù)據庫副本,裝入后數(shù)據庫即處于一致性狀態(tài)對于動態(tài)轉儲的數(shù)據庫副本,還須同時裝入轉儲時刻的日志文件副本,利用與恢復系統(tǒng)故障相同的方法(即REDO+UNDO),才能將數(shù)據庫恢復到一致性狀態(tài)。第三十頁,共四十七頁,編輯于2023年,星期三介質故障的恢復(續(xù))2.裝入有關的日志文件副本,重做已完成的事務。首先掃描日志文件,找出故障發(fā)生時已提交的事務的標識,將其記入重做隊列。然后正向掃描日志文件,對重做隊列中的所有事務進行重做處理。即將日志記錄中“更新后的值”寫入數(shù)據庫。第三十一頁,共四十七頁,編輯于2023年,星期三SQLServer的數(shù)據庫備份SQLServer2000對所要備份內容的選項設置,提供了四種不同的方式:(1)完全數(shù)據庫備份(2)差異備份或稱增量備份(3)事務日志備份(4)數(shù)據庫文件和文件組備份第三十二頁,共四十七頁,編輯于2023年,星期三SQLServer--備份設備

在進行備份以前首先必須創(chuàng)建或指定備份設備。備份設備是用來存儲數(shù)據庫、事務日志或文件和文件組備份的存儲介質,可以是硬盤、磁帶或管道。備份設備在硬盤中是以文件的方式存儲的。第三十三頁,共四十七頁,編輯于2023年,星期三完全備份SQLServer在數(shù)據庫完整備份過程中取特定的步驟以確保數(shù)據的一致性鎖定數(shù)據庫,阻斷所有的事務,在事務日志中放置一個標志,釋放數(shù)據庫鎖定;復制所有的數(shù)據頁;鎖定數(shù)據庫,阻斷所有的事務,在事務日志中放置一個標志,釋放數(shù)據庫鎖定;提取兩個日志標記之間的事務添加到備份中.第三十四頁,共四十七頁,編輯于2023年,星期三完全備份格式Backupdatabase<databasename>toDisk=‘filename’withinit withinit是通知SQLServer清除備份設備上的所有的數(shù)據例:Backupdatabasestudenttodisk‘d:\bak\student.bak’withinit第三十五頁,共四十七頁,編輯于2023年,星期三差異備份備份最后一次完全備份后所有已經變化的數(shù)據.Backupdatabase<databasename>toDisk=‘filename’withdifferentialEg:insertintos(sno,sname)values('001','zxx')insertintos(sno,sname)values('002','Daisy')backupdatabasestudenttodisk='d:\bak\studentdifferential.bak'withdifferential第三十六頁,共四十七頁,編輯于2023年,星期三事務日志備份只有在數(shù)據的還原模式為完整模式或大容量日志模式才能事務日志備份格式backuplog<databasename>todisk=finename‘withinitEg:backuplogstudenttodisk='d:\bak\studentlog.bak‘withinit第三十七頁,共四十七頁,編輯于2023年,星期三SQLServer--備份設備

可以為Microsoft?SQLServer?2000中的每個數(shù)據庫選擇三種恢復模型中的一種,以確定如何備份數(shù)據以及能承受何種程度的數(shù)據丟失。下面是可以選擇的三種恢復模型:簡單恢復完全恢復大容量日志記錄恢復

第三十八頁,共四十七頁,編輯于2023年,星期三簡單恢復簡單恢復允許將數(shù)據庫恢復到最新的備份。使用簡單恢復模型可以將數(shù)據庫恢復到上次備份的即時點。不過,無法將數(shù)據庫還原到故障點或特定的即時點。若要還原到這些點,請選擇完全恢復或大容量日志記錄恢復。簡單恢復的備份策略包括:數(shù)據庫備份。差異備份(可選)。在媒體發(fā)生故障時進行恢復

還原最新的完整數(shù)據庫備份。如果有差異備份,則還原最新的那個備份。上次的數(shù)據庫備份或差異備份后的更改將丟失。第三十九頁,共四十七頁,編輯于2023年,星期三完全恢復

完全恢復允許將數(shù)據庫恢復到故障點狀態(tài)。完全恢復模型使用數(shù)據庫備份和事務日志備份提供對媒體故障的完全防范。如果一個或多個數(shù)據文件損壞,則媒體恢復可以還原所有已提交的事務。正在進行的事務將回滾。完全恢復的備份策略包括:數(shù)據庫備份。差異備份(可選)。事務日志備份。完全恢復和大容量日志記錄恢復很相似,而且很多使用完全恢復模型的用戶有時將使用大容量日志記錄模型。有關更多信息,請參見大容量日志記錄恢復。第四十頁,共四十七頁,編輯于2023年,星期三媒體發(fā)生故障時進行完全恢復

完全恢復允許將數(shù)據庫恢復到故障點狀態(tài)。完全恢復模型使用數(shù)據庫備份和事務日志備份提供對媒如果數(shù)據庫的當前事務日志文件可用而且沒有損壞,則可以將數(shù)據庫還原到故障點發(fā)生時的狀態(tài)。若要將數(shù)據庫還原到故障點:備份當前活動事務日志。還原最新的數(shù)據庫備份但不恢復數(shù)據庫。如果有差異備份,則還原最新的那個備份。按照創(chuàng)建時的相同順序,還原自數(shù)據庫備份或差異備份后創(chuàng)建的每個事務日志備份,但不恢復數(shù)據庫。應用最新的日志備份(在步驟1中創(chuàng)建的)并恢復數(shù)據庫。第四十一頁,共四十七頁,編輯于2023年,星期三大容量日志記錄恢復

大容量日志記錄恢復允許大容量日志記錄操作。提供對媒體故障的防范,并對某些大規(guī)?;虼笕萘繌椭撇僮魈峁┳罴研阅芎妥钌俚娜罩臼褂每臻g。下列操作為最小日志記錄操作:SELECTINTO。大容量裝載操作(bcp

和BULKINSERT)。CREATEINDEX(包括索引視圖)。text和image

操作(WRITETEXT和UPDATETEXT)。第四十二頁,共四十七頁,編輯于2023年,星期三數(shù)據庫的恢復模型當創(chuàng)建新的數(shù)據庫時,新的數(shù)據庫繼承model

數(shù)據庫的恢復模型。若要更改新數(shù)據庫的默認值,請用ALTERDATABASE設置model

數(shù)據庫的恢復選項。alterdatabasestudentsetRECOVERYFULL|BULK_LOGGED|SIMPLE第四十三頁,共四十七頁,編輯于2023年

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論