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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、數(shù)據(jù)庫技術(shù)與應用1數(shù)據(jù)庫保護事務(wù)的基本概念 并發(fā)控制數(shù)據(jù)庫備份與恢復2并發(fā)控制 并發(fā)控制概述 并發(fā)控制措施封鎖協(xié)議死鎖并發(fā)調(diào)度的可串行性兩段鎖協(xié)議 3并發(fā)控制概述數(shù)據(jù)庫中的數(shù)據(jù)是一個共享的資源,因此會有很多用戶同時使用數(shù)據(jù)庫中的數(shù)據(jù),在多用戶系統(tǒng)中,可能同時運行著多個事務(wù),而事務(wù)的運行需要時間,并且事務(wù)中的操作是在一定的數(shù)據(jù)上進行的。當系統(tǒng)中同時有多個事務(wù)在運行時,特別是當這些事務(wù)是對同一段數(shù)據(jù)進行操作時,彼此之間就有可能產(chǎn)生相互干擾的情況。 4并發(fā)事務(wù)的相互干擾示例A、B兩個訂票點恰巧同時辦理同一架航班的飛機訂票業(yè)務(wù)。設(shè)其操作過程及順序如下: A訂票點(事務(wù)A)讀出航班目前的機票余額數(shù),假設(shè)

2、為10張;B訂票點(事務(wù)B)讀出航班目前的機票余額數(shù),也為為10張;A訂票點訂出6張機票,修改機票余額為106 4,并將4寫回到數(shù)據(jù)庫中;B訂票點訂出5張機票,修改機票余額為105 5,并將5寫回到數(shù)據(jù)庫中;5丟失數(shù)據(jù)修改 6讀“臟”數(shù)據(jù) 7不可重復讀 8產(chǎn)生“幽靈”數(shù)據(jù) 屬于不可重復讀的范疇。指當事務(wù)T1按一定條件從數(shù)據(jù)庫中讀取了某些數(shù)據(jù)記錄后,事務(wù)T2刪除了其中的部分記錄,或者在其中添加了部分記錄,則當T1再次按相同條件讀取數(shù)據(jù)時,發(fā)現(xiàn)其中莫名其妙地少了(對刪除)或多了(對插入)一些記錄。這樣的數(shù)據(jù)對T1來說就是“幽靈”數(shù)據(jù)或稱“幻影”數(shù)據(jù)。 9并發(fā)控制措施控制目標:事務(wù)運行過程中盡可能隔

3、離事務(wù)外操作對本事務(wù)數(shù)據(jù)環(huán)境的影響。在數(shù)據(jù)庫環(huán)境下,并發(fā)控制的主要方式是封鎖機制,即加鎖(Locking),加鎖是一種并行控制技術(shù),是用來調(diào)整對共享目標,如DB中共享的記錄并行存取的技術(shù)。10基本的封鎖類型共享鎖:指對于讀操作(檢索)來說,可以多個事務(wù)同時獲得共享鎖,但阻止其它事務(wù)對已獲得共享鎖的數(shù)據(jù)進行排它封鎖。 排它鎖:一旦一事務(wù)獲得了對某一數(shù)據(jù)的排它鎖,則任何其它事務(wù)再不能對該數(shù)據(jù)進行排它封鎖,其它事務(wù)只能進入等待狀態(tài),直到第一個事務(wù)撤銷了對該數(shù)據(jù)的封鎖。11排它鎖和共享鎖的控制方式 T2T1XS無鎖XNo NoYesSNoYesYes-YesYesYes12封鎖協(xié)議 在運用X鎖和S鎖對

4、數(shù)據(jù)對象進行加鎖時,還需要約定一些規(guī)則,如何時申請X鎖或S鎖、持鎖時間、何時釋放鎖等。稱這些規(guī)則為封鎖協(xié)議或加鎖協(xié)議(Locking Protocol)。對封鎖方式規(guī)定不同的規(guī)則,就形成了各種不同級別的封鎖協(xié)議。不同級別的封鎖協(xié)議達到的系統(tǒng)一致性級別不同。13一級封鎖協(xié)議 對事務(wù)T要修改的數(shù)據(jù)加X鎖,直到事務(wù)結(jié)束(包括正常結(jié)束和非正常結(jié)束)時才釋放。一級封鎖協(xié)議可以防止丟失修改,并保證事務(wù)T是可恢復的 但不能保證可重復讀和不讀“臟”數(shù)據(jù)。14一級封鎖協(xié)議示例15二級封鎖協(xié)議一級封鎖協(xié)議加上對事務(wù)T對要讀取的數(shù)據(jù)加S鎖,讀完后即釋放S鎖。除了可以防止丟失修改外,還可以防止讀“臟”數(shù)據(jù)。但不能保證

5、可重復讀數(shù)據(jù)。 16二級封鎖協(xié)議示例17三級封鎖協(xié)議一級封鎖協(xié)議加上事務(wù)T對要讀取的數(shù)據(jù)加S鎖,并直到事務(wù)結(jié)束才釋放。除了可以防止丟失修改和不讀“臟”數(shù)據(jù)之外,還進一步防止了不可重復讀。 18三級封鎖協(xié)議示例19不同級別的封鎖協(xié)議總結(jié) 20死鎖 兩個事務(wù)相互等待對方先釋放資源,則會造成死鎖。21預防死鎖的方法一次封鎖法一次封鎖法是每個事務(wù)一次將所有要使用的數(shù)據(jù)全部加鎖。順序封鎖法順序封鎖法是預先對數(shù)據(jù)對象規(guī)定一個封鎖順序,所有事務(wù)都按這個順序封鎖。 22并發(fā)調(diào)度的可串行性 多個事務(wù)的并發(fā)執(zhí)行是正確的,當且僅當其結(jié)果與按某一順序的串行執(zhí)行的結(jié)果相同,則我們稱這種調(diào)度為可串行化的調(diào)度??纱行允遣?/p>

6、發(fā)事務(wù)正確性的準則,按這個準則,一個給定的并發(fā)調(diào)度,當且僅當它是可串行化的時,才認為是正確的調(diào)度。 23兩段鎖協(xié)議 兩段鎖協(xié)議是實現(xiàn)可串行化調(diào)度的充分條件??梢詫⒚總€事務(wù)分成兩個時期:申請封鎖期和釋放封鎖期,申請期申請要進行的封鎖,釋放期釋放所占有的封鎖。在申請期不允許釋放任何鎖,在釋放期不允許申請任何鎖,這就是兩段式封鎖。24數(shù)據(jù)庫備份與恢復 數(shù)據(jù)庫故障的種類 數(shù)據(jù)庫備份 數(shù)據(jù)庫恢復 25數(shù)據(jù)庫故障的種類事務(wù)內(nèi)部的故障 事務(wù)故障意味著事務(wù)沒有達到預期的終點(COMMIT或ROLLBACK),因此,數(shù)據(jù)庫可能處于不正確的狀態(tài)。 系統(tǒng)故障 指造成系統(tǒng)停止運轉(zhuǎn)、系統(tǒng)要重啟的故障。例如,硬件錯誤(C

7、PU故障)、操作系統(tǒng)故障、突然停電等。 其它故障介質(zhì)故障或由計算機病毒引起的故障或破壞。 26數(shù)據(jù)庫備份 指定期或不定期地對數(shù)據(jù)庫數(shù)據(jù)進行復制。可以復制到本地機器上,也可以復制到其它機器上。備份的介質(zhì)可以是磁帶也可以是磁盤,但通常選用磁帶。是保證系統(tǒng)安全的一項重要措施。在制定備份策略時,應考慮如下幾個方面:備份的內(nèi)容 備份頻率 27數(shù)據(jù)庫恢復 1恢復策略事務(wù)故障的恢復 系統(tǒng)故障的恢復 介質(zhì)故障的恢復 2恢復方法利用備份技術(shù)利用事務(wù)日志利用鏡像技術(shù) 28基于SQL SERVER 2008備份與恢復數(shù)據(jù)庫備份計劃備份內(nèi)容備份類型完整備份事務(wù)日志備份差異備份備份組件備份頻率備份存儲介質(zhì)數(shù)據(jù)庫恢復29

8、故障還原模型1簡單恢復模型2完整恢復模型3大容量日志恢復模型30基于SQL SERVER 2008備份與恢復備份和恢復的流程創(chuàng)建備份設(shè)備進行數(shù)據(jù)庫的完整備份、差異備份、日志備份、文件和文件組備份恢復數(shù)據(jù)庫31備份設(shè)備1建立備份設(shè)備1)格式sp_addumpdevice 備份設(shè)備類型, 備份設(shè)備邏輯名,備份設(shè)備物理名稱2)功能 可以使用儲過程sp_addumpdevice添加備份設(shè)備。3)例: exec sp_addumpdevice disk, backdisk,i:tempback.bak4)方法二:使用Management Studio32備份設(shè)備2查看備份設(shè)備的屬性方法一:使用Manag

9、ement Studio方法二:使用SQL命令 sp_helpdevice33備份設(shè)備3刪除備份設(shè)備1)格式sp_dropdevice設(shè)備的邏輯名,delfile2)功能從SQL Server除去數(shù)據(jù)庫設(shè)備或備份設(shè)備。如果將物理備份設(shè)備文件指定為 DELFILE,將會刪除物理備份設(shè)備文件,否則只刪除邏輯設(shè)備名。返回0,表示成功刪除,返回1表示刪除失敗。不能在事務(wù)內(nèi)部使用 sp_dropdevice。34備份數(shù)據(jù)庫1.備份數(shù)據(jù)庫1)格式BACKUP DATABASE 數(shù)據(jù)庫名 ,.n TO ,.n WITH , DIFFERENTIAL , EXPIREDATE = 日期 | RETAINDAY

10、S =天數(shù) , INIT | NOINIT , NAME = 備份集名稱 , RESTART , STATS = percentage 35備份數(shù)據(jù)庫2)功能 將指定數(shù)據(jù)庫備份到指定備份設(shè)備。備份設(shè)備可以是邏輯備份設(shè)備名或物理備份設(shè)備名。 3)例 BACKUP DATABASE stuinfo TO backup36備份數(shù)據(jù)庫2備份事務(wù)日志1)格式BACKUP LOG 數(shù)據(jù)庫名 TO ,.n WITH , EXPIREDATE = 日期 | RETAINDAYS = 天數(shù) , INIT | NOINIT , NAME = 備份集名稱 , NO_TRUNCATE , NORECOVERY | S

11、TANDBY = standby_ , RESTART , STATS = percentage 37備份數(shù)據(jù)庫2備份事務(wù)日志2)功能對數(shù)據(jù)庫的事務(wù)進行備份,該日志是從上次成功執(zhí)行 LOG 備份到當前日志的末尾。它僅對數(shù)據(jù)庫事務(wù)日志進行備份,所以其需要的磁盤空間和備份時間都比數(shù)據(jù)庫備份少得多。38截斷事務(wù)日志1)格式BACKUP LOG 數(shù)據(jù)庫名 WITH NO_LOG2)功能如果從來沒有從事務(wù)日志刪除日志記錄,邏輯日志就會一直增長,直到填滿容納物理日志文件的磁盤上的所有可用空間。在某個即時點,必須刪除恢復或還原數(shù)據(jù)庫時不再需要的舊日志記錄,以便為新日志記錄騰出空間。刪除這些日志記錄以減小邏輯

12、日志的大小的過程稱為截斷日志。39截斷事務(wù)日志例截斷“student”事務(wù)日志, 收縮事務(wù)日志為1MB。BACKUP LOG student WITH NO_LOGUSE studentDBCC SHRINKFILE (student_log,1)40數(shù)據(jù)庫還原1還原數(shù)據(jù)庫RESTORE DATABASE 數(shù)據(jù)庫名 FROM ,.n WITH PARTIAL FILE = 備份文件號 , MOVE 邏輯文件名 TO 操作系統(tǒng)文件名 ,.n , RECOVERY|NORECOVERY|STANDBY=撤消文件名 , STATS = percentage , REPLACE 41數(shù)據(jù)庫還原例將ba

13、ckup.bak備份文件中的備份號為1的完整備份恢復到數(shù)據(jù)庫student中。方法一:使用SQL命令RESTORE DATABASE student FROM DISK =c:dumpbackup.bak WITH FILE = 1方法二:使用Management Studio恢復數(shù)據(jù)庫42數(shù)據(jù)庫還原2事務(wù)日志還原RESTORE LOG 數(shù)據(jù)庫名 FROM ,.n WITH , FILE = 備份文件號 , MOVE 邏輯文件名 TO 操作系統(tǒng)文件名 ,.n , RECOVERY | NORECOVERY | STANDBY = standby_ , STATS = percentage ,

14、STOPAT = 日期時間 | , STOPATMARK = 標記名 AFTER datetime | , STOPBEFOREMARK = 標記名 AFTER datetime , REPLACE 43數(shù)據(jù)庫還原例在備份過程中,可以產(chǎn)生備份序列。假設(shè)有下列事件序列。(1)創(chuàng)建備份設(shè)備studenttest。物理文件名稱為c: dumpstudenttest.bak。(2) 完整備份“student”數(shù)據(jù)庫到設(shè)備studenttest。(3) 向某個表中插入一條記錄(4)備份數(shù)據(jù)庫事務(wù)日志到設(shè)備studenttest。(5)利用第2步所得的完整備份,恢復到插入記錄前的狀態(tài)。(6)利用第4步所得的事務(wù)日志,恢復到插入記錄后的狀態(tài)。44分離和附加數(shù)據(jù)庫分離數(shù)據(jù)庫分離數(shù)據(jù)庫是指將數(shù)據(jù)庫從 SQL Server 實例中刪除,但使數(shù)據(jù)庫在其數(shù)據(jù)文件和事務(wù)日志文件中保持不變。之后,就可以使用這些文件將數(shù)據(jù)庫附加到任何 SQL Server 實例,包括分離該數(shù)據(jù)庫的服務(wù)器。例從SQL Server 實例分離數(shù)據(jù)庫student。方法一:使用Management Studio圖形工具方法二:使用SQL命令sp_det

溫馨提示

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

評論

0/150

提交評論