版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫技術(shù)與應(yīng)用1數(shù)據(jù)庫保護(hù)事務(wù)的基本概念 并發(fā)控制數(shù)據(jù)庫備份與恢復(fù)2并發(fā)控制 并發(fā)控制概述 并發(fā)控制措施封鎖協(xié)議死鎖并發(fā)調(diào)度的可串行性兩段鎖協(xié)議 3并發(fā)控制概述數(shù)據(jù)庫中的數(shù)據(jù)是一個(gè)共享的資源,因此會有很多用戶同時(shí)使用數(shù)據(jù)庫中的數(shù)據(jù),在多用戶系統(tǒng)中,可能同時(shí)運(yùn)行著多個(gè)事務(wù),而事務(wù)的運(yùn)行需要時(shí)間,并且事務(wù)中的操作是在一定的數(shù)據(jù)上進(jìn)行的。當(dāng)系統(tǒng)中同時(shí)有多個(gè)事務(wù)在運(yùn)行時(shí),特別是當(dāng)這些事務(wù)是對同一段數(shù)據(jù)進(jìn)行操作時(shí),彼此之間就有可能產(chǎn)生相互干擾的情況。 4并發(fā)事務(wù)的相互干擾示例A、B兩個(gè)訂票點(diǎn)恰巧同時(shí)辦理同一架航班的飛機(jī)訂票業(yè)務(wù)。設(shè)其操作過程及順序如下: A訂票點(diǎn)(事務(wù)A)讀出航班目前的機(jī)票余額數(shù),假設(shè)
2、為10張;B訂票點(diǎn)(事務(wù)B)讀出航班目前的機(jī)票余額數(shù),也為為10張;A訂票點(diǎn)訂出6張機(jī)票,修改機(jī)票余額為106 4,并將4寫回到數(shù)據(jù)庫中;B訂票點(diǎn)訂出5張機(jī)票,修改機(jī)票余額為105 5,并將5寫回到數(shù)據(jù)庫中;5丟失數(shù)據(jù)修改 6讀“臟”數(shù)據(jù) 7不可重復(fù)讀 8產(chǎn)生“幽靈”數(shù)據(jù) 屬于不可重復(fù)讀的范疇。指當(dāng)事務(wù)T1按一定條件從數(shù)據(jù)庫中讀取了某些數(shù)據(jù)記錄后,事務(wù)T2刪除了其中的部分記錄,或者在其中添加了部分記錄,則當(dāng)T1再次按相同條件讀取數(shù)據(jù)時(shí),發(fā)現(xiàn)其中莫名其妙地少了(對刪除)或多了(對插入)一些記錄。這樣的數(shù)據(jù)對T1來說就是“幽靈”數(shù)據(jù)或稱“幻影”數(shù)據(jù)。 9并發(fā)控制措施控制目標(biāo):事務(wù)運(yùn)行過程中盡可能隔
3、離事務(wù)外操作對本事務(wù)數(shù)據(jù)環(huán)境的影響。在數(shù)據(jù)庫環(huán)境下,并發(fā)控制的主要方式是封鎖機(jī)制,即加鎖(Locking),加鎖是一種并行控制技術(shù),是用來調(diào)整對共享目標(biāo),如DB中共享的記錄并行存取的技術(shù)。10基本的封鎖類型共享鎖:指對于讀操作(檢索)來說,可以多個(gè)事務(wù)同時(shí)獲得共享鎖,但阻止其它事務(wù)對已獲得共享鎖的數(shù)據(jù)進(jìn)行排它封鎖。 排它鎖:一旦一事務(wù)獲得了對某一數(shù)據(jù)的排它鎖,則任何其它事務(wù)再不能對該數(shù)據(jù)進(jìn)行排它封鎖,其它事務(wù)只能進(jìn)入等待狀態(tài),直到第一個(gè)事務(wù)撤銷了對該數(shù)據(jù)的封鎖。11排它鎖和共享鎖的控制方式 T2T1XS無鎖XNo NoYesSNoYesYes-YesYesYes12封鎖協(xié)議 在運(yùn)用X鎖和S鎖對
4、數(shù)據(jù)對象進(jìn)行加鎖時(shí),還需要約定一些規(guī)則,如何時(shí)申請X鎖或S鎖、持鎖時(shí)間、何時(shí)釋放鎖等。稱這些規(guī)則為封鎖協(xié)議或加鎖協(xié)議(Locking Protocol)。對封鎖方式規(guī)定不同的規(guī)則,就形成了各種不同級別的封鎖協(xié)議。不同級別的封鎖協(xié)議達(dá)到的系統(tǒng)一致性級別不同。13一級封鎖協(xié)議 對事務(wù)T要修改的數(shù)據(jù)加X鎖,直到事務(wù)結(jié)束(包括正常結(jié)束和非正常結(jié)束)時(shí)才釋放。一級封鎖協(xié)議可以防止丟失修改,并保證事務(wù)T是可恢復(fù)的 但不能保證可重復(fù)讀和不讀“臟”數(shù)據(jù)。14一級封鎖協(xié)議示例15二級封鎖協(xié)議一級封鎖協(xié)議加上對事務(wù)T對要讀取的數(shù)據(jù)加S鎖,讀完后即釋放S鎖。除了可以防止丟失修改外,還可以防止讀“臟”數(shù)據(jù)。但不能保證
5、可重復(fù)讀數(shù)據(jù)。 16二級封鎖協(xié)議示例17三級封鎖協(xié)議一級封鎖協(xié)議加上事務(wù)T對要讀取的數(shù)據(jù)加S鎖,并直到事務(wù)結(jié)束才釋放。除了可以防止丟失修改和不讀“臟”數(shù)據(jù)之外,還進(jìn)一步防止了不可重復(fù)讀。 18三級封鎖協(xié)議示例19不同級別的封鎖協(xié)議總結(jié) 20死鎖 兩個(gè)事務(wù)相互等待對方先釋放資源,則會造成死鎖。21預(yù)防死鎖的方法一次封鎖法一次封鎖法是每個(gè)事務(wù)一次將所有要使用的數(shù)據(jù)全部加鎖。順序封鎖法順序封鎖法是預(yù)先對數(shù)據(jù)對象規(guī)定一個(gè)封鎖順序,所有事務(wù)都按這個(gè)順序封鎖。 22并發(fā)調(diào)度的可串行性 多個(gè)事務(wù)的并發(fā)執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與按某一順序的串行執(zhí)行的結(jié)果相同,則我們稱這種調(diào)度為可串行化的調(diào)度??纱行允遣?/p>
6、發(fā)事務(wù)正確性的準(zhǔn)則,按這個(gè)準(zhǔn)則,一個(gè)給定的并發(fā)調(diào)度,當(dāng)且僅當(dāng)它是可串行化的時(shí),才認(rèn)為是正確的調(diào)度。 23兩段鎖協(xié)議 兩段鎖協(xié)議是實(shí)現(xiàn)可串行化調(diào)度的充分條件??梢詫⒚總€(gè)事務(wù)分成兩個(gè)時(shí)期:申請封鎖期和釋放封鎖期,申請期申請要進(jìn)行的封鎖,釋放期釋放所占有的封鎖。在申請期不允許釋放任何鎖,在釋放期不允許申請任何鎖,這就是兩段式封鎖。24數(shù)據(jù)庫備份與恢復(fù) 數(shù)據(jù)庫故障的種類 數(shù)據(jù)庫備份 數(shù)據(jù)庫恢復(fù) 25數(shù)據(jù)庫故障的種類事務(wù)內(nèi)部的故障 事務(wù)故障意味著事務(wù)沒有達(dá)到預(yù)期的終點(diǎn)(COMMIT或ROLLBACK),因此,數(shù)據(jù)庫可能處于不正確的狀態(tài)。 系統(tǒng)故障 指造成系統(tǒng)停止運(yùn)轉(zhuǎn)、系統(tǒng)要重啟的故障。例如,硬件錯(cuò)誤(C
7、PU故障)、操作系統(tǒng)故障、突然停電等。 其它故障介質(zhì)故障或由計(jì)算機(jī)病毒引起的故障或破壞。 26數(shù)據(jù)庫備份 指定期或不定期地對數(shù)據(jù)庫數(shù)據(jù)進(jìn)行復(fù)制??梢詮?fù)制到本地機(jī)器上,也可以復(fù)制到其它機(jī)器上。備份的介質(zhì)可以是磁帶也可以是磁盤,但通常選用磁帶。是保證系統(tǒng)安全的一項(xiàng)重要措施。在制定備份策略時(shí),應(yīng)考慮如下幾個(gè)方面:備份的內(nèi)容 備份頻率 27數(shù)據(jù)庫恢復(fù) 1恢復(fù)策略事務(wù)故障的恢復(fù) 系統(tǒng)故障的恢復(fù) 介質(zhì)故障的恢復(fù) 2恢復(fù)方法利用備份技術(shù)利用事務(wù)日志利用鏡像技術(shù) 28基于SQL SERVER 2008備份與恢復(fù)數(shù)據(jù)庫備份計(jì)劃備份內(nèi)容備份類型完整備份事務(wù)日志備份差異備份備份組件備份頻率備份存儲介質(zhì)數(shù)據(jù)庫恢復(fù)29
8、故障還原模型1簡單恢復(fù)模型2完整恢復(fù)模型3大容量日志恢復(fù)模型30基于SQL SERVER 2008備份與恢復(fù)備份和恢復(fù)的流程創(chuàng)建備份設(shè)備進(jìn)行數(shù)據(jù)庫的完整備份、差異備份、日志備份、文件和文件組備份恢復(fù)數(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ù)進(jìn)行備份,該日志是從上次成功執(zhí)行 LOG 備份到當(dāng)前日志的末尾。它僅對數(shù)據(jù)庫事務(wù)日志進(jìn)行備份,所以其需要的磁盤空間和備份時(shí)間都比數(shù)據(jù)庫備份少得多。38截?cái)嗍聞?wù)日志1)格式BACKUP LOG 數(shù)據(jù)庫名 WITH NO_LOG2)功能如果從來沒有從事務(wù)日志刪除日志記錄,邏輯日志就會一直增長,直到填滿容納物理日志文件的磁盤上的所有可用空間。在某個(gè)即時(shí)點(diǎn),必須刪除恢復(fù)或還原數(shù)據(jù)庫時(shí)不再需要的舊日志記錄,以便為新日志記錄騰出空間。刪除這些日志記錄以減小邏輯
12、日志的大小的過程稱為截?cái)嗳罩尽?9截?cái)嗍聞?wù)日志例截?cái)唷皊tudent”事務(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的完整備份恢復(fù)到數(shù)據(jù)庫student中。方法一:使用SQL命令RESTORE DATABASE student FROM DISK =c:dumpbackup.bak WITH FILE = 1方法二:使用Management Studio恢復(fù)數(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 = 日期時(shí)間 | , STOPATMARK = 標(biāo)記名 AFTER datetime | , STOPBEFOREMARK = 標(biāo)記名 AFTER datetime , REPLACE 43數(shù)據(jù)庫還原例在備份過程中,可以產(chǎn)生備份序列。假設(shè)有下列事件序列。(1)創(chuàng)建備份設(shè)備studenttest。物理文件名稱為c: dumpstudenttest.bak。(2) 完整備份“student”數(shù)據(jù)庫到設(shè)備studenttest。(3) 向某個(gè)表中插入一條記錄(4)備份數(shù)據(jù)庫事務(wù)日志到設(shè)備studenttest。(5)利用第2步所得的完整備份,恢復(fù)到插入記錄前的狀態(tài)。(6)利用第4步所得的事務(wù)日志,恢復(fù)到插入記錄后的狀態(tài)。44分離和附加數(shù)據(jù)庫分離數(shù)據(jù)庫分離數(shù)據(jù)庫是指將數(shù)據(jù)庫從 SQL Server 實(shí)例中刪除,但使數(shù)據(jù)庫在其數(shù)據(jù)文件和事務(wù)日志文件中保持不變。之后,就可以使用這些文件將數(shù)據(jù)庫附加到任何 SQL Server 實(shí)例,包括分離該數(shù)據(jù)庫的服務(wù)器。例從SQL Server 實(shí)例分離數(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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版國際金融風(fēng)險(xiǎn)管理合同范本3篇
- 二零二五版建筑工地勞務(wù)用工及社會保障服務(wù)合同范本3篇
- 二零二五年酒店客房協(xié)議價(jià)優(yōu)惠合作合同3篇
- 2024政府采購合同環(huán)境與安全監(jiān)督協(xié)議3篇
- 2025年新型城鎮(zhèn)化項(xiàng)目水電設(shè)施安裝施工合同3篇
- 二零二五版板房租賃與租賃期滿資產(chǎn)評估與轉(zhuǎn)讓合同3篇
- 二零二五年度出租車司機(jī)服務(wù)規(guī)范與客戶滿意度提升合同3篇
- 二零二五年透水混凝土工程驗(yàn)收與評估合同2篇
- 二零二五年智能交通管理系統(tǒng)采購合同3篇
- 二零二五版房屋代理租賃資產(chǎn)評估合同3篇
- 蓋洛普Q12解讀和實(shí)施完整版
- 2023年Web前端技術(shù)試題
- GB/T 20840.8-2007互感器第8部分:電子式電流互感器
- GB/T 14864-2013實(shí)心聚乙烯絕緣柔軟射頻電纜
- 品牌策劃與推廣-項(xiàng)目5-品牌推廣課件
- 信息學(xué)奧賽-計(jì)算機(jī)基礎(chǔ)知識(完整版)資料
- 發(fā)煙硫酸(CAS:8014-95-7)理化性質(zhì)及危險(xiǎn)特性表
- 數(shù)字信號處理(課件)
- 公路自然災(zāi)害防治對策課件
- 耳鳴中醫(yī)臨床路徑
- 安徽身份證號碼前6位
評論
0/150
提交評論