亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        案例驅(qū)動的數(shù)據(jù)庫恢復(fù)策略剖析

        2019-11-21 05:38:06
        關(guān)鍵詞:系統(tǒng)故障事務(wù)日志

        汪 洋

        (安慶師范大學(xué)計算機與信息學(xué)院,安徽安慶246133)

        數(shù)據(jù)庫系統(tǒng)發(fā)生故障不可避免,如何保證發(fā)生故障后迅速將數(shù)據(jù)庫恢復(fù)到正確的狀態(tài),是衡量一個數(shù)據(jù)庫管理系統(tǒng)(DBMS)優(yōu)劣的重要指標[1],也是數(shù)據(jù)庫管理員(DBA)必備的技能之一。深刻理解并掌握數(shù)據(jù)庫系統(tǒng)恢復(fù)策略是數(shù)據(jù)庫教學(xué)中的一個重點和難點,現(xiàn)有數(shù)據(jù)庫教材及實際教學(xué)中對恢復(fù)策略的介紹太偏重理論,學(xué)生理解困難,難以真正掌握其實際應(yīng)用。本文以案例形式詳細分析了事務(wù)故障、系統(tǒng)故障和介質(zhì)故障[1-3]這3類數(shù)據(jù)庫故障的成因和產(chǎn)生的結(jié)果,并詳細介紹了恢復(fù)策略。

        1 案例驅(qū)動的事務(wù)故障恢復(fù)策略

        事務(wù)故障是對單個事務(wù)而言的,指發(fā)生事務(wù)故障時,該事務(wù)未運行到Commit Transaction 或Rollback Transaction處被終止,此時該未完成的事務(wù)把對數(shù)據(jù)庫的修改已寫入數(shù)據(jù)庫。

        1.1 事務(wù)故障的案例剖析

        案例1如圖1所示,T1事務(wù)由兩個操作構(gòu)成,A=A+1,B=B-1。T1事務(wù)在運行完第一個操作A=A+1后,發(fā)生了事務(wù)故障,第二個操作B=B-1沒有做,顯然T1事務(wù)是一個未完成的事務(wù)。若A的初值為1,B的初值為2,在如圖2所示的數(shù)據(jù)庫存儲中,此時事務(wù)T1對A的修改操作已寫入數(shù)據(jù)庫,數(shù)據(jù)庫中A的值由1被修改為2,很顯然數(shù)據(jù)庫中A=2是錯誤的,此時數(shù)據(jù)庫處于不一致(不正確)的狀態(tài),其原因就在于未完成的T1事務(wù)對A的修改操作已經(jīng)寫入到數(shù)據(jù)庫。

        1.2 事務(wù)故障恢復(fù)策略

        對于事務(wù)故障的恢復(fù)策略是利用日志文件對未完成的事務(wù)執(zhí)行撤消處理(Undo)。DBMS將事務(wù)的開始標記、結(jié)束標記和事務(wù)對數(shù)據(jù)庫的所有更新操作形成日志記錄并寫入日志文件,在案例1中形成了如圖3所示的日志文件。

        恢復(fù)策略:(1)反向掃描圖3所示的文件日志,查找T1事務(wù)的更新操作;(2)對T1事務(wù)的每一個更新操作執(zhí)行逆操作,將圖3中日志記錄中更新前的值A(chǔ)=1寫入數(shù)據(jù)庫,此時圖2中數(shù)據(jù)庫中A的值由2又變回原值1;(3)繼續(xù)反向掃描日志文件,查找T1事務(wù)的其他更新操作,并做同樣處理,直至讀到T1事務(wù)的開始標記結(jié)束。

        圖1 案例1事務(wù)故障示意圖

        圖2 案例1數(shù)據(jù)庫存儲變化示意圖

        圖3 案例1的日志文件

        2 案例驅(qū)動的系統(tǒng)故障恢復(fù)策略

        系統(tǒng)故障是指由于某些原因?qū)е聰?shù)據(jù)庫系統(tǒng)必須重啟的故障[1]。發(fā)生系統(tǒng)故障時,數(shù)據(jù)庫中有多個事務(wù)發(fā)生事務(wù)故障,此時,未完成的事務(wù)對數(shù)據(jù)庫的修改已寫入數(shù)據(jù)庫,而已完成的事務(wù)對數(shù)據(jù)庫的修改可能放于緩沖區(qū)內(nèi)還未寫入數(shù)據(jù)庫。以簡單易懂為目的,我們以兩個事務(wù)為例來介紹系統(tǒng)故障的成因和結(jié)果。

        2.1 系統(tǒng)故障的案例剖析

        案例2如圖4所示,當前數(shù)據(jù)庫系統(tǒng)中運行T1和T2兩個事務(wù),圖5所示的數(shù)據(jù)庫存儲中A、B、C、D的初值分別為1,2,3,4。T1事務(wù)執(zhí)行完第一個操作A=A+1,并把對A值的修改寫入數(shù)據(jù)庫,此時數(shù)據(jù)庫內(nèi)A的值由1變?yōu)?。然后T2事務(wù)依次執(zhí)行了C=C+2,D=D-2兩個操作,此時修改值C=5,D=2存放于如圖6所示的系統(tǒng)緩沖區(qū)中,還未寫入數(shù)據(jù)庫時就發(fā)生了系統(tǒng)故障。顯然數(shù)據(jù)庫中A=2是錯誤的,此時數(shù)據(jù)庫處于不一致(不正確)的狀態(tài),其原因是未完成的T1 事務(wù)對A 的修改操作已經(jīng)寫入到數(shù)據(jù)庫;另一方面,T2是已完成事務(wù),但對C和D值的修改沒有來得及寫入數(shù)據(jù)庫中。

        2.2 系統(tǒng)故障恢復(fù)策略

        發(fā)生系統(tǒng)故障時,未完成的事務(wù)對數(shù)據(jù)庫的更新操作已寫入數(shù)據(jù)庫,已完成的事務(wù)對數(shù)據(jù)庫的更新留在緩沖區(qū)中未寫入數(shù)據(jù)庫。系統(tǒng)故障的恢復(fù)策略是利用日志文件形成兩個隊列:Undo隊列和Redo隊列。對Undo 隊列中的未完成事務(wù)執(zhí)行撤消處理(Undo),對Redo 隊列中的已完成事務(wù)執(zhí)行重做處理(Redo)。在案例2中形成了如圖7所示的日志文件。

        恢復(fù)策略:(1)正向掃描圖7 所示的日志文件,未完成事務(wù)T1 放入Undo 對列,已完成事務(wù)T2 放入Redo隊列。(2)對Undo隊列中所有事務(wù)逐個執(zhí)行事務(wù)故障恢復(fù)策略,即進行Undo處理。反向掃描如圖7所示的日志文件,對T1事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中更新前的值A(chǔ)=1寫入數(shù)據(jù)庫,此時圖6中數(shù)據(jù)庫中A的值由2又為回原值1。(3)對Redo隊列所有事務(wù)逐個進行Redo處理。正向掃描如圖7所示的日志文件,對T2事務(wù)的所有更新操作執(zhí)行重新登記,即將日志記錄中更新后的值C=5,D=2寫入數(shù)據(jù)庫。

        圖4 案例2系統(tǒng)故障示意圖

        圖5 案例2數(shù)據(jù)庫存儲變化示意圖

        圖6 案例2緩沖區(qū)示意圖

        圖7 案例2的日志文件

        3 案例驅(qū)動的介質(zhì)故障恢復(fù)策略

        介質(zhì)故障是指由于某些原因?qū)е麓娣旁诖鎯υO(shè)備上數(shù)據(jù)庫部分或全部遭到破壞,磁盤上的物理數(shù)據(jù)和日志文件部分或全部丟失[3]。介質(zhì)故障的恢復(fù)需要后備副本和日志文件副本,DBA在數(shù)據(jù)庫的日常運行維護中要制定詳細的備份計劃并做好備份工作。限于文章篇幅,本文以SQL Server 為具體DBMS[4],通過一個實際案例簡要介紹數(shù)據(jù)庫備份和介質(zhì)故障恢復(fù)策略。

        3.1 介質(zhì)故障的案例剖析

        案例3如圖8所示,現(xiàn)有一個產(chǎn)品銷售數(shù)據(jù)庫cpxs,其中有產(chǎn)品表CP、產(chǎn)品銷售表CPXSB、銷售商表XSS 3張表。首先創(chuàng)建一個備份設(shè)備Test1,接著將整個cpxs數(shù)據(jù)庫進行完全備份并存放于Test1備份設(shè)備上,形成FILE1文件;然后向數(shù)據(jù)庫中添加人事表RS,并進行一次差異備份并存放于Test1備份設(shè)備上,形成FILE2文件;最后向數(shù)據(jù)庫中添加訂貨表DHB,并進行一次日志備份,并存放于Test1備份設(shè)備上,形成FILE3文件。

        圖8 案例3備份過程示意圖

        該cpxs數(shù)據(jù)庫備份過程的詳細T-SQL語句如下:

        sp_addumpdevice'disk','Test1','D:ackupTest1.bak'/*增加Test1備份設(shè)備*/

        BACKUP DATABASE cpxs TO Test1 WITH INIT/*重寫完全備份cpxs到Test1備份設(shè)備,NOINIT為追加*/

        create table RS/*添加員工人事表RS*/

        (emp_no char(5)primary key,emp_name varchar(10), sex char(2),dept varchar(10))

        BACKUP DATABASE cpxs TO Test1 WITH DIFFERENTIAL/*追加差異備份cpxs到Test1備份設(shè)備*/

        create table DHB/*添加訂貨表DHB*/

        (order_no char(5),prod_no char(5),qty int price numeric(7,2),order_date datetime)

        BACKUP LOG cpxs TO Test1/*追加備份日志文件到Test1備份設(shè)備*/

        3.2 介質(zhì)故障的恢復(fù)策略

        介質(zhì)故障的恢復(fù)需要DBA重裝備份的數(shù)據(jù)庫副本和有關(guān)的日志文件副本,并執(zhí)行系統(tǒng)提供的恢復(fù)命令。

        恢復(fù)策略:經(jīng)過前期備份后,形成了兩個數(shù)據(jù)庫副本和一個日志副本,分別對應(yīng)存儲于Test1備份設(shè)備的FILE1、FILE2和FILE3。DBA重裝這些數(shù)據(jù)庫副本和日志副本可以得到不同狀態(tài)的cpxs數(shù)據(jù)庫,解決介質(zhì)故障破壞磁盤上數(shù)據(jù)庫的問題。該cpxs數(shù)據(jù)庫恢復(fù)過程的詳細T-SQL語句如下:

        ALTER DATABASE cpxs SET RECOVERY FULL/*設(shè)置cpxs數(shù)據(jù)庫恢復(fù)模型為全模型*/

        RESTORE DATABASE cpxs FROM Test1 WITH FILE=1, NORECOVERY/*恢復(fù)完整備份,完全備份是Test1備份設(shè)備的FILE1,并掛起數(shù)據(jù)庫cpxs*/

        RESTORE DATABASE cpxs FROM Test1 WITH FILE=2, NORECOVERY/*恢復(fù)差異備份,差異備份是Test1備份設(shè)備的FILE2,并掛起數(shù)據(jù)庫cpxs*/

        RESTORE LOG cpxs FROM Test1 WITH FILE=3, RECOVERY/*恢復(fù)日志備份,日志備份是Test1備份設(shè)備的FILE3*/

        4 結(jié)束語

        為解決數(shù)據(jù)庫恢復(fù)教學(xué)中理論過于抽象、學(xué)生不易掌握的問題,作者在多年數(shù)據(jù)庫教學(xué)實踐研究中,探索出一種基于案例的數(shù)據(jù)庫恢復(fù)策略教學(xué)方法,該方法直觀易懂、簡單清晰、操作性強,學(xué)生參與度高,易為學(xué)生理解和掌握。該方法在多年的教學(xué)實踐中得到了檢驗,并取得了較好的教學(xué)效果。

        猜你喜歡
        系統(tǒng)故障事務(wù)日志
        “事物”與“事務(wù)”
        基于分布式事務(wù)的門架數(shù)據(jù)處理系統(tǒng)設(shè)計與實現(xiàn)
        某型水泵旋轉(zhuǎn)系統(tǒng)故障分析
        防爆電機(2022年4期)2022-08-17 06:00:14
        一名老黨員的工作日志
        華人時刊(2021年13期)2021-11-27 09:19:02
        扶貧日志
        心聲歌刊(2020年4期)2020-09-07 06:37:14
        河湖事務(wù)
        游學(xué)日志
        2015款奔馳R400車預(yù)防性安全系統(tǒng)故障
        雷克薩斯ES350車空調(diào)系統(tǒng)故障2例
        豐田普銳斯車HV系統(tǒng)故障排除
        亚洲熟妇无码av不卡在线播放| 激情综合五月开心婷婷| 亚洲人成欧美中文字幕| 成人看片黄a免费看那个网址| 国产成+人+综合+亚洲专| 亚洲高清在线视频网站| 白浆国产精品一区二区| 日韩中文字幕免费视频| 亚洲一区爱区精品无码| 国产一区二区三区最新视频| 久久精品熟女亚洲av香蕉| av色综合久久天堂av色综合在| 国内精品无码一区二区三区| 97色综合| 人妻少妇偷人精品一区二区| 中文字幕日韩欧美一区二区三区| 夜夜欢性恔免费视频| 久久国产成人午夜av影院| 日本高清一区二区三区不卡| 精品无码国产一区二区三区麻豆| 精品国产人成亚洲区| 一本无码人妻在中文字幕| 国产色婷亚洲99精品av网站| 日韩精品 在线 国产 丝袜| 纯爱无遮挡h肉动漫在线播放| 日韩AV无码一区二区三不卡| 国产一区二区三区尤物| 国产无遮挡又黄又爽高潮| 日日摸夜夜添无码无码av| 亚洲色欲色欲欲www在线| 日本免费一区二区在线看片| 亚洲愉拍99热成人精品热久久| 日本一区二区精品88| 日本少妇比比中文字幕| 国产一区二区三区三区四区精品| 天天躁日日躁狠狠很躁| 国产精品女同一区二区久久| 日韩激情视频一区在线观看| 欧美乱大交xxxxx潮喷| 国产成人无码一二三区视频| 一区二区三区四区四色av|