數(shù)據(jù)庫(kù)事務(wù)管理_第1頁(yè)
數(shù)據(jù)庫(kù)事務(wù)管理_第2頁(yè)
數(shù)據(jù)庫(kù)事務(wù)管理_第3頁(yè)
數(shù)據(jù)庫(kù)事務(wù)管理_第4頁(yè)
數(shù)據(jù)庫(kù)事務(wù)管理_第5頁(yè)
已閱讀5頁(yè),還剩71頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、事務(wù)管理事務(wù)管理事務(wù)管理 l問(wèn)題的引入問(wèn)題的引入 l 事務(wù)事務(wù)l 并發(fā)控制并發(fā)控制 l數(shù)據(jù)庫(kù)恢復(fù)數(shù)據(jù)庫(kù)恢復(fù)問(wèn)題的引入l多用戶(hù)同時(shí)操作數(shù)據(jù)庫(kù)多用戶(hù)同時(shí)操作數(shù)據(jù)庫(kù)l系統(tǒng)在執(zhí)行用戶(hù)的請(qǐng)求時(shí)出現(xiàn)故障系統(tǒng)在執(zhí)行用戶(hù)的請(qǐng)求時(shí)出現(xiàn)故障例如:帳戶(hù)例如:帳戶(hù)A轉(zhuǎn)帳給帳戶(hù)轉(zhuǎn)帳給帳戶(hù)B10000元。元。UPDATE YHZH SET 余額余額=余額余額-10000 WHERE 帳號(hào)帳號(hào)=AUPDATE YHZH SET 余額余額=余額余額+10000 WHERE 帳號(hào)帳號(hào)=B 事務(wù)的基本概念事務(wù)的基本概念l事務(wù)(事務(wù)(Transaction)l用戶(hù)定義的一個(gè)對(duì)數(shù)據(jù)庫(kù)讀寫(xiě)用戶(hù)定義的一個(gè)對(duì)數(shù)據(jù)庫(kù)讀寫(xiě)操作序列操作序列l(wèi)一

2、個(gè)一個(gè)不可分割不可分割的工作單位的工作單位l在關(guān)系數(shù)據(jù)庫(kù)中,事務(wù)可以是一條、一組在關(guān)系數(shù)據(jù)庫(kù)中,事務(wù)可以是一條、一組SQL語(yǔ)語(yǔ)句,或整個(gè)程序。句,或整個(gè)程序。l事務(wù)和程序的區(qū)別?事務(wù)和程序的區(qū)別?l程序包含多個(gè)事務(wù)程序包含多個(gè)事務(wù) 事務(wù)的性質(zhì)事務(wù)的性質(zhì)l原子性原子性(Atomicity)l事務(wù)中的操作要么都做,要么都不做 ( (All or None)All or None)l一致性一致性(Consistency)l事務(wù)執(zhí)行的結(jié)果必須使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)l與原子性密切相關(guān)l隔離性隔離性(Isolation)l并發(fā)執(zhí)行的各事務(wù)不能相互干擾l持續(xù)性持續(xù)性/永久性永久性(Du

3、rability)l事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)的更新不再受后繼操作或故障的影響 DBMS中事務(wù)處理必須保證其中事務(wù)處理必須保證其ACID特性,這樣才能保證數(shù)據(jù)庫(kù)中數(shù)特性,這樣才能保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的安全和正確。據(jù)的安全和正確。銀行轉(zhuǎn)帳:從帳號(hào)銀行轉(zhuǎn)帳:從帳號(hào)A中取出一萬(wàn)元,存入帳號(hào)中取出一萬(wàn)元,存入帳號(hào)B。l定義一個(gè)事務(wù),該事務(wù)包括兩個(gè)操作定義一個(gè)事務(wù),該事務(wù)包括兩個(gè)操作l這兩個(gè)操作要么全做,要么全不做這兩個(gè)操作要么全做,要么全不做l全做或者全不做,數(shù)據(jù)庫(kù)都處于一致性狀態(tài)。全做或者全不做,數(shù)據(jù)庫(kù)都處于一致性狀態(tài)。l如果只做一個(gè)操作,數(shù)據(jù)庫(kù)就處于不一致性狀態(tài)如果只做一個(gè)操作,數(shù)據(jù)庫(kù)就處于不一致性狀態(tài)

4、。 B=B+1 A=A-1BA 事務(wù)的性質(zhì)事務(wù)的性質(zhì)T1的修改被的修改被T2覆蓋了!覆蓋了! 讀讀A=16 AA-3寫(xiě)回寫(xiě)回A=13 讀讀A=16 AA-1 寫(xiě)回寫(xiě)回A=15 T2T1 事務(wù)的性質(zhì)事務(wù)的性質(zhì) 事務(wù)的基本概念事務(wù)的基本概念l事務(wù)的開(kāi)始和結(jié)束可以由用戶(hù)顯式控制。事務(wù)的開(kāi)始和結(jié)束可以由用戶(hù)顯式控制。lSQL定義事務(wù)的語(yǔ)句定義事務(wù)的語(yǔ)句lBegin transactionBegin transaction( (事務(wù)開(kāi)始事務(wù)開(kāi)始) )lCommit transaction Commit transaction ( (事務(wù)提交,正常結(jié)束,將更新結(jié)事務(wù)提交,正常結(jié)束,將更新結(jié)果寫(xiě)入磁盤(pán)果寫(xiě)入

5、磁盤(pán)) )lRollback transactionRollback transaction( (事務(wù)回滾,撤銷(xiāo)事務(wù)中所有已完事務(wù)回滾,撤銷(xiāo)事務(wù)中所有已完成的更新成的更新) )lSave transactionSave transaction(保存點(diǎn),可以只撤消部分事務(wù))保存點(diǎn),可以只撤消部分事務(wù)) 事務(wù)的基本概念事務(wù)的基本概念l顯式定義方式顯式定義方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 語(yǔ)句語(yǔ)句1 SQL 語(yǔ)句語(yǔ)句1 SQL 語(yǔ)句語(yǔ)句2 SQL 語(yǔ)句語(yǔ)句2 。 。 COMMIT ROLLBACKCOMMIT事務(wù)正常結(jié)束事務(wù)正常結(jié)束 提交提交事務(wù)的

6、所有操作(事務(wù)的所有操作(讀讀+更新更新)事務(wù)中所有對(duì)數(shù)據(jù)庫(kù)的更新事務(wù)中所有對(duì)數(shù)據(jù)庫(kù)的更新永久永久生效生效ROLLBACK事務(wù)異常終止事務(wù)異常終止l事務(wù)運(yùn)行的過(guò)程中發(fā)生了故障,不能繼續(xù)執(zhí)行,回滾事事務(wù)運(yùn)行的過(guò)程中發(fā)生了故障,不能繼續(xù)執(zhí)行,回滾事務(wù)的所有務(wù)的所有更新更新操作操作l事務(wù)回滾到事務(wù)回滾到開(kāi)始開(kāi)始時(shí)的狀態(tài)時(shí)的狀態(tài) 事務(wù)的基本概念事務(wù)的基本概念事務(wù)的基本概念事務(wù)的基本概念l隱含事務(wù)與自動(dòng)提交隱含事務(wù)與自動(dòng)提交 ALTER INSERT CREATE DELETE DROP SELECT UPDATE TRUNCATE TABEL例:刪除倉(cāng)庫(kù)例:刪除倉(cāng)庫(kù)“WH1”,并將職工并將職工T表當(dāng)中

7、所有在表當(dāng)中所有在“WH1”倉(cāng)庫(kù)中職工記錄刪除。倉(cāng)庫(kù)中職工記錄刪除。事務(wù)案例事務(wù)案例BEGIN TRANSACTION MYDELDELETE FROM 倉(cāng)庫(kù)倉(cāng)庫(kù)TWHERE 倉(cāng)庫(kù)號(hào)倉(cāng)庫(kù)號(hào)=WH1DELETE FROM 職工職工TWHERE 倉(cāng)庫(kù)號(hào)倉(cāng)庫(kù)號(hào)=WH1IF ERROR0ROLLBACK TRANSACTION MYDELELSECOMMIT TRANSACTION MYDELl恢復(fù)機(jī)制與并發(fā)控制機(jī)制的提出恢復(fù)機(jī)制與并發(fā)控制機(jī)制的提出l事務(wù)在運(yùn)行過(guò)程中因某種故障被強(qiáng)行終止,數(shù)據(jù)庫(kù)一致性被破壞,需進(jìn)行恢復(fù)。l多個(gè)事務(wù)并行運(yùn)行時(shí),不同事務(wù)的各種操作交叉進(jìn)行,為保證各事務(wù)的執(zhí)行互不干擾,需進(jìn)

8、行并發(fā)控制。l事務(wù)是恢復(fù)和并發(fā)控制的基本單位事務(wù)是恢復(fù)和并發(fā)控制的基本單位 事務(wù)的基本概念事務(wù)的基本概念l干擾問(wèn)題干擾問(wèn)題 l解決干擾解決干擾封鎖封鎖 l封鎖不當(dāng)封鎖不當(dāng)死鎖死鎖 l封鎖與隔離級(jí)別封鎖與隔離級(jí)別 并發(fā)控制干擾問(wèn)題l丟失更新問(wèn)題丟失更新問(wèn)題l未提交依賴(lài)未提交依賴(lài)(讀讀“臟臟”數(shù)據(jù)數(shù)據(jù))問(wèn)題問(wèn)題l不一致分析問(wèn)題不一致分析問(wèn)題l幻象讀問(wèn)題幻象讀問(wèn)題丟失更新問(wèn)題l例:例:l旅客旅客A A來(lái)到來(lái)到A A售票處,要買(mǎi)一張售票處,要買(mǎi)一張1515日北京到上海的日北京到上海的1313次直次直達(dá)快速列車(chē)的軟臥車(chē)票,售票員達(dá)快速列車(chē)的軟臥車(chē)票,售票員A A(下稱(chēng)用戶(hù)下稱(chēng)用戶(hù)A A)在終端在終端A

9、A查看剩余票信息;查看剩余票信息; l幾乎在同時(shí),旅客幾乎在同時(shí),旅客B B來(lái)到來(lái)到B B售票處,也要買(mǎi)一張售票處,也要買(mǎi)一張1515日北京日北京到上海的到上海的1313次直達(dá)快速列車(chē)的軟臥車(chē)票,售票員次直達(dá)快速列車(chē)的軟臥車(chē)票,售票員B B(下下稱(chēng)用戶(hù)稱(chēng)用戶(hù)B B)從終端從終端B B查到了同樣的剩余票信息;查到了同樣的剩余票信息; l旅客旅客A A買(mǎi)了一張買(mǎi)了一張1515日日1313次次7 7車(chē)廂車(chē)廂5 5號(hào)下鋪的軟臥票,用戶(hù)號(hào)下鋪的軟臥票,用戶(hù)A A更新剩余票信息并將它存入數(shù)據(jù)庫(kù);更新剩余票信息并將它存入數(shù)據(jù)庫(kù); l這時(shí)用戶(hù)這時(shí)用戶(hù)B B不知道用戶(hù)不知道用戶(hù)A A已經(jīng)將已經(jīng)將1515日日13

10、13次次7 7車(chē)廂車(chē)廂5 5號(hào)下鋪的號(hào)下鋪的軟臥票賣(mài)出,使旅客軟臥票賣(mài)出,使旅客B B也買(mǎi)了一張也買(mǎi)了一張1515日日1313次次7 7車(chē)廂車(chē)廂5 5號(hào)下號(hào)下鋪的軟臥票,用戶(hù)鋪的軟臥票,用戶(hù)B B更新剩余票信息并將它存入數(shù)據(jù)庫(kù)更新剩余票信息并將它存入數(shù)據(jù)庫(kù)(重復(fù)了用戶(hù)(重復(fù)了用戶(hù)A A已經(jīng)做過(guò)的更新)。已經(jīng)做過(guò)的更新)。 總的效果:總的效果:1515日日1313次次7 7車(chē)廂車(chē)廂5 5號(hào)下鋪的軟臥票號(hào)下鋪的軟臥票賣(mài)了兩次。其原因是:允許了用戶(hù)賣(mài)了兩次。其原因是:允許了用戶(hù)B B在過(guò)時(shí)的在過(guò)時(shí)的信息基礎(chǔ)上去更新數(shù)據(jù)庫(kù),而沒(méi)有迫使他去信息基礎(chǔ)上去更新數(shù)據(jù)庫(kù),而沒(méi)有迫使他去看最新的信息。看最新的信息

11、。 丟失更新問(wèn)題 用用SQL術(shù)語(yǔ)描述丟失更新問(wèn)題術(shù)語(yǔ)描述丟失更新問(wèn)題未提交依賴(lài)問(wèn)題 l未提交依賴(lài)問(wèn)題也稱(chēng)為未提交依賴(lài)問(wèn)題也稱(chēng)為讀讀“臟臟”(Dirty Read)數(shù)據(jù)問(wèn)題,查詢(xún)一個(gè)已數(shù)據(jù)問(wèn)題,查詢(xún)一個(gè)已經(jīng)被其他事務(wù)更新、但經(jīng)被其他事務(wù)更新、但尚未提交的元組,將會(huì)尚未提交的元組,將會(huì)引起未提交依賴(lài)問(wèn)題。引起未提交依賴(lài)問(wèn)題。 不一致分析問(wèn)題不一致分析問(wèn)題 l不一致分析問(wèn)題也稱(chēng)為不一致分析問(wèn)題也稱(chēng)為不可重復(fù)讀問(wèn)題,很多不可重復(fù)讀問(wèn)題,很多應(yīng)用可能需要校驗(yàn)功能,應(yīng)用可能需要校驗(yàn)功能,這時(shí)往往需要連續(xù)兩次這時(shí)往往需要連續(xù)兩次或多次讀數(shù)據(jù)進(jìn)行校驗(yàn)或多次讀數(shù)據(jù)進(jìn)行校驗(yàn)和分析,結(jié)果由于其他和分析,結(jié)果由于其他

12、事務(wù)的干擾,使得前后事務(wù)的干擾,使得前后結(jié)果不一致,從而產(chǎn)生結(jié)果不一致,從而產(chǎn)生校驗(yàn)錯(cuò)誤(即不一致的校驗(yàn)錯(cuò)誤(即不一致的分析)。分析)。 幻象讀問(wèn)題幻象讀問(wèn)題 l幻象讀問(wèn)題與不一致分析問(wèn)題有關(guān),當(dāng)事務(wù)幻象讀問(wèn)題與不一致分析問(wèn)題有關(guān),當(dāng)事務(wù)A讀數(shù)據(jù)時(shí),事務(wù)讀數(shù)據(jù)時(shí),事務(wù)B在對(duì)同一個(gè)關(guān)系進(jìn)行插入或在對(duì)同一個(gè)關(guān)系進(jìn)行插入或刪除操作,這時(shí)事務(wù)刪除操作,這時(shí)事務(wù)A再讀同一條件的元組時(shí),再讀同一條件的元組時(shí),會(huì)發(fā)現(xiàn)神秘地多出了一些元組或丟失了一些元會(huì)發(fā)現(xiàn)神秘地多出了一些元組或丟失了一些元組,把這種現(xiàn)象稱(chēng)作幻象讀。組,把這種現(xiàn)象稱(chēng)作幻象讀。 可串行性l各單個(gè)事務(wù)如能將數(shù)據(jù)庫(kù)從一個(gè)正確狀態(tài)轉(zhuǎn)變各單個(gè)事務(wù)如能將

13、數(shù)據(jù)庫(kù)從一個(gè)正確狀態(tài)轉(zhuǎn)變?yōu)榱硪粋€(gè)正確狀態(tài),則認(rèn)為該事務(wù)是正確的;為另一個(gè)正確狀態(tài),則認(rèn)為該事務(wù)是正確的;l按任何一個(gè)串行順序依次執(zhí)行多個(gè)事務(wù)是正確按任何一個(gè)串行順序依次執(zhí)行多個(gè)事務(wù)是正確的。的。l事物交叉過(guò)程是正確的,當(dāng)且僅當(dāng)其與串行執(zhí)事物交叉過(guò)程是正確的,當(dāng)且僅當(dāng)其與串行執(zhí)行過(guò)程等價(jià),則事務(wù)是可串行化的。行過(guò)程等價(jià),則事務(wù)是可串行化的??纱行岳樱簝蓚€(gè)事務(wù):初值:例子:兩個(gè)事務(wù):初值:A=10,B=10。T1:SELECT A UPDATE A=A-5 SELECT B UPDATE B=B+5T2:SELECT B UPDATE B=B-5可串行性T1: SELECT A UPDATE

14、A=A-5 SELECT B UPDATE B=B+5 T2: SELECT B UPDATE B=B-5可串行性T1: SELECT A UPDATE A=A-5 SELECT B UPDATE B=B+5 T2: SELECT B UPDATE B=B-5可串行性T1:SELECT AUPDATE A=A-5SELECT BUPDATE B=B+5T2:SELECT BUPDATE B=B-5可串行性T1:SELECT AUPDATE A=A-5SELECT BUPDATE B=B+5T2:SELECT BUPDATE B=B-5不可串行化不可串行化封鎖 l封鎖的基本技術(shù)封鎖的基本技術(shù) l

15、封鎖機(jī)制封鎖機(jī)制 lSQL Server中與封鎖有關(guān)的命令中與封鎖有關(guān)的命令 l封鎖粒度封鎖粒度 l意向鎖意向鎖 封鎖的基本技術(shù)封鎖的基本技術(shù)l當(dāng)需要查詢(xún)或更新數(shù)據(jù)時(shí),先對(duì)數(shù)據(jù)進(jìn)行封鎖,以避免當(dāng)需要查詢(xún)或更新數(shù)據(jù)時(shí),先對(duì)數(shù)據(jù)進(jìn)行封鎖,以避免來(lái)自其他事務(wù)的干擾。針對(duì)不同的干擾問(wèn)題可以有不同來(lái)自其他事務(wù)的干擾。針對(duì)不同的干擾問(wèn)題可以有不同的封鎖機(jī)制。的封鎖機(jī)制。 l以丟失更新問(wèn)題為例,實(shí)施封鎖的基本思想是:當(dāng)一個(gè)以丟失更新問(wèn)題為例,實(shí)施封鎖的基本思想是:當(dāng)一個(gè)用戶(hù)對(duì)一個(gè)表或記錄進(jìn)行更新時(shí),封鎖該表或記錄,使用戶(hù)對(duì)一個(gè)表或記錄進(jìn)行更新時(shí),封鎖該表或記錄,使其他用戶(hù)不能在同一時(shí)刻更新相同的表或記錄,迫

16、使其其他用戶(hù)不能在同一時(shí)刻更新相同的表或記錄,迫使其他用戶(hù)在更新后的基礎(chǔ)上(而不是在更新前的基礎(chǔ)上)他用戶(hù)在更新后的基礎(chǔ)上(而不是在更新前的基礎(chǔ)上)再實(shí)施另外的更新操作。再實(shí)施另外的更新操作。 封鎖的基本技術(shù)封鎖的基本技術(shù)實(shí)施封鎖以后的事件進(jìn)程實(shí)施封鎖以后的事件進(jìn)程封鎖機(jī)制封鎖機(jī)制 l共享封鎖共享封鎖 l獨(dú)占封鎖獨(dú)占封鎖 l更新封鎖更新封鎖 有些封鎖在執(zhí)行完相應(yīng)操作后就自動(dòng)釋放封鎖,有些有些封鎖在執(zhí)行完相應(yīng)操作后就自動(dòng)釋放封鎖,有些封鎖則保持到事務(wù)結(jié)束(提交或撤消)時(shí)才釋放(無(wú)論如封鎖則保持到事務(wù)結(jié)束(提交或撤消)時(shí)才釋放(無(wú)論如何,所有的封鎖都會(huì)在事務(wù)結(jié)束時(shí)自動(dòng)釋放)。何,所有的封鎖都會(huì)在事

17、務(wù)結(jié)束時(shí)自動(dòng)釋放)。 共享封鎖共享封鎖 l共享封鎖是為讀操作設(shè)置的一種封鎖,所以也共享封鎖是為讀操作設(shè)置的一種封鎖,所以也稱(chēng)作讀封鎖,或簡(jiǎn)稱(chēng)稱(chēng)作讀封鎖,或簡(jiǎn)稱(chēng)S鎖,目的是想讀到一組不鎖,目的是想讀到一組不變的數(shù)據(jù),也就是在讀數(shù)據(jù)的過(guò)程中,不允許變的數(shù)據(jù),也就是在讀數(shù)據(jù)的過(guò)程中,不允許其他用戶(hù)對(duì)該數(shù)據(jù)進(jìn)行任何修改操作。這種封其他用戶(hù)對(duì)該數(shù)據(jù)進(jìn)行任何修改操作。這種封鎖可以保證最大的并發(fā)性,任何數(shù)量的用戶(hù)都鎖可以保證最大的并發(fā)性,任何數(shù)量的用戶(hù)都可以同時(shí)對(duì)同樣的數(shù)據(jù)施加這種共享鎖。已經(jīng)可以同時(shí)對(duì)同樣的數(shù)據(jù)施加這種共享鎖。已經(jīng)實(shí)施共享鎖的表拒絕來(lái)自其他事務(wù)的獨(dú)占封鎖實(shí)施共享鎖的表拒絕來(lái)自其他事務(wù)的獨(dú)占

18、封鎖和更新封鎖。和更新封鎖。 獨(dú)占封鎖獨(dú)占封鎖 l獨(dú)占封鎖也叫排他封鎖,它是為修改操作設(shè)置獨(dú)占封鎖也叫排他封鎖,它是為修改操作設(shè)置的一種封鎖,也稱(chēng)為寫(xiě)封鎖,或簡(jiǎn)稱(chēng)為的一種封鎖,也稱(chēng)為寫(xiě)封鎖,或簡(jiǎn)稱(chēng)為X鎖,這鎖,這是最嚴(yán)格的一類(lèi)封鎖。當(dāng)需要對(duì)表實(shí)施插入、是最嚴(yán)格的一類(lèi)封鎖。當(dāng)需要對(duì)表實(shí)施插入、刪除或修改操作時(shí),應(yīng)該使用獨(dú)占封鎖。已經(jīng)刪除或修改操作時(shí),應(yīng)該使用獨(dú)占封鎖。已經(jīng)實(shí)施獨(dú)占封鎖的表,拒絕來(lái)自其他用戶(hù)的任何實(shí)施獨(dú)占封鎖的表,拒絕來(lái)自其他用戶(hù)的任何封鎖。封鎖。更新封鎖更新封鎖 l當(dāng)需要對(duì)一個(gè)記錄或一組記錄進(jìn)行更新時(shí)(只當(dāng)需要對(duì)一個(gè)記錄或一組記錄進(jìn)行更新時(shí)(只是修改,不包括插入和刪除)使用更新封

19、鎖,是修改,不包括插入和刪除)使用更新封鎖,該封鎖的目的是防止其他用戶(hù)在同一時(shí)刻修改該封鎖的目的是防止其他用戶(hù)在同一時(shí)刻修改同一記錄。已經(jīng)實(shí)施更新封鎖的記錄,拒絕來(lái)同一記錄。已經(jīng)實(shí)施更新封鎖的記錄,拒絕來(lái)自其他用戶(hù)的任何封鎖。自其他用戶(hù)的任何封鎖。SQL Server中與封鎖有關(guān)的命令中與封鎖有關(guān)的命令 lSQL Server的封鎖操作是在相關(guān)語(yǔ)句的的封鎖操作是在相關(guān)語(yǔ)句的“WITH ()”子句中完成的,該短子句中完成的,該短語(yǔ)可以在語(yǔ)可以在SELECT、INSERT、UPDATE和和DELETE等語(yǔ)句中指定表級(jí)鎖定的方式和范圍。等語(yǔ)句中指定表級(jí)鎖定的方式和范圍。SQL Server中與封鎖有

20、關(guān)的命令中與封鎖有關(guān)的命令l常用的封鎖關(guān)鍵詞有:常用的封鎖關(guān)鍵詞有:lTABLOCKTABLOCK:對(duì)表施行共享封鎖,在讀完數(shù)據(jù)后立刻釋放對(duì)表施行共享封鎖,在讀完數(shù)據(jù)后立刻釋放封鎖,此類(lèi)封鎖可以避免讀封鎖,此類(lèi)封鎖可以避免讀“臟臟”數(shù)據(jù),但不具有可數(shù)據(jù),但不具有可重復(fù)讀的特性。重復(fù)讀的特性。 lHOLDLOCKHOLDLOCK:與與TABLOCKTABLOCK一起使用,可將共享鎖保留到事一起使用,可將共享鎖保留到事務(wù)完成,而不是在讀完數(shù)據(jù)后立即釋放鎖,這樣可以務(wù)完成,而不是在讀完數(shù)據(jù)后立即釋放鎖,這樣可以保證數(shù)據(jù)的可重復(fù)獨(dú)特性。保證數(shù)據(jù)的可重復(fù)獨(dú)特性。 SQL Server中與封鎖有關(guān)的命令中

21、與封鎖有關(guān)的命令lNOLOCKNOLOCK:不進(jìn)行封鎖,此關(guān)鍵詞僅應(yīng)用于不進(jìn)行封鎖,此關(guān)鍵詞僅應(yīng)用于SELECTSELECT語(yǔ)句,語(yǔ)句,這樣可能會(huì)讀取未提交事務(wù)的數(shù)據(jù),即有可能發(fā)生這樣可能會(huì)讀取未提交事務(wù)的數(shù)據(jù),即有可能發(fā)生“臟臟”讀。讀。 lTABLOCKXTABLOCKX:對(duì)表實(shí)施獨(dú)占封鎖。對(duì)表實(shí)施獨(dú)占封鎖。 lUPDLOCKUPDLOCK:對(duì)表中的指定元組實(shí)施更新封鎖;這時(shí)其他對(duì)表中的指定元組實(shí)施更新封鎖;這時(shí)其他事務(wù)可以對(duì)同一表中的其他元組也實(shí)施更新封鎖,但是事務(wù)可以對(duì)同一表中的其他元組也實(shí)施更新封鎖,但是不允許對(duì)表實(shí)施共享封鎖和獨(dú)占封鎖。不允許對(duì)表實(shí)施共享封鎖和獨(dú)占封鎖。 SQL S

22、erver中與封鎖有關(guān)的命令中與封鎖有關(guān)的命令R(日期日期,車(chē)次車(chē)次,座別座別,座位號(hào)座位號(hào),狀態(tài)狀態(tài)) 狀態(tài)初值為:狀態(tài)初值為:NULLDECLARE d datetime, t char(6), s char(2), n char(10)BEGIN TRANSACTIONSELECT n=座位號(hào)座位號(hào) FROM R WITH (UPDLOCK)WHERE 日期日期 = d AND 車(chē)次車(chē)次 = t AND 座別座別 = s AND 狀態(tài)狀態(tài) IS NULLIF UPDATE R SET 狀態(tài)狀態(tài) = Y WHERE 座位號(hào)座位號(hào) = n AND 日期日期 = d AND 車(chē)次車(chē)次 = t

23、AND 座別座別 = sCOMMIT TRANSACTIONELSEROLLBACK TRANSACTION封鎖粒度封鎖粒度 l封鎖的對(duì)象可以是表、也可以是元組等,我們把封鎖的對(duì)象可以是表、也可以是元組等,我們把封鎖對(duì)象的大小稱(chēng)為封鎖粒度(封鎖對(duì)象的大小稱(chēng)為封鎖粒度(Granularity)。)。l封鎖的對(duì)象可以是邏輯單元(如表和元組等),封鎖的對(duì)象可以是邏輯單元(如表和元組等),也可以是物理單元(如數(shù)據(jù)頁(yè)和數(shù)據(jù)塊等)。也可以是物理單元(如數(shù)據(jù)頁(yè)和數(shù)據(jù)塊等)。l數(shù)據(jù)庫(kù)管理系統(tǒng)一般都具有多粒度鎖定功能,允數(shù)據(jù)庫(kù)管理系統(tǒng)一般都具有多粒度鎖定功能,允許一個(gè)事務(wù)鎖定不同類(lèi)型的資源。許一個(gè)事務(wù)鎖定不同類(lèi)

24、型的資源。 封鎖粒度封鎖粒度l鎖定在較小的粒度(例如行)可以增加并發(fā)操作的性能,鎖定在較小的粒度(例如行)可以增加并發(fā)操作的性能,但系統(tǒng)開(kāi)銷(xiāo)也較大。這是因?yàn)槿绻怄i的粒度小,則意但系統(tǒng)開(kāi)銷(xiāo)也較大。這是因?yàn)槿绻怄i的粒度小,則意味著需要的鎖多,從而需要系統(tǒng)控制更多的鎖。味著需要的鎖多,從而需要系統(tǒng)控制更多的鎖。 l鎖定在較大的粒度(例如表)會(huì)降低操作的并發(fā)性,這鎖定在較大的粒度(例如表)會(huì)降低操作的并發(fā)性,這是因?yàn)殒i定整個(gè)表限制了其他事務(wù)對(duì)表中任意部分進(jìn)行是因?yàn)殒i定整個(gè)表限制了其他事務(wù)對(duì)表中任意部分進(jìn)行訪問(wèn)。封鎖粒度大,則不需要太多的封鎖,由于需要維訪問(wèn)。封鎖粒度大,則不需要太多的封鎖,由于需要

25、維護(hù)的鎖較少,所以系統(tǒng)開(kāi)銷(xiāo)較低。護(hù)的鎖較少,所以系統(tǒng)開(kāi)銷(xiāo)較低。 意向鎖意向鎖 l為了降低封鎖的成本,提高并發(fā)的性能,數(shù)據(jù)庫(kù)為了降低封鎖的成本,提高并發(fā)的性能,數(shù)據(jù)庫(kù)管理系統(tǒng)還支持一種意向鎖(管理系統(tǒng)還支持一種意向鎖(Intention Lock)。)。 l意向鎖表示一種封鎖意向,當(dāng)需要在某些底層資意向鎖表示一種封鎖意向,當(dāng)需要在某些底層資源上(如元組)獲取封鎖時(shí),可以先對(duì)高層資源源上(如元組)獲取封鎖時(shí),可以先對(duì)高層資源(如表)實(shí)施意向鎖。(如表)實(shí)施意向鎖。死鎖死鎖 l產(chǎn)生死鎖的原因產(chǎn)生死鎖的原因 l避免死鎖避免死鎖 l發(fā)現(xiàn)死鎖發(fā)現(xiàn)死鎖l解決死鎖解決死鎖 產(chǎn)生死鎖的原因產(chǎn)生死鎖的原因l右圖示

26、意了兩個(gè)并發(fā)右圖示意了兩個(gè)并發(fā)事務(wù)所發(fā)生事件的序事務(wù)所發(fā)生事件的序列,兩個(gè)程序都為了列,兩個(gè)程序都為了等待對(duì)方釋放數(shù)據(jù)資等待對(duì)方釋放數(shù)據(jù)資源而產(chǎn)生死鎖。源而產(chǎn)生死鎖。 避免死鎖避免死鎖 l相同順序法相同順序法 l所有的用戶(hù)程序約定都按相同的順序來(lái)封鎖表所有的用戶(hù)程序約定都按相同的順序來(lái)封鎖表 l一次封鎖法一次封鎖法 l為了完成一個(gè)事務(wù),一次性封鎖所需要的全部為了完成一個(gè)事務(wù),一次性封鎖所需要的全部表表 避免死鎖的封鎖避免死鎖的封鎖 發(fā)現(xiàn)死鎖發(fā)現(xiàn)死鎖l超時(shí)法超時(shí)法 l即一個(gè)事務(wù)在等待的時(shí)間超過(guò)了規(guī)定的時(shí)限即一個(gè)事務(wù)在等待的時(shí)間超過(guò)了規(guī)定的時(shí)限后就認(rèn)為發(fā)生了死鎖。后就認(rèn)為發(fā)生了死鎖。 l這種方法非

27、常不可靠,如果設(shè)置的等待時(shí)限這種方法非常不可靠,如果設(shè)置的等待時(shí)限長(zhǎng),則不能及時(shí)發(fā)現(xiàn)死鎖;如果設(shè)置的等待長(zhǎng),則不能及時(shí)發(fā)現(xiàn)死鎖;如果設(shè)置的等待時(shí)限短,則可能會(huì)將沒(méi)有發(fā)生死鎖的事務(wù)誤時(shí)限短,則可能會(huì)將沒(méi)有發(fā)生死鎖的事務(wù)誤判為死鎖。判為死鎖。 發(fā)現(xiàn)死鎖發(fā)現(xiàn)死鎖l等待圖法等待圖法 l即通過(guò)有向圖判定事務(wù)是否是即通過(guò)有向圖判定事務(wù)是否是可串行化的,如果是則說(shuō)明沒(méi)可串行化的,如果是則說(shuō)明沒(méi)有發(fā)生死鎖,否則說(shuō)明發(fā)生了有發(fā)生死鎖,否則說(shuō)明發(fā)生了死鎖。死鎖。l具體思路是:用節(jié)點(diǎn)來(lái)表示正具體思路是:用節(jié)點(diǎn)來(lái)表示正在運(yùn)行的事務(wù),用有向邊來(lái)表在運(yùn)行的事務(wù),用有向邊來(lái)表示事務(wù)之間的等待關(guān)系,如右示事務(wù)之間的等待關(guān)系,

28、如右圖所示,如果有向圖中發(fā)現(xiàn)回圖所示,如果有向圖中發(fā)現(xiàn)回路,則說(shuō)明發(fā)生了死鎖。路,則說(shuō)明發(fā)生了死鎖。 解決死鎖解決死鎖l發(fā)現(xiàn)死鎖后解決死鎖的一般發(fā)現(xiàn)死鎖后解決死鎖的一般策略是:自動(dòng)使策略是:自動(dòng)使“年輕年輕”的的事務(wù)(即完成工作量少的事事務(wù)(即完成工作量少的事務(wù))先退回去,然后讓務(wù))先退回去,然后讓“年年老老”的事務(wù)(即完成工作量的事務(wù)(即完成工作量多的事務(wù))先執(zhí)行,等多的事務(wù))先執(zhí)行,等“年年老老”的事務(wù)完成并釋放封鎖的事務(wù)完成并釋放封鎖后,后,“年輕年輕”的事務(wù)再重新的事務(wù)再重新執(zhí)行。執(zhí)行。 隔離級(jí)別l在避免干擾的情況下,適當(dāng)?shù)慕档透綦x級(jí)別,在避免干擾的情況下,適當(dāng)?shù)慕档透綦x級(jí)別,從而提高

29、并發(fā)的操作效率。從而提高并發(fā)的操作效率。l隔離級(jí)別越低,并發(fā)操作效率越高,但是產(chǎn)生隔離級(jí)別越低,并發(fā)操作效率越高,但是產(chǎn)生干擾的可能性也越大。干擾的可能性也越大。l隔離級(jí)別越高,并發(fā)操作效率越低,同時(shí)產(chǎn)生隔離級(jí)別越高,并發(fā)操作效率越低,同時(shí)產(chǎn)生干擾的可能性也越小。干擾的可能性也越小。l在設(shè)計(jì)應(yīng)用時(shí),可以在所能容忍的干擾程度范在設(shè)計(jì)應(yīng)用時(shí),可以在所能容忍的干擾程度范圍內(nèi),盡可能降低隔離級(jí)別,提高應(yīng)用的執(zhí)行圍內(nèi),盡可能降低隔離級(jí)別,提高應(yīng)用的執(zhí)行效率。效率。隔離級(jí)別l未提交讀(未提交讀(READ UNCOMMITTED):最低級(jí)):最低級(jí)別,僅可保證不讀取物理?yè)p壞的數(shù)據(jù),隔離級(jí)別,僅可保證不讀取物

30、理?yè)p壞的數(shù)據(jù),隔離級(jí)別最低。別最低。l提交讀(提交讀(READ COMMITTED):):SQL Server 默認(rèn)級(jí)別,可以保證不讀取默認(rèn)級(jí)別,可以保證不讀取“臟臟”數(shù)據(jù)數(shù)據(jù)l可重復(fù)讀(可重復(fù)讀(REPEATABLE READ):可以保證):可以保證讀一致性,避免不一致分析問(wèn)題。讀一致性,避免不一致分析問(wèn)題。l可串行化(可串行化(SERIALIZABLE):事務(wù)隔離的最):事務(wù)隔離的最高級(jí)別,事務(wù)之間完全隔離。高級(jí)別,事務(wù)之間完全隔離。SQL支持支持4種隔離級(jí)別:種隔離級(jí)別:隔離級(jí)別SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED READ C

31、OMMITTED REPEATABLE READ SERIALIZABLE設(shè)置隔離級(jí)別的命令設(shè)置隔離級(jí)別的命令數(shù)據(jù)庫(kù)恢復(fù)數(shù)據(jù)庫(kù)恢復(fù)l數(shù)據(jù)庫(kù)恢復(fù)概述數(shù)據(jù)庫(kù)恢復(fù)概述l備份備份l恢復(fù)與還原恢復(fù)與還原數(shù)據(jù)庫(kù)恢復(fù)概述數(shù)據(jù)庫(kù)恢復(fù)概述l故障是不可避免的故障是不可避免的l計(jì)算機(jī)硬件故障計(jì)算機(jī)硬件故障l系統(tǒng)軟件和應(yīng)用軟件的錯(cuò)誤系統(tǒng)軟件和應(yīng)用軟件的錯(cuò)誤l操作員的失誤操作員的失誤l惡意的破壞惡意的破壞l故障的影響故障的影響l運(yùn)行事務(wù)非正常中斷運(yùn)行事務(wù)非正常中斷l(xiāng)破壞數(shù)據(jù)庫(kù)破壞數(shù)據(jù)庫(kù)l數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)故障的對(duì)策數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)故障的對(duì)策lDBMS提供恢復(fù)子系統(tǒng)提供恢復(fù)子系統(tǒng)l保證故障發(fā)生后,能把數(shù)據(jù)庫(kù)中的數(shù)據(jù)從錯(cuò)誤狀

32、態(tài)保證故障發(fā)生后,能把數(shù)據(jù)庫(kù)中的數(shù)據(jù)從錯(cuò)誤狀態(tài)恢復(fù)到某種邏輯一致的狀態(tài)恢復(fù)到某種邏輯一致的狀態(tài)l保證事務(wù)保證事務(wù)ACIDl恢復(fù)技術(shù)是衡量系統(tǒng)優(yōu)劣的重要指標(biāo)恢復(fù)技術(shù)是衡量系統(tǒng)優(yōu)劣的重要指標(biāo)數(shù)據(jù)庫(kù)恢復(fù)概述數(shù)據(jù)庫(kù)恢復(fù)概述故障類(lèi)型故障類(lèi)型l事務(wù)故障事務(wù)故障l系統(tǒng)故障系統(tǒng)故障l磁盤(pán)介質(zhì)故障磁盤(pán)介質(zhì)故障事務(wù)故障l什么是事務(wù)故障什么是事務(wù)故障l某個(gè)事務(wù)在運(yùn)行過(guò)程中由于種種原因未運(yùn)行至正常某個(gè)事務(wù)在運(yùn)行過(guò)程中由于種種原因未運(yùn)行至正常終止點(diǎn)就夭折了終止點(diǎn)就夭折了l事務(wù)故障的常見(jiàn)原因事務(wù)故障的常見(jiàn)原因l輸入數(shù)據(jù)有誤輸入數(shù)據(jù)有誤l運(yùn)算溢出運(yùn)算溢出l違反了某些完整性限制違反了某些完整性限制l某些應(yīng)用程序出錯(cuò)某些應(yīng)用程

33、序出錯(cuò)l并行事務(wù)發(fā)生死鎖并行事務(wù)發(fā)生死鎖l。事務(wù)故障的恢復(fù)事務(wù)故障的恢復(fù)l發(fā)生事務(wù)故障時(shí),夭折的事務(wù)可能已把對(duì)數(shù)據(jù)發(fā)生事務(wù)故障時(shí),夭折的事務(wù)可能已把對(duì)數(shù)據(jù)庫(kù)的部分修改寫(xiě)回磁盤(pán)庫(kù)的部分修改寫(xiě)回磁盤(pán)l事務(wù)故障的恢復(fù):撤消該事務(wù)事務(wù)故障的恢復(fù):撤消該事務(wù)l清除該事務(wù)對(duì)數(shù)據(jù)庫(kù)的所有修改,使得這個(gè)事清除該事務(wù)對(duì)數(shù)據(jù)庫(kù)的所有修改,使得這個(gè)事務(wù)象根本沒(méi)有啟動(dòng)過(guò)一樣務(wù)象根本沒(méi)有啟動(dòng)過(guò)一樣系統(tǒng)故障系統(tǒng)故障l什么是系統(tǒng)故障什么是系統(tǒng)故障l整個(gè)系統(tǒng)的正常運(yùn)行突然被破壞整個(gè)系統(tǒng)的正常運(yùn)行突然被破壞l所有正在運(yùn)行的事務(wù)都非正常終止所有正在運(yùn)行的事務(wù)都非正常終止l內(nèi)存中數(shù)據(jù)庫(kù)緩沖區(qū)的信息全部丟失內(nèi)存中數(shù)據(jù)庫(kù)緩沖區(qū)的信息全

34、部丟失l外部存儲(chǔ)設(shè)備上的數(shù)據(jù)未受影響外部存儲(chǔ)設(shè)備上的數(shù)據(jù)未受影響系統(tǒng)故障的恢復(fù)系統(tǒng)故障的恢復(fù)l 清除尚未完成的事務(wù)對(duì)數(shù)據(jù)庫(kù)的所有修改清除尚未完成的事務(wù)對(duì)數(shù)據(jù)庫(kù)的所有修改l系統(tǒng)重新啟動(dòng)時(shí),恢復(fù)程序要強(qiáng)行撤消所有系統(tǒng)重新啟動(dòng)時(shí),恢復(fù)程序要強(qiáng)行撤消所有未完成事務(wù)未完成事務(wù)l將緩沖區(qū)中已完成事務(wù)提交的結(jié)果寫(xiě)入數(shù)據(jù)庫(kù)將緩沖區(qū)中已完成事務(wù)提交的結(jié)果寫(xiě)入數(shù)據(jù)庫(kù)l系統(tǒng)重新啟動(dòng)時(shí),恢復(fù)程序需要重做所有已系統(tǒng)重新啟動(dòng)時(shí),恢復(fù)程序需要重做所有已提交的事務(wù)提交的事務(wù)介質(zhì)故障介質(zhì)故障l硬件故障使存儲(chǔ)在外存中的數(shù)據(jù)部分丟失或全硬件故障使存儲(chǔ)在外存中的數(shù)據(jù)部分丟失或全部丟失部丟失l介質(zhì)故障比前兩類(lèi)故障的可能性小得多,但破介

35、質(zhì)故障比前兩類(lèi)故障的可能性小得多,但破壞性大得多壞性大得多介質(zhì)故障的恢復(fù)介質(zhì)故障的恢復(fù)l裝入數(shù)據(jù)庫(kù)發(fā)生介質(zhì)故障前某個(gè)時(shí)刻的數(shù)據(jù)副裝入數(shù)據(jù)庫(kù)發(fā)生介質(zhì)故障前某個(gè)時(shí)刻的數(shù)據(jù)副本本l重做自此時(shí)始的所有成功事務(wù),將這些事務(wù)已重做自此時(shí)始的所有成功事務(wù),將這些事務(wù)已提交的結(jié)果重新記入數(shù)據(jù)庫(kù)提交的結(jié)果重新記入數(shù)據(jù)庫(kù)備份類(lèi)型備份類(lèi)型l雙機(jī)熱備份雙機(jī)熱備份l雙工備份雙工備份l磁盤(pán)鏡像磁盤(pán)鏡像l冗余磁盤(pán)陣列冗余磁盤(pán)陣列l(wèi)數(shù)據(jù)庫(kù)備份技術(shù)數(shù)據(jù)庫(kù)備份技術(shù)日志日志l對(duì)備份的補(bǔ)充,記錄所有對(duì)數(shù)據(jù)庫(kù)的更新操作。對(duì)備份的補(bǔ)充,記錄所有對(duì)數(shù)據(jù)庫(kù)的更新操作。注意:應(yīng)該將日志和主數(shù)據(jù)庫(kù)安排在不同的存儲(chǔ)設(shè)備上。注意:應(yīng)該將日志和主數(shù)據(jù)

36、庫(kù)安排在不同的存儲(chǔ)設(shè)備上?;謴?fù)類(lèi)型恢復(fù)類(lèi)型l簡(jiǎn)單恢復(fù)簡(jiǎn)單恢復(fù) 允許將數(shù)據(jù)庫(kù)恢復(fù)到最新的備份。允許將數(shù)據(jù)庫(kù)恢復(fù)到最新的備份。l完全恢復(fù)完全恢復(fù) 允許將數(shù)據(jù)庫(kù)恢復(fù)到故障點(diǎn)狀態(tài)。允許將數(shù)據(jù)庫(kù)恢復(fù)到故障點(diǎn)狀態(tài)。ALTER DATABASE 倉(cāng)庫(kù)管理倉(cāng)庫(kù)管理 SET RECOVERY FULL ALTER DATABASE 倉(cāng)庫(kù)管理倉(cāng)庫(kù)管理 SET RECOVERY SIMPLE備份的類(lèi)型備份的類(lèi)型l全備份全備份l增量備份增量備份l事務(wù)日志備份事務(wù)日志備份l文件和文件組備份文件和文件組備份全備份全備份l完整地備份整個(gè)數(shù)據(jù)庫(kù),同時(shí)也備份與該數(shù)據(jù)完整地備份整個(gè)數(shù)據(jù)庫(kù),同時(shí)也備份與該數(shù)據(jù)庫(kù)相關(guān)的事務(wù)處理日志。

37、庫(kù)相關(guān)的事務(wù)處理日志。BACKUP DATABASE database_nameTO DISK |TAPE=physical_backup_device_name例:將例:將“倉(cāng)庫(kù)管理倉(cāng)庫(kù)管理”數(shù)據(jù)庫(kù)完全備份到數(shù)據(jù)庫(kù)完全備份到H盤(pán)根目錄盤(pán)根目錄下。下。BACKUP DATABASE 倉(cāng)庫(kù)管理倉(cāng)庫(kù)管理TO DISK =H:CKGL.BAK增量備份增量備份l只備份自上次數(shù)據(jù)庫(kù)備份后發(fā)生更改的數(shù)據(jù)。只備份自上次數(shù)據(jù)庫(kù)備份后發(fā)生更改的數(shù)據(jù)。BACKUP DATABASE database_nameTO DISK |TAPE=physical_backup_device_nameWITH DIFFERE

38、NTIAL例:將例:將“倉(cāng)庫(kù)管理倉(cāng)庫(kù)管理”數(shù)據(jù)庫(kù)增量備份到數(shù)據(jù)庫(kù)增量備份到H盤(pán)根目錄下。盤(pán)根目錄下。BACKUP DATABASE 倉(cāng)庫(kù)管理倉(cāng)庫(kù)管理TO DISK =H:CKGL1.BAKWITH DIFFERENTIAL注:注: 增量備份一定是在全備份的基礎(chǔ)上進(jìn)行的,在一次全增量備份一定是在全備份的基礎(chǔ)上進(jìn)行的,在一次全備份后可以連續(xù)進(jìn)行增量備份。備份后可以連續(xù)進(jìn)行增量備份。 增量備份會(huì)增加備份管理的難度。增量備份會(huì)增加備份管理的難度。增量備份增量備份事務(wù)日志備份事務(wù)日志備份l事務(wù)日志備份序列提供了連續(xù)的事務(wù)信息鏈,可支事務(wù)日志備份序列提供了連續(xù)的事務(wù)信息鏈,可支持從全備份,增量備份或文件備

39、份進(jìn)行快速恢復(fù)。持從全備份,增量備份或文件備份進(jìn)行快速恢復(fù)。BACKUP LOG database_nameTO DISK |TAPE=physical_backup_device_name例:將例:將“倉(cāng)庫(kù)管理倉(cāng)庫(kù)管理”數(shù)據(jù)庫(kù)的事務(wù)日志備份到數(shù)據(jù)庫(kù)的事務(wù)日志備份到H盤(pán)盤(pán)根目錄下。根目錄下。BACKUP LOG 倉(cāng)庫(kù)管理倉(cāng)庫(kù)管理TO DISK =H:CKGLLOG.BAK注:簡(jiǎn)單恢復(fù)模型不允許備份事務(wù)日志。注:簡(jiǎn)單恢復(fù)模型不允許備份事務(wù)日志。文件和文件組備份文件和文件組備份l可以備份和恢復(fù)數(shù)據(jù)庫(kù)中的個(gè)別文件。可以備份和恢復(fù)數(shù)據(jù)庫(kù)中的個(gè)別文件。l文件備份和恢復(fù)操作必須與事務(wù)日志備份一起文件備份和恢復(fù)操作必須與事務(wù)日志備份一起使用。因此,文件備份不適用于簡(jiǎn)單恢復(fù)模型。使用。因此,文件備份不適用于簡(jiǎn)單恢復(fù)模型。l必須在創(chuàng)建文件備份之后才能創(chuàng)建事務(wù)日志備必須在

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論