數(shù)據(jù)庫系統(tǒng)概論(八)課件_第1頁
數(shù)據(jù)庫系統(tǒng)概論(八)課件_第2頁
數(shù)據(jù)庫系統(tǒng)概論(八)課件_第3頁
數(shù)據(jù)庫系統(tǒng)概論(八)課件_第4頁
數(shù)據(jù)庫系統(tǒng)概論(八)課件_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第十章數(shù)據(jù)庫恢復技術9/18/20231第十章數(shù)據(jù)庫恢復技術事務的基本概念數(shù)據(jù)庫恢復概述恢復的實現(xiàn)恢復策略具有檢查點的恢復技術數(shù)據(jù)庫鏡像SQL

Server

的恢復技術10.1

事務的基本概念9/18/20232第十章數(shù)據(jù)庫恢復技術什么是事務?事務的基本操作與狀態(tài)系統(tǒng)賦予事務的特性10.1.1

什么是事務?典型事務,如銀行轉帳:9/18/20233第十章數(shù)據(jù)庫恢復技術帳戶A–10000元;帳戶B+10000元。Read(A);A:=A-10000;Write(A);Read(B);B:=B+10000;Write(B);begin

transaction;Read(A);A:=A-10000;Write(A);Read(B);B:=B+10000;Write(B);commit1、定義為了完成某個任務所執(zhí)行的一個數(shù)據(jù)庫讀、寫操作序列。2、顯式定義方式BEGIN

TRANSACTIONSQL

語句1SQL

語句2。。。。。COMMIT

(或ROLLBACK)3、隱式方式當用戶沒有顯式地定義事務時,DBMS按缺省規(guī)定自動劃分事務。transaction;10.1.2

事務的基本操作與狀態(tài)1)事務開始(begin

transaction):開始執(zhí)行。

2)事務讀寫(read/write):進行數(shù)據(jù)庫操作。

3)事務結束(end

transaction):完成所有操作。事務交付(commit):完成所有操作,并保存所有結果。事務撤消(rollback):執(zhí)行途中出現(xiàn)異常,系統(tǒng)或用戶撤消事務。部分交付交付撤消終止事務開始 事務結束 交付活躍讀寫操作 撤消事務的起點10/2/20234第十章數(shù)據(jù)庫恢復技術事務的終點10.1.3

系統(tǒng)賦予事務的特性(ACID)10/2/20235第十章數(shù)據(jù)庫恢復技術為了保證事務并發(fā)、有效、正確地執(zhí)行,保證數(shù)據(jù)庫的正確性,系統(tǒng)必須賦予事務一些特性。原子性(Atomicity):最基本特性事務的所有操作要么全部完成,要么均不執(zhí)行。原子性在于保證正確性。由DBMS的恢復子系統(tǒng)來保證原子性。一致性(Consistency):事務必須將數(shù)據(jù)庫從一種一致狀態(tài)轉換為另一種一致狀態(tài)。由DBMS和程序開發(fā)者共同保證數(shù)據(jù)庫的一致性。隔離性(Isolation):任何事務不能訪問到其他未交付事務的中間結果。由DBMS的并發(fā)控制子系統(tǒng)來保證事務的隔離性。持久性(Durability):保證已交付事務的結果不丟失,且與以后的故障無關。由DBMS的恢復子系統(tǒng)負責確保事務的持久性。10.2

數(shù)據(jù)庫恢復概述1、引入“恢復”技術的原因事務故障、系統(tǒng)故障、介質故障計算機病毒2、恢復的基本原理–

冗余3、恢復的含義–所謂數(shù)據(jù)庫的恢復就是利用存儲在系統(tǒng)其他地方的冗余數(shù)據(jù)來修復數(shù)據(jù)庫中被破壞的或不正確的數(shù)據(jù),使數(shù)據(jù)庫從錯誤狀態(tài)恢復到某一已知的正確狀態(tài)。數(shù)據(jù)庫本身被破壞數(shù)據(jù)庫沒有被破壞,但數(shù)據(jù)可能不正確10/2/20236第十章數(shù)據(jù)庫恢復技術10.3

恢復的實現(xiàn)技術恢復機制涉及的兩個關鍵問題:數(shù)據(jù)轉儲登記日志文件如何建立冗余數(shù)據(jù)如何利用冗余數(shù)據(jù)實施數(shù)據(jù)庫恢復不同故障的恢復策略有所不同10/2/20237第十章數(shù)據(jù)庫恢復技術10.3.1

數(shù)據(jù)轉儲1、含義–

DBA定期地將整個數(shù)據(jù)庫復制到磁帶或另一個磁盤上形成后備副本保存起來的過程。2、利用轉儲方法進行恢復的過程Tf3、轉儲狀態(tài)靜態(tài)轉儲正常運行動態(tài)轉儲轉儲 運行事務故障發(fā)生點Ta

Tb重裝后備副本重新運行事務恢復4、轉儲方式海量轉儲增10量/2/轉202儲38第十章數(shù)據(jù)庫恢復技術10.3.2

登記日志文件10/2/20239第十章數(shù)據(jù)庫恢復技術日志文件的格式和內容日志文件的作用登記日志文件一、日志文件的格式和內容10/2/202310第十章數(shù)據(jù)庫恢復技術什么是日志文件日志文件(log)是用來記錄事務對數(shù)據(jù)庫的更新操作的文件。日志文件的格式以記錄為單位的日志文件以數(shù)據(jù)塊為單位的日志文件日志文件的格式和內容(續(xù))10/2/202311第十章數(shù)據(jù)庫恢復技術以記錄為單位的日志文件內容各個事務的開始標記(BEGIN

TRANSACTION)各個事務的結束標記(COMMIT或ROLLBACK)各個事務的所有更新操作record)以上均作為日志文件中的一個日志記錄

(log每條日志記錄的內容事務標識(標明是哪個事務)操作類型(插入、刪除或修改)操作對象(記錄內部標識)更新前數(shù)據(jù)的舊值(對插入操作而言,此項為空值)更新后數(shù)據(jù)的新值(對刪除操作而言,此項為空值)日志文件的格式和內容(續(xù))10/2/202312第十章數(shù)據(jù)庫恢復技術以數(shù)據(jù)塊為單位的日志文件,每條日志記錄的內容事務標識(標明是那個事務)被更新的數(shù)據(jù)塊二、日志文件的作用10/2/202313第十章數(shù)據(jù)庫恢復技術進行事務故障恢復進行系統(tǒng)故障恢復協(xié)助后備副本進行介質故障恢復利用靜態(tài)轉儲副本和日志文件進行恢復TaTbTf正常運行轉儲運行事務故障發(fā)生點登記日志文件重裝后備副本利用日志文件恢復事務恢復登記日志文件10/2/202314第十章數(shù)據(jù)庫恢復技術繼續(xù)運行三、登記日志文件基本原則登記的次序嚴格按并行事務執(zhí)行的時間次序必須先寫日志文件,后寫數(shù)據(jù)庫

寫日志文件操作:把表示這個修改的日志記錄寫到日志文件

寫數(shù)據(jù)庫操作:把對數(shù)據(jù)的修改寫到數(shù)據(jù)庫中10/2/202315第十章數(shù)據(jù)庫恢復技術10.4

恢復策略10/2/202316第十章數(shù)據(jù)庫恢復技術事務分類基本的恢復操作不同故障的恢復策略10.4.1

事務分類10/2/202317第十章數(shù)據(jù)庫恢復技術圓滿事務指日志文件中記錄了事務的commit

標識,說明日志中已經(jīng)完整地記錄下事務所有的更新活動。夭折事務指日志文件中只有事務的開始標識,而無

commit標識,說明對事務更新活動的記錄是不完整的,無法根據(jù)日志來重現(xiàn)事務。為保證事務的原子性,應該撤銷這樣的事務。10.4.2

基本的恢復操作:Redo和Undo10/2/202318第十章數(shù)據(jù)庫恢復技術Redo和Undo是針對事務的某一次更新操作。Redo是重新執(zhí)行這次操作。其處理的方法是,正向掃描日志文件,將日志記錄中“更新后的值”重新寫入數(shù)據(jù)庫。Undo是消除這次操作的影響,將事務執(zhí)行點回退到這次操作之前。其處理的方法是,反向掃描日志文件,將日志記錄中“更新前的值”重新寫入數(shù)據(jù)庫。在利用日志文件進行恢復的過程中,對已結束的事務中的更新操作進行Redo,對未結束的事務中的更新操作進行Undo。10.4.3

不同故障的恢復策略10/2/202319第十章數(shù)據(jù)庫恢復技術事務故障的恢復系統(tǒng)故障的恢復介質故障的恢復思考題在SQL語言中,定義事務控制的語句主要有、

和事務具有四個特性:它們是

、。、和 。這個四個特性也簡稱為 特性。和 是數(shù)據(jù)庫恢復的基本技術。如何進行事務故障的恢復?系統(tǒng)故障的恢復?介質故障恢復?10/2/202320第十章數(shù)據(jù)庫恢復技術10.5

具有檢查點的恢復技術10/2/202321第十章數(shù)據(jù)庫恢復技術問題的提出檢查點技術利用檢查點的恢復策略10.5.1

問題的提出10/2/202322第十章數(shù)據(jù)庫恢復技術兩個問題搜索整個日志將耗費大量的時間REDO處理:重新執(zhí)行,浪費了大量時間解決方案10/2/202323第十章數(shù)據(jù)庫恢復技術具有檢查點(checkpoint)的恢復技術在日志文件中增加檢查點記錄(checkpoint)增加重新開始文件恢復子系統(tǒng)在登錄日志文件期間動態(tài)地維護日志10.5.2

檢查點技術10/2/202324第十章數(shù)據(jù)庫恢復技術檢查點記錄的內容建立檢查點時刻所有正在執(zhí)行的事務清單這些事務最近一個日志記錄的地址重新開始文件的內容–記錄各個檢查點記錄在日志文件中的地址動態(tài)維護日志文件的方法10/2/202325第十章數(shù)據(jù)庫恢復技術動態(tài)維護日志文件的方法周期性地執(zhí)行如下操作:建立檢查點,保存數(shù)據(jù)庫狀態(tài)。具體步驟是:將當前日志緩沖區(qū)中的所有日志記錄寫入磁盤的日志文件上在日志文件中寫入一個檢查點記錄將當前數(shù)據(jù)緩沖區(qū)的所有數(shù)據(jù)記錄寫入磁盤的數(shù)據(jù)庫中把檢查點記錄在日志文件中的地址寫入一個重新開始文件建立檢查點10/2/202326第十章數(shù)據(jù)庫恢復技術恢復子系統(tǒng)可以定期或不定期地建立檢查點,保存數(shù)據(jù)庫狀態(tài)定期按照預定的一個時間間隔,如每隔一小時建立一個檢查點不定期

按照某種規(guī)則,如日志文件已寫滿一半建立一個檢查點10.5.3

利用檢查點的恢復策略Tc

(檢查點)Tf

(系統(tǒng)故障)UNDOUNDOREDOREDOT2T3T4T5不要REDOT110/2/202327第十章數(shù)據(jù)庫恢復技術利用檢查點的恢復步驟10/2/202328第十章數(shù)據(jù)庫恢復技術從重新開始文件中找到最后一個檢查點記錄在日 志文件中的地址,由該地址在日志文件中找到最 后一個檢查點記錄。由該檢查點記錄得到檢查點建立時刻所有正在執(zhí) 行的事務清單ACTIVE-LIST建立兩個事務隊列UNDO-LISTREDO-LIST把ACTIVE-LIST暫時放入UNDO-LIST隊列,REDO隊列暫為空。利用檢查點的恢復策略(續(xù))10/2/202329第十章數(shù)據(jù)庫恢復技術從檢查點開始正向掃描日志文件,直到日志文件結束如有新開始的事務Ti,把Ti暫時放入UNDO-LIST隊列如有提交的事務Tj,把Tj從UNDO-LIST隊列移到REDO-LIST隊列對UNDO-LIST中的每個事務執(zhí)行UNDO操作 對REDO-LIST中的每個事務執(zhí)行REDO操作10.6

數(shù)據(jù)庫鏡像10/2/202330第十章數(shù)據(jù)庫恢復技術介質故障是對系統(tǒng)影響最為嚴重的一種故障,嚴重影響數(shù)據(jù)庫的可用性介質故障恢復比較費時為預防介質故障,DBA必須周期性地轉儲數(shù)據(jù)庫提高數(shù)據(jù)庫可用性的解決方案數(shù)據(jù)庫鏡像(Mirror)數(shù)據(jù)庫鏡像技術10/2/202331第十章數(shù)據(jù)庫恢復技術什么是數(shù)據(jù)庫鏡像數(shù)據(jù)庫鏡像即根據(jù)DBA的要求,DBMS自動把整個數(shù)據(jù)庫或其中的關鍵數(shù)據(jù)復制到另一個磁盤上,每當主數(shù)據(jù)庫更新時,DBMS自動把更新后的數(shù)據(jù)復制過去,即DBMS自動保證鏡像數(shù)據(jù)與主數(shù)據(jù)庫的一致性。數(shù)據(jù)庫鏡像(續(xù))10/2/202332第十章數(shù)據(jù)庫恢復技術數(shù)據(jù)庫鏡像的用途10/2/202333第十章數(shù)據(jù)庫恢復技術出現(xiàn)介質故障時可由鏡像磁盤繼續(xù)提供使用同時DBMS自動利用鏡像磁盤數(shù)據(jù)進行數(shù)據(jù)庫的恢復,不需要關閉系統(tǒng)和重裝數(shù)據(jù)庫副本數(shù)據(jù)庫鏡像存在的問題及解決辦法10/2/202334第十章數(shù)據(jù)庫恢復技術存在的問題頻繁地復制數(shù)據(jù)自然會降低系統(tǒng)運行效率解決辦法只選擇對關鍵數(shù)據(jù)和日志文件鏡像,而不是對整個數(shù)據(jù)庫進行鏡像設有四個事務T1、T2、T3、T4,它們的操作定義如下:在系統(tǒng)崩潰之前系統(tǒng)在日志中記錄了如下內容:T1read_item(A)read_item(D)write_item(D)T2read_item(B)write_item(B)read_item(D)write_item(D)T3read_item(A)write_item(A)read_item(C)write_item(C)T4read_item(B)write_item(B)read_item(A)write_item(A)[begin_transaction,T1][read_item,T1,A][read_item,T1,D][write_item,T1,D,20][commit,T1][checkpoint][begin_transaction,T2][read_item,T2,B][write_item,T2,B,12][begin_transaction,T4][read_item,T4,B][write_item,T4,B,15][begin_transaction,T3][read_item,T3,A][write_item,T3,A,30][read_item,T4,A][write_item,T4,A,20][commit,T4][read_item,T2,D][write_item,T2,D,25]35如果系統(tǒng)采用立即修改的恢復技術和檢查點機制,當系統(tǒng)重啟后,哪些事務需要 退?哪些操作需要Redo?哪些操作需要Undo?是否會出現(xiàn)事務嵌套

退的情形?

10/2/2023

第十章

數(shù)據(jù)庫恢復技術10.7 SQL

Server

的恢復技術10/2/202336第十章數(shù)據(jù)庫恢復技術備份數(shù)據(jù)庫還原數(shù)據(jù)庫備份和還原的策略10.7.1

備份數(shù)據(jù)庫10/2/202337第十章數(shù)據(jù)庫恢復技術SQL

Server數(shù)據(jù)備份的特點SQL

Server數(shù)據(jù)庫備份的類型創(chuàng)建和管理備份設備備份數(shù)據(jù)庫一、SQL

Server數(shù)據(jù)備份的特點10/2/202338第十章數(shù)據(jù)庫恢復技術SQL

Server支持在線備份備份工作由數(shù)據(jù)庫管理員來完成二、SQL

Server數(shù)據(jù)庫備份的類型10/2/202339第十章數(shù)據(jù)庫恢復技術全數(shù)據(jù)庫備份事務日志備份增量備份(差異備份)文件和文件組備份三、創(chuàng)建和管理備份設備10/2/202340第十章數(shù)據(jù)庫恢復技術備份設備是SQL

Server用來存儲數(shù)據(jù)庫、事務日志或文件和文件組備份的存儲介質。備份設備可以是本地機器上的磁盤文件、遠端服務器上的磁盤文件、磁帶以及命名管道。創(chuàng)建一個備份設備時,要給它一個邏輯名稱和一個物理名稱。例如:設備類型本地磁盤邏輯名稱DB_BACKUP_DISK物理名稱D:\BACKUPS

\DBBACKUP01.BAK.BAK網(wǎng)絡磁盤TL_BACKUP_SQLBACK

\\SQLBACK\BACKUPS\TLBACKUP磁帶TAPE_BACKUP\\.\TAPE0命名管道NP_BACKUP\\SQLBACK\PIPE\SQL\BACKUP創(chuàng)建備份設備使用企業(yè)管理器使用系統(tǒng)存儲過程sp_addumpdevicesp_addumpdevice[@devtype

=]

'device_type',[@logicalname

=]

'logical_name',[@physicalname

=]

'physical_name'[,

{[@cntrltype

=]

controller_type

|

[@devstatus

=]'device_status'}]創(chuàng)建備份設備時,返回0表示創(chuàng)建成功,返回1表示創(chuàng)建失敗。disk、pipe、tape10/2/202341第十章數(shù)據(jù)庫恢復技術示例10/2/202342第十章數(shù)據(jù)庫恢復技術例1:創(chuàng)建一個磁盤備份設備:EXEC

sp_addumpdevice'disk',

'student_full',

'd:\xcm\student.bak'例2:創(chuàng)建一個磁帶備份設備:EXEC

sp_addumpdevice

'tape',

'tapedump1',

'\\.\tape0'管理備份設備10/2/202343第十章數(shù)據(jù)庫恢復技術列出備份設備使用企業(yè)管理器使用sp_helpdevice系統(tǒng)存儲過程刪除一個備份設備使用企業(yè)管理器使用SP_DROPDEVICE系統(tǒng)存儲過程SP_dropdevice

logicalname[,DELFILE]四、備份數(shù)據(jù)庫10/2/202344第十章數(shù)據(jù)庫恢復技術備份的內容master數(shù)據(jù)庫msdb

數(shù)據(jù)庫model數(shù)據(jù)庫distribution數(shù)據(jù)庫所有的用戶數(shù)據(jù)庫使用企業(yè)管理器來備份數(shù)據(jù)庫數(shù)據(jù)庫

所有任務

備份數(shù)據(jù)庫使用備份語句BACKUP來備份數(shù)據(jù)庫使用BACKUP來備份數(shù)據(jù)庫完全備份BACKUP

DATABASE

student

TO

student_full

WITHINIT增量備份(差異備份)BACKUP

DATABASE

student

TODISK

=‘d:\xm\student_diff.bak'WITH

NOINIT,

DIFFERENTIAL日志備份BACKUP

LOG

student

TO

student_log

WITH

NOINIT文件和文件組備份BACKUP

DATABASE

student

FILE=stu2

TO

student_file10/2/2023

45第十章數(shù)據(jù)庫恢復技術10.7.2

還原數(shù)據(jù)庫10/2/202346第十章數(shù)據(jù)庫恢復技術使用企業(yè)管理器還原數(shù)據(jù)庫使用RESTORE命令還原數(shù)據(jù)庫還原整個數(shù)據(jù)庫還原差異備份還原日志備份還原文件和文件組使用RESTORE命令還原數(shù)據(jù)庫10/2/202347第十章數(shù)據(jù)庫恢復技術還原整個數(shù)據(jù)庫RESTORE

DATABASE

student

FROM

student_full還原差異備份RESTORE

DATABASE

student

FROMstudent_differ

WITH

NORECOVERY還原日志備份RESTORE

LOG

student

FROM

student_log

WITHRECOVERY還原文件和文件組10/2/202348第十章數(shù)據(jù)庫恢復技術library數(shù)據(jù)庫創(chuàng)建在lib1、lib2和lib3文件上。Lib2備份在lib2bk備份文件上。該數(shù)據(jù)庫的日志備份在liblog備份設備上,現(xiàn)在lib2數(shù)據(jù)文件壞了,可以通過下述命令將它恢復:RESTORE

DATABASE

libraryFILE

=

lib2FROM

lib2bkWITH

NORECOVERYGORESTORE

LOG

libraryFROM

liblogWITH

RECOVERY10.7.3

備份和還原的策略10/2/202349第十章數(shù)據(jù)庫恢復技術還原模型備份類型全數(shù)據(jù)庫數(shù)據(jù)庫差異事務日志文件或文件差異簡單必需可選不允許不允許完全必需可選必需可選大容量日志記錄必需可選必需可選1.你備份SQL

Server數(shù)據(jù)的理由有哪些?10/2/202350第十章數(shù)據(jù)庫恢復技術崩潰恢復。

C.

將數(shù)據(jù)從一種處理器結構轉移到另一種。數(shù)據(jù)的歷史檔案。D.將數(shù)據(jù)從一個服務器轉移到另一個。建立備份并且從中恢復的備份設備類型有哪些?A.

磁帶設備

B.空設備

C.命名管理設備

D.

本地磁盤設備SQL

溫馨提示

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

評論

0/150

提交評論