第11章 故障管理
11.1 事務(wù)
1、事務(wù)是數(shù)據(jù)庫(kù)的邏輯控制單位,是操作數(shù)據(jù)的一個(gè)程序執(zhí)行單元。
2、為了保證數(shù)據(jù)的完整性,要求數(shù)據(jù)庫(kù)系統(tǒng)維護(hù)事務(wù)具有如下性質(zhì):
(1) 原子性:事務(wù)是一個(gè)不可分割的工作單位,事務(wù)中的操作要么都做,要么都不做;
(2) 一致性:事務(wù)執(zhí)行的結(jié)果必須使數(shù)據(jù)庫(kù)從一個(gè)一致的狀態(tài)變到另一個(gè)一致的狀態(tài);
(3) 隔離性:一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對(duì)于其他并發(fā)事務(wù)是隔離的;
(4) 持續(xù)性:一個(gè)事務(wù)提交后,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變是永久性的,即使系統(tǒng)可能出現(xiàn)故障,也不會(huì)對(duì)其它執(zhí)行的結(jié)果有任何影響。
11.2 故障的種類及解決方法
11.2.1 事務(wù)內(nèi)部故障
1、預(yù)期的事務(wù)內(nèi)部故障:
通過事務(wù)程序本身發(fā)現(xiàn)的事物內(nèi)部故障,可以通過將事務(wù)回滾,撤銷其對(duì)數(shù)據(jù)庫(kù)的修改,從而使數(shù)據(jù)庫(kù)回到一致性的狀態(tài);
2、非預(yù)期的事務(wù)內(nèi)部故障:
(1)由于事務(wù)內(nèi)部故障大部分屬于此類,所以事務(wù)故障僅限指此類故障;
(2)事務(wù)故障表明事務(wù)沒有提交或撤銷就結(jié)束了,因此數(shù)據(jù)庫(kù)可能處于不正確的狀態(tài),因此,恢復(fù)事務(wù)必須強(qiáng)行回滾事務(wù),在保證該事務(wù)對(duì)其他事務(wù)沒有影響的條件下,利用日志文件撤銷其對(duì)數(shù)據(jù)庫(kù)的修改,使數(shù)據(jù)庫(kù)恢復(fù)到該事務(wù)運(yùn)行之前的效果;
(3)事務(wù)故障恢復(fù)是由系統(tǒng)自動(dòng)完成的,對(duì)用戶是透明的。
11.2.2 系統(tǒng)故障(軟故障)
1、指數(shù)據(jù)庫(kù)在運(yùn)行過程中,由于硬件故障、數(shù)據(jù)庫(kù)軟件及操作系統(tǒng)的漏洞、突然停電等情況,導(dǎo)致系統(tǒng)停止運(yùn)轉(zhuǎn),所有正在運(yùn)行的事務(wù)以非正常方式終止,需要系統(tǒng)重新啟動(dòng)的一類故障;
2、系統(tǒng)故障導(dǎo)致內(nèi)存中的內(nèi)容丟失,而在硬盤上的內(nèi)容仍然完好;從而導(dǎo)致數(shù)據(jù)庫(kù)的數(shù)據(jù)可以處于不正確的狀態(tài);
3、要消除這些事務(wù)對(duì)數(shù)據(jù)庫(kù)的影響,保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的一致性,辦法就是在計(jì)算機(jī)系統(tǒng)重新啟動(dòng)后,對(duì)于未完成的事務(wù)可能已經(jīng)寫入數(shù)據(jù)庫(kù)的內(nèi)容,回滾所有未完成的事務(wù)寫的結(jié)果,以保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的一致性;對(duì)于已完成的事務(wù)可能部分或全部留在緩存區(qū)的結(jié)果,需要重做所有已提交的事務(wù),以將數(shù)據(jù)庫(kù)真正恢復(fù)到一致狀態(tài)。
4、一句話,當(dāng)數(shù)據(jù)庫(kù)發(fā)生系統(tǒng)故障時(shí),容錯(cuò)對(duì)策是在重新啟動(dòng)系統(tǒng)后,撤銷(UNDO)所有未提交的事務(wù),重做(REDO)所有已提交的事務(wù)。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題預(yù)告:名師解析2010年9月計(jì)算機(jī)等級(jí)考試試題答案
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |