亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

數(shù)據(jù)持久化處理方法、裝置及數(shù)據(jù)庫系統(tǒng)的制作方法

文檔序號:6368939閱讀:144來源:國知局
專利名稱:數(shù)據(jù)持久化處理方法、裝置及數(shù)據(jù)庫系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種數(shù)據(jù)持久化處理方法、裝置及數(shù)據(jù)庫系統(tǒng)。
背景技術(shù)
內(nèi)存相對于磁盤能夠提供較高的吞吐量和快速響應(yīng),數(shù)據(jù)庫系統(tǒng)通常將某些數(shù)據(jù)如讀寫較為繁瑣的數(shù)據(jù)優(yōu)先存放到內(nèi)存中,以提高數(shù)據(jù)讀寫速度,實(shí)現(xiàn)高速緩存。數(shù)據(jù)庫系統(tǒng)通常是以頁作為高速緩存的單位,當(dāng)進(jìn)程修改了高速緩存里的數(shù)據(jù)時,該頁就被內(nèi)核標(biāo)記為臟頁(Dirty Page),數(shù)據(jù)庫系統(tǒng)將會在合適的時間把臟頁的數(shù)據(jù)寫到磁盤中去,以保持高速緩存中的數(shù)據(jù)和磁盤中的數(shù)據(jù)是一致的。檢查點(diǎn)(Checkpoint)機(jī)制是使數(shù)據(jù)庫能夠在發(fā)生故障之后進(jìn)行恢復(fù)的機(jī)制。傳 統(tǒng)的檢查點(diǎn)機(jī)制也稱為全量檢查點(diǎn)機(jī)制,是一次性將檢查點(diǎn)隊(duì)列中的所有臟頁轉(zhuǎn)存到磁盤中。在使用該檢查點(diǎn)機(jī)制進(jìn)行數(shù)據(jù)持久化處理時,為保證內(nèi)存與磁盤數(shù)據(jù)的一致性,需要在整個數(shù)據(jù)持久化處理期間鎖定整個檢查點(diǎn)隊(duì)列,也就是說,用戶的正常事務(wù)操作將被阻止比較長的一段時間。為了克服傳統(tǒng)的全量檢查點(diǎn)機(jī)制影響正常事務(wù)執(zhí)行的弊端,名為“模糊檢查點(diǎn)”的機(jī)制被提了出來。模糊檢查點(diǎn)機(jī)制旨在將產(chǎn)生的臟頁逐步刷到磁盤中,以此減少了因數(shù)據(jù)持久化處理對用戶正常事務(wù)操作造成的影響,但是具體如何實(shí)現(xiàn),現(xiàn)有技術(shù)尚缺少存少有效的解決方案。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種數(shù)據(jù)持久化處理方法、裝置及數(shù)據(jù)庫系統(tǒng),用以在一定程度上提高臟頁轉(zhuǎn)存的效率。一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)持久化處理方法,包括在數(shù)據(jù)庫系統(tǒng)內(nèi)存每次產(chǎn)生臟頁時,將產(chǎn)生的各臟頁分別對應(yīng)的頁標(biāo)識加入檢查點(diǎn)隊(duì)列;在所述檢查點(diǎn)隊(duì)列中確定活動組和當(dāng)前組;所述檢查點(diǎn)隊(duì)列中與當(dāng)前準(zhǔn)備轉(zhuǎn)存到磁盤的多個臟頁分別對應(yīng)的頁標(biāo)識,組成所述活動組;所述檢查點(diǎn)隊(duì)列中新加入的臟頁所插入的組為所述當(dāng)前組;在預(yù)設(shè)的檢查點(diǎn)發(fā)生時機(jī),將所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到磁盤的數(shù)據(jù)文件;如果完成所述活動組相關(guān)的臟頁轉(zhuǎn)存,則在所述檢查點(diǎn)隊(duì)列中確定下一所述活動組,并在所述檢查點(diǎn)發(fā)生時機(jī),將下一所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件。另一方面,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)持久化處理裝置,包括檢查點(diǎn)隊(duì)列維護(hù)單元,用于在數(shù)據(jù)庫系統(tǒng)內(nèi)存每次產(chǎn)生臟頁時,將產(chǎn)生的各臟頁分別對應(yīng)的頁標(biāo)識加入檢查點(diǎn)隊(duì)列;分組處理單元,用于在所述檢查點(diǎn)隊(duì)列中確定活動組和當(dāng)前組;所述檢查點(diǎn)隊(duì)列中與當(dāng)前準(zhǔn)備轉(zhuǎn)存到磁盤的多個臟頁分別對應(yīng)的頁標(biāo)識,組成所述活動組;所述檢查點(diǎn)隊(duì)列中新加入的臟頁所插入的組為所述當(dāng)前組;臟頁批量轉(zhuǎn)存單元,用于在預(yù)設(shè)的檢查點(diǎn)發(fā)生時機(jī),將所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件;所述分組處理單元,還用于如果完成所述活動組相關(guān)的臟頁轉(zhuǎn)存,則在所述檢查點(diǎn)隊(duì)列中確定下一所述活動組;所述臟頁批量轉(zhuǎn)存單元,還用于在所述檢查點(diǎn)發(fā)生時機(jī),將下一所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件。
再一方面,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)庫系統(tǒng),包括磁盤文件、內(nèi)存數(shù)據(jù)庫以及數(shù)據(jù)庫管理系統(tǒng),所述數(shù)據(jù)庫管理系統(tǒng)用于管理所述內(nèi)存數(shù)據(jù)庫中存儲的數(shù)據(jù),所述數(shù)據(jù)庫管理系統(tǒng)包括上述的數(shù)據(jù)持久化處理裝置,所述數(shù)據(jù)持久化處理裝置用于將內(nèi)存數(shù)據(jù)庫中存儲的數(shù)據(jù)轉(zhuǎn)存到所述磁盤文件中。本發(fā)明實(shí)施例提供的數(shù)據(jù)持久化處理方法和裝置及數(shù)據(jù)庫系統(tǒng),動態(tài)維護(hù)一檢查點(diǎn)隊(duì)列,將檢查點(diǎn)隊(duì)列中與當(dāng)前準(zhǔn)備轉(zhuǎn)存到磁盤的多個臟頁對應(yīng)的頁標(biāo)識作為活動組,檢查點(diǎn)隊(duì)列新加入的臟頁所插入的組為當(dāng)前組,每一檢查點(diǎn)發(fā)生時機(jī),將一活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到磁盤的數(shù)據(jù)庫中,完成一活動組包括的各頁標(biāo)識對應(yīng)的臟頁的轉(zhuǎn)存之后,在檢查點(diǎn)隊(duì)列中確定下一活動組,以在下一檢查點(diǎn)發(fā)生時機(jī),將該下一活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到磁盤的數(shù)據(jù)文件。如此循環(huán)處理,實(shí)現(xiàn)了按檢查點(diǎn)發(fā)生時機(jī)分組批量向磁盤轉(zhuǎn)存臟頁,由此在臟頁轉(zhuǎn)存對正常事務(wù)操作產(chǎn)生較小影響的基礎(chǔ)上,提高了臟頁轉(zhuǎn)存的效率。


為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)持久化處理方法流程圖;圖2a為本發(fā)明實(shí)施例提供的檢查點(diǎn)隊(duì)列分組示例一;圖2b為本發(fā)明實(shí)施例提供的向檢測點(diǎn)隊(duì)列加入頁標(biāo)識的示例;圖2c為本發(fā)明實(shí)施例提供的檢查點(diǎn)隊(duì)列分組示例二 ;圖2d為本發(fā)明實(shí)施例提供的檢查點(diǎn)隊(duì)列分組示例三;圖3為本發(fā)明實(shí)施例提供的檢查點(diǎn)隊(duì)列各頁標(biāo)識、原子操作以及日志緩沖區(qū)地址之間的對應(yīng)關(guān)系不例;圖4為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)持久化處理裝置的結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)持久化處理裝置的結(jié)構(gòu)示意圖;圖6為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有付出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。圖I為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)持久化處理方法流程圖。如圖I所示,本實(shí)施例提供的數(shù)據(jù)持久化處理方法包括11 :在數(shù)據(jù)庫系統(tǒng)內(nèi)存每次產(chǎn)生臟頁時,將產(chǎn)生的各臟頁分別對應(yīng)的頁標(biāo)識加入檢查點(diǎn)隊(duì)列。數(shù)據(jù)庫系統(tǒng)中動態(tài)維護(hù)一檢查點(diǎn)隊(duì)列,該檢查點(diǎn)隊(duì)列用于緩存數(shù)據(jù)庫系統(tǒng)內(nèi)存產(chǎn) 生的各臟頁對應(yīng)的頁標(biāo)識。在數(shù)據(jù)庫系統(tǒng)內(nèi)存每次產(chǎn)生臟頁時,可將產(chǎn)生的各臟頁以時間先后順序,依次將相應(yīng)臟頁的頁標(biāo)識加入檢查點(diǎn)隊(duì)列。如果檢查點(diǎn)隊(duì)列包括的任一頁標(biāo)識對應(yīng)的臟頁的數(shù)據(jù),由內(nèi)存轉(zhuǎn)存到磁盤的數(shù)據(jù)文件之后,該臟頁的頁標(biāo)識在檢查點(diǎn)隊(duì)列中自動刪除。12 :在所述檢查點(diǎn)隊(duì)列中確定活動組(Active Group)和當(dāng)前組(Current Group),并在預(yù)設(shè)的檢查點(diǎn)發(fā)生時機(jī),將所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件;所述檢查點(diǎn)隊(duì)列中與當(dāng)前準(zhǔn)備轉(zhuǎn)存到磁盤的多個臟頁分別對應(yīng)的頁標(biāo)識,組成所述活動組;所述檢查點(diǎn)隊(duì)列中新加入的臟頁所插入的組為所述當(dāng)前組??蓪z查點(diǎn)隊(duì)列包括的各頁標(biāo)識進(jìn)行分組,以便實(shí)現(xiàn)臟頁的批量分組轉(zhuǎn)存。例如可將檢查點(diǎn)隊(duì)列中與當(dāng)前需要轉(zhuǎn)存到磁盤的各臟頁分別對應(yīng)的各頁標(biāo)識,組成活動組;檢查點(diǎn)隊(duì)列中新加入的臟頁所插入的組為當(dāng)前組。在一種可選的實(shí)現(xiàn)方式中,可為活動組包括的各頁標(biāo)識打一活動組標(biāo)識;如此處理之后,檢查點(diǎn)隊(duì)列包括的各頁標(biāo)識分為兩類,一類是打上活動組標(biāo)識的頁標(biāo)識,即活動組包括的各頁標(biāo)識,這些頁標(biāo)識對應(yīng)的臟頁為當(dāng)前需要從內(nèi)存轉(zhuǎn)存到磁盤的臟頁;另一類為沒有打上活動組標(biāo)識的頁標(biāo)識,即檢查點(diǎn)隊(duì)列除了活動組包括的各頁標(biāo)識之外的其他各頁標(biāo)識,均沒有打上活動組標(biāo)識。活動組確定完成之后,檢查點(diǎn)隊(duì)列中當(dāng)前組可選示例如圖2a所示。此時,如果數(shù)據(jù)庫系統(tǒng)中產(chǎn)生有新的臟頁,則將新產(chǎn)生的臟頁按時間順序依次加入檢查點(diǎn)序列,并且新加入的頁標(biāo)識所插入的組為當(dāng)前組,可選示例如圖2b所示。圖2a和圖2b是將檢查點(diǎn)隊(duì)列中最先加入的四個頁標(biāo)識作為活動組,該活動組的確定方式僅為一個示例性說明,不應(yīng)理解為對本發(fā)明技術(shù)實(shí)質(zhì)的限制。在確定當(dāng)前的活動組之后,可在檢查點(diǎn)發(fā)生時機(jī),將活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件。其中,檢查點(diǎn)發(fā)生時機(jī)可預(yù)先確定,例如可從原子操作角度確定所述檢查點(diǎn)的發(fā)生時機(jī),以降低檢查點(diǎn)機(jī)制對正常事務(wù)操作的影響。當(dāng)任一頁標(biāo)識對應(yīng)的臟頁轉(zhuǎn)存到磁盤的數(shù)據(jù)文件之后,檢查點(diǎn)隊(duì)列中可自動刪除該頁標(biāo)識,即相當(dāng)于在活動組中自動刪除該頁標(biāo)識。13:如果完成所述活動組相關(guān)的臟頁轉(zhuǎn)存,則在所述檢查點(diǎn)隊(duì)列中確定下一所述活動組,并在所述檢查點(diǎn)發(fā)生時機(jī),將下一所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件。在活動組包括的各頁標(biāo)識對應(yīng)的臟頁都轉(zhuǎn)存到磁盤的數(shù)據(jù)文件之后,可在檢查點(diǎn)隊(duì)列中確定下一活動組,即相當(dāng)于在檢查點(diǎn)隊(duì)列剩余的頁標(biāo)識中重新分組,其示例如圖2c所示,虛線部分為檢查點(diǎn)隊(duì)列中已刪除的上一活動組包括的各頁標(biāo)識。如果檢查點(diǎn)隊(duì)列剩余的頁標(biāo)識數(shù)量,小于一個活動組預(yù)設(shè)的需包括的預(yù)設(shè)頁標(biāo)識數(shù)量,則可將檢查點(diǎn)隊(duì)列剩余的各頁標(biāo)識全部劃分為活動組。例如圖2d所示,活動組預(yù)設(shè)的需包括4個頁標(biāo)識,而檢查點(diǎn)隊(duì)列尚未完成轉(zhuǎn)存的臟頁的頁標(biāo)識的數(shù)量為I個,表示為P9,該情形下,可直接將P9作為一新活動組包括的頁標(biāo)識。在下一活動組確定之后,可在新的檢查點(diǎn)發(fā)生時機(jī),將該活動組包括的各頁標(biāo)識對應(yīng)的臟頁轉(zhuǎn)存到磁盤的數(shù)據(jù)文件中;并將在分組之后內(nèi)存產(chǎn)生的新的臟頁的頁標(biāo)識,力口入當(dāng)前組中,具體實(shí)現(xiàn)方式與12相似,在此不再贅述。如果檢查點(diǎn)隊(duì)列剩余的頁標(biāo)識數(shù)量為0,即檢查點(diǎn)隊(duì)列為空,則不執(zhí)行上述12和13,待檢查點(diǎn)隊(duì)列新加入有頁標(biāo)識且新的檢查點(diǎn)發(fā)生時機(jī)到來時,重復(fù)執(zhí)行上述12和13。 本實(shí)施例提供的數(shù)據(jù)持久化處理方法動態(tài)維護(hù)一檢查點(diǎn)隊(duì)列,將檢查點(diǎn)隊(duì)列中與當(dāng)前準(zhǔn)備轉(zhuǎn)存到磁盤的多個臟頁對應(yīng)的頁標(biāo)識作為活動組,檢查點(diǎn)隊(duì)列新加入的臟頁所插入的組為當(dāng)前組,每一檢查點(diǎn)發(fā)生時機(jī),將一活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到磁盤的數(shù)據(jù)庫中,完成一活動組包括的各頁標(biāo)識對應(yīng)的臟頁的轉(zhuǎn)存之后,在檢查點(diǎn)隊(duì)列中確定下一活動組,以在下一檢查點(diǎn)發(fā)生時機(jī),將該下一活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到磁盤的數(shù)據(jù)文件。如此循環(huán)處理,實(shí)現(xiàn)了按檢查點(diǎn)發(fā)生時機(jī)分組批量向磁盤轉(zhuǎn)存臟頁,由此在臟頁轉(zhuǎn)存對正常事務(wù)操作產(chǎn)生較小影響的基礎(chǔ)上,提高了臟頁轉(zhuǎn)存的效率。在上述技術(shù)方案的基礎(chǔ)上,可選的,如果確定需要對所述檢查點(diǎn)隊(duì)列包括的任一頁標(biāo)識對應(yīng)的臟頁進(jìn)行修改,則判斷該頁標(biāo)識是否屬于所述活動組;如果是,則在將該頁標(biāo)識對應(yīng)的臟頁轉(zhuǎn)存到磁盤的數(shù)據(jù)文件之前,創(chuàng)建該頁標(biāo)識對應(yīng)的臟頁的鏡像頁;否則,不創(chuàng)建該頁標(biāo)識對應(yīng)的臟頁的鏡像頁。在完成該頁標(biāo)識對應(yīng)的臟頁的鏡像頁的創(chuàng)建之后,如果輪到該頁標(biāo)識對應(yīng)的臟頁的轉(zhuǎn)存操作,則將該頁標(biāo)識對應(yīng)的鏡像頁轉(zhuǎn)存到磁盤的數(shù)據(jù)文件中。如此處理由于無需為檢查點(diǎn)隊(duì)列中每一頁標(biāo)識對應(yīng)的臟頁創(chuàng)建鏡像頁,而僅為活動組中確定需要修改的頁標(biāo)識創(chuàng)建相應(yīng)的鏡像頁,因此減少了創(chuàng)建鏡頁所需的內(nèi)存空間,保證了內(nèi)存和磁盤的數(shù)據(jù)一致性。在上述技術(shù)方案的基礎(chǔ)上,可選的,一原子操作可涉及多個臟頁,一活動組可能包括多個原子操作涉及的臟頁。在將該活動組包括的各頁標(biāo)識對應(yīng)的臟頁轉(zhuǎn)存到磁盤的數(shù)據(jù)文件之前,可將該活動組關(guān)聯(lián)的各原子操作在內(nèi)存的日志緩沖區(qū)中緩存的日志,轉(zhuǎn)存到磁盤的日志文件中;例如確定與當(dāng)前的所述活動組包括的各頁標(biāo)識關(guān)聯(lián)的原子操作;在所述數(shù)據(jù)庫內(nèi)存的日志緩沖區(qū)中,獲取與確定的原子操作關(guān)聯(lián)的各日志緩沖區(qū)地址;將獲取的各日志緩沖區(qū)地址緩存的日志轉(zhuǎn)存到所述磁盤的日志文件。在完成相應(yīng)日志的轉(zhuǎn)存之后,再將該活動組包括的各頁標(biāo)識對應(yīng)的臟頁轉(zhuǎn)存到磁盤的數(shù)據(jù)文件。下面以圖3為例進(jìn)行說明。如圖3所示的示例中,P表示頁標(biāo)識,A表示原子操作;檢測點(diǎn)隊(duì)列當(dāng)前的活動組包括的頁標(biāo)識為P1-P6,其中P1、P2和P14為原子操作Al涉及的各臟頁的頁標(biāo)識,Pl和P2屬于活動組,P14屬于非活動組;P1、P2和P14對應(yīng)的臟頁的最新數(shù)據(jù)緩存在內(nèi)存的日志緩沖區(qū)與原子操作Al相應(yīng)的緩沖區(qū)地址內(nèi)。該場景在檢查點(diǎn)發(fā)生時機(jī)如數(shù)據(jù)庫系統(tǒng)內(nèi)存當(dāng)前沒有正在運(yùn)行的原子操作,可獲取與原子操作Al關(guān)聯(lián)的各日志緩沖區(qū)地址,將獲取的各日志緩沖區(qū)地址緩存的日志,即P1、P2和P14相應(yīng)的日志轉(zhuǎn)存到磁盤的日志文件;之后,在依次將Pl和P2對應(yīng)的臟頁轉(zhuǎn)存到磁盤的數(shù)據(jù)文件?;顒咏M包括的各頁標(biāo)識P1-P6各自對應(yīng)的臟頁都轉(zhuǎn)存到磁盤的數(shù)據(jù)文件之后,在檢查點(diǎn)隊(duì)列剩余的頁標(biāo)識中重新確定下一活動組,并在下一檢查點(diǎn)發(fā)生時機(jī)到來時執(zhí)行上述相似的操作,如此處理有利于在基于磁盤進(jìn)行數(shù)據(jù)庫系統(tǒng)進(jìn)行故障恢復(fù)時,保證恢復(fù)數(shù)據(jù)的正確性。不妨再以圖3為例進(jìn)行說明。例如原子操作Al涉及的頁標(biāo)識為P1、P2和P14的臟頁。假設(shè)原子操作Al為將用戶帳號Ul轉(zhuǎn)帳100元到用戶帳號U2,其中Pl和P2對應(yīng)的臟頁對應(yīng)該原子操作中從用戶帳號Ul扣款100元的操作,P14對應(yīng)的臟頁對應(yīng)該原子操作中從用戶帳號U2增加100元的操作。日志緩沖區(qū)記錄了用戶賬號Ul和U2的余額,如Pl對應(yīng)的用戶賬號Ul的余額為100而用戶賬號U2的余額為0,P2對應(yīng)的用戶賬號Ul的余額為0而用戶賬號U2的余額為0,P14對應(yīng)的用戶賬號Ul的余額為0而用戶賬號U2的余額為100。如果數(shù)據(jù)庫系統(tǒng)在將Pl和P2對應(yīng)的臟頁轉(zhuǎn)存到磁盤的數(shù)據(jù)文件之后發(fā)生故障,該情形下基于磁盤存儲的信息對需要對發(fā)生故障的數(shù)據(jù)庫系統(tǒng)進(jìn)行恢復(fù)時,可根據(jù)磁盤的數(shù)據(jù)文件中Pl和P2的數(shù)據(jù)恢復(fù)數(shù)據(jù)庫系統(tǒng)中原子操作Al涉及的相應(yīng)數(shù)據(jù),此時恢復(fù)的數(shù)據(jù)顯示用戶賬號Ul的余額為0而用戶賬號U2的余額為O。之后在基于磁盤的日志文件中原子操作Al涉及的各日志,對數(shù)據(jù)庫系統(tǒng)中恢復(fù)的原子操作Al涉及的相應(yīng)數(shù)據(jù)進(jìn)行更新,如 磁盤的日志文件中存儲的與P14對應(yīng)的日志,即用戶賬號Ul的余額為0而用戶賬號U2的余額為100,將上述恢復(fù)數(shù)據(jù)中用戶賬號U2的余額更新為100,由此在基于磁盤進(jìn)行數(shù)據(jù)庫系統(tǒng)進(jìn)行故障恢復(fù)時,保證了恢復(fù)數(shù)據(jù)的正確性。進(jìn)一步可選的,可在活動組的臟頁轉(zhuǎn)存操作完成、且確定下一所述活動組之后,獲取下一所述活動組包括的各頁標(biāo)識關(guān)聯(lián)的各原子操作的日志文件起始點(diǎn);任一原子操作的日志文件起始點(diǎn)用于指示所述任一原子操作開始運(yùn)行時產(chǎn)生的日志,在所述日志文件中的保存位置;所述日志文件包括的各日志按時間先后順序保存。設(shè)置獲取的各原子操作的日志文件起始點(diǎn)的最小值,為當(dāng)前的數(shù)據(jù)庫恢復(fù)點(diǎn);所述數(shù)據(jù)庫恢復(fù)點(diǎn)用于指示如果所述數(shù)據(jù)庫系統(tǒng)在完成將下一所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁轉(zhuǎn)存到所述磁盤之前發(fā)生故障,對發(fā)生故障的數(shù)據(jù)庫系統(tǒng)進(jìn)行恢復(fù)時,在所述日志文件中讀取恢復(fù)所需日志的起始點(diǎn)。如此處理可根據(jù)恢復(fù)點(diǎn)快速確定數(shù)據(jù)庫恢復(fù)需要使用的日志,以提高數(shù)據(jù)庫系統(tǒng)恢復(fù)的速度。例如圖3中,在完成將當(dāng)前的活動組Gl包括的各頁標(biāo)識P1-P6對應(yīng)的臟頁轉(zhuǎn)存到磁盤之后,獲取下一活動組G2關(guān)聯(lián)的各原子操作A2、A3和A4的日志文件起始點(diǎn),并從獲取的各日志文件起始點(diǎn)中取最小值,將該最小值作為當(dāng)前的數(shù)據(jù)庫恢復(fù)點(diǎn)。如果數(shù)據(jù)庫系統(tǒng)在執(zhí)行活動組G2的臟頁轉(zhuǎn)存操作過程中發(fā)生故障,則當(dāng)前的數(shù)據(jù)庫恢復(fù)點(diǎn)即作為數(shù)據(jù)庫系進(jìn)行恢復(fù)時,在所述日志文件中讀取恢復(fù)所需日志的起始點(diǎn),可確定日志文件中自恢復(fù)點(diǎn)之后的各日志為數(shù)據(jù)庫恢復(fù)需要使用的日志。需要說明的是對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域普通技術(shù)人員可以知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。在上述實(shí)施例中,對各個實(shí)施例的描述都各有側(cè)重,某個實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括只讀存儲器(Read-Only Memory,簡稱 ROM)、隨機(jī)存取存儲器(Random Access Memory,簡稱 RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。圖4為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)持久化處理裝置的結(jié)構(gòu)示意圖。具體的,如圖4所示的數(shù)據(jù)持久化處理裝置40包括檢查點(diǎn)隊(duì)列維護(hù)單元41、分組處理單元42和臟頁批量轉(zhuǎn)存單元43。檢查點(diǎn)隊(duì)列維護(hù)單元41可用于在數(shù)據(jù)庫系統(tǒng)內(nèi)存每次產(chǎn)生臟頁時,將產(chǎn)生的各臟頁分別對應(yīng)的頁標(biāo)識加入檢查點(diǎn)隊(duì)列;分組處理單元42可用于在所述檢查點(diǎn)隊(duì)列中確定活動組和當(dāng)前組;所述檢查點(diǎn)隊(duì)列中與當(dāng)前準(zhǔn)備轉(zhuǎn)存到磁盤的多個臟頁分別對應(yīng)的頁標(biāo)識,組成所述活動組;所述檢查 點(diǎn)隊(duì)列中新加入的臟頁所插入的組為當(dāng)前組;臟頁批量轉(zhuǎn)存單元43可用于在預(yù)設(shè)的檢查點(diǎn)發(fā)生時機(jī),將所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件。所述分組處理單元42還可用于如果完成所述活動組相關(guān)的臟頁轉(zhuǎn)存,則在所述檢查點(diǎn)隊(duì)列中確定下一所述活動組。所述臟頁批量轉(zhuǎn)存單元43還可用于在所述檢查點(diǎn)發(fā)生時機(jī),將下一所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件。為了保證數(shù)據(jù)庫系統(tǒng)內(nèi)存運(yùn)行的原子操作的連貫性,所述檢查點(diǎn)發(fā)生時機(jī)包括所述數(shù)據(jù)庫系統(tǒng)內(nèi)存當(dāng)前沒有正在運(yùn)行的原子操作。采用上述數(shù)據(jù)持久化處理裝置,可實(shí)現(xiàn)臟頁根據(jù)檢查點(diǎn)發(fā)生時機(jī)分組批量向磁盤的數(shù)據(jù)文件轉(zhuǎn)存臟頁,由此在盡量減少檢查點(diǎn)執(zhí)行過程中對用戶正常事務(wù)處理過程的影響的同時,提高臟頁轉(zhuǎn)存的效率。如圖5所示,在上述技術(shù)方案的基礎(chǔ)上,可選的,數(shù)據(jù)持久化處理裝置40還可包括鏡像頁創(chuàng)建單元44。鏡像頁創(chuàng)建單元44可用于在確定所述活動組之后,如果確定需要對所述檢查點(diǎn)隊(duì)列包括的任一頁標(biāo)識對應(yīng)的臟頁進(jìn)行修改,則判斷所述任一頁標(biāo)識是否屬于所述活動組;如果是,則在將所述任一頁標(biāo)識對應(yīng)的臟頁轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件之前,創(chuàng)建所述任一頁標(biāo)識對應(yīng)的臟頁的鏡像頁;否則,不創(chuàng)建所述任一頁標(biāo)識對應(yīng)的臟頁的鏡像頁。由于僅對當(dāng)前的活動組包括的頁標(biāo)識對應(yīng)的臟頁進(jìn)行修改時,才需創(chuàng)建該臟頁的鏡像頁,由此節(jié)省了存儲鏡像頁所需的存儲空間。所述臟頁批量轉(zhuǎn)存單元43在需要對任一頁標(biāo)識對應(yīng)的臟頁進(jìn)行從內(nèi)存到磁盤的轉(zhuǎn)存處理時,如果該頁標(biāo)識創(chuàng)建有鏡像頁,則將該頁標(biāo)識對應(yīng)的鏡像頁,從內(nèi)存轉(zhuǎn)存到磁盤的數(shù)據(jù)文件中。在上述技術(shù)方案的基礎(chǔ)上,可選的,數(shù)據(jù)持久化處理裝置40還可包括日志文件轉(zhuǎn)存處理單元45。日志文件轉(zhuǎn)存處理單元45用于確定與所述活動組包括的各頁標(biāo)識關(guān)聯(lián)的原子操作;在所述數(shù)據(jù)庫內(nèi)存的日志緩沖區(qū)中,獲取與確定的原子操作關(guān)聯(lián)的各日志緩沖區(qū)地址;將獲取的各日志緩沖區(qū)地址緩存的日志轉(zhuǎn)存到所述磁盤的日志文件。如此處理,有利于在基于磁盤進(jìn)行數(shù)據(jù)庫系統(tǒng)進(jìn)行故障恢復(fù)時,保證恢復(fù)數(shù)據(jù)的正確性。進(jìn)一步可選的,數(shù)據(jù)持久化處理裝置40還可包括數(shù)據(jù)庫恢復(fù)點(diǎn)設(shè)置模塊46。數(shù)據(jù)庫恢復(fù)點(diǎn)設(shè)置模塊46可用于獲取下一所述活動組包括的各頁標(biāo)識關(guān)聯(lián)的各原子操作的日志文件起始點(diǎn);任一原子操作的日志文件起始點(diǎn)用于指示所述任一原子操作開始運(yùn)行時產(chǎn)生的日志,在所述日志文件中的保存位置;所述日志文件包括的各日志按時間先后順序保存;設(shè)置獲取的各原子操作的日志文件起始點(diǎn)的最小值,為當(dāng)前的數(shù)據(jù)庫恢復(fù)點(diǎn);所述數(shù)據(jù)庫恢復(fù)點(diǎn)用于指示如果所述數(shù)據(jù)庫系統(tǒng)在完成將下一所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁轉(zhuǎn)存到所述磁盤之前發(fā)生故障,對發(fā)生故障的數(shù)據(jù)庫系統(tǒng)進(jìn)行恢復(fù)時,在所述日志文件中讀取恢復(fù)所需日志的起始點(diǎn)。如此處理,可根據(jù)恢復(fù)點(diǎn)快速確定數(shù)據(jù)庫恢復(fù)需要使用的日志,以提高數(shù)據(jù)庫系統(tǒng)恢復(fù)的速度。本發(fā)明實(shí)施例提供的數(shù)據(jù)持久化處理裝置,用于實(shí)現(xiàn)本發(fā)明實(shí)施例提供的數(shù)據(jù)持久化處理方法,其工作機(jī)理可參見本發(fā)明上述方法實(shí)施例的相應(yīng)記載,在此不再贅述。如圖6所示,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)庫系統(tǒng),包括磁盤文件53、內(nèi)存數(shù)據(jù)庫52以及數(shù)據(jù)庫管理系統(tǒng)51。數(shù)據(jù)庫管理系統(tǒng)51用于管理內(nèi)存數(shù)據(jù)庫52中存儲的數(shù)據(jù), 該數(shù)據(jù)庫管理系統(tǒng)51包括上述任一數(shù)據(jù)持久化處理裝置40,該數(shù)據(jù)持久化處理裝置40用于將內(nèi)存數(shù)據(jù)庫52中存儲的數(shù)據(jù)轉(zhuǎn)存到磁盤文件53 (即在磁盤上存儲的數(shù)據(jù)文件)中,由此實(shí)現(xiàn)了按檢查點(diǎn)發(fā)生時機(jī)分組批量向磁盤轉(zhuǎn)存臟頁,在臟頁轉(zhuǎn)存對正常事務(wù)操作產(chǎn)生較小影響的基礎(chǔ)上,提高了臟頁轉(zhuǎn)存的效率。其中,數(shù)據(jù)持久化處理裝置40的具體模塊劃分和功能方法流程可以參照前述實(shí)施例,在此不再贅述。本發(fā)明方案可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序單元。一般地,程序單元包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本發(fā)明方案,在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序單元可以位于包括存儲設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲介質(zhì)中。另外,在本發(fā)明各個實(shí)施例中的各功能單元可以集成在一個單元中,也可以是各個功能單元單獨(dú)物理存在,或者是兩個或兩個以上功能單元集成在一個單元中。上述集成的單元既可以采用硬件的形式或采用軟件功能單元的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。本說明書中的各個實(shí)施例均采用遞進(jìn)的方式描述,各個實(shí)施例之間相同相似的部分互相參見即可,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實(shí)施。本領(lǐng)域普通技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個或多個裝置中。上述實(shí)施例的單元可以合并為一個單元,也可以進(jìn)一步拆分成多個子模塊。所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計(jì)算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random AccessMemory )、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。本 領(lǐng)域普通技術(shù)人員可以理解附圖只是一個實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種數(shù)據(jù)持久化處理方法,其特征在于,包括 在數(shù)據(jù)庫系統(tǒng)內(nèi)存每次產(chǎn)生臟頁時,將產(chǎn)生的各臟頁分別對應(yīng)的頁標(biāo)識加入檢查點(diǎn)隊(duì)列; 在所述檢查點(diǎn)隊(duì)列中確定活動組和當(dāng)前組;所述檢查點(diǎn)隊(duì)列中與當(dāng)前準(zhǔn)備轉(zhuǎn)存到磁盤的多個臟頁分別對應(yīng)的頁標(biāo)識,組成所述活動組;所述檢查點(diǎn)隊(duì)列中新加入的臟頁所插入的組為所述當(dāng)前組; 在預(yù)設(shè)的檢查點(diǎn)發(fā)生時機(jī),將所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件; 如果完成所述活動組相關(guān)的臟頁轉(zhuǎn)存,則在所述檢查點(diǎn)隊(duì)列中確定下一所述活動組,并在所述檢查點(diǎn)發(fā)生時機(jī),將下一所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,在確定所述活動組之后,所述方法還包括 如果確定需要對所述檢查點(diǎn)隊(duì)列包括的任一頁標(biāo)識對應(yīng)的臟頁進(jìn)行修改,則判斷所述任一頁標(biāo)識是否屬于所述活動組;如果是,則在將所述任一頁標(biāo)識對應(yīng)的臟頁轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件之前,創(chuàng)建所述任一頁標(biāo)識對應(yīng)的臟頁的鏡像頁;否則,不創(chuàng)建所述任一頁標(biāo)識對應(yīng)的臟頁的鏡像頁。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述檢查點(diǎn)發(fā)生時機(jī)包括所述數(shù)據(jù)庫系統(tǒng)內(nèi)存當(dāng)前沒有正在運(yùn)行的原子操作。
4.根據(jù)權(quán)利要求I至3任一項(xiàng)所述的方法,其特征在于,在將所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件之前,所述方法還包括 確定與所述活動組包括的各頁標(biāo)識關(guān)聯(lián)的原子操作; 在所述數(shù)據(jù)庫內(nèi)存的日志緩沖區(qū)中,獲取與所述原子操作關(guān)聯(lián)的各日志緩沖區(qū)地址; 將獲取的各日志緩沖區(qū)地址緩存的日志轉(zhuǎn)存到所述磁盤的日志文件。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在將當(dāng)前所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件、且確定下一所述活動組之后,所述方法還包括 獲取下一所述活動組包括的各頁標(biāo)識關(guān)聯(lián)的各原子操作的日志文件起始點(diǎn);任一原子操作的日志文件起始點(diǎn)用于指示所述任一原子操作開始運(yùn)行時產(chǎn)生的日志,在所述日志文件中的保存位置;所述日志文件包括的各日志按時間先后順序保存; 設(shè)置獲取的各原子操作的日志文件起始點(diǎn)的最小值,為數(shù)據(jù)庫恢復(fù)點(diǎn);所述數(shù)據(jù)庫恢復(fù)點(diǎn)用于指示如果所述數(shù)據(jù)庫系統(tǒng)在完成將下一所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁轉(zhuǎn)存到所述磁盤之前發(fā)生故障,對發(fā)生故障的數(shù)據(jù)庫系統(tǒng)進(jìn)行恢復(fù)時,在所述日志文件中讀取恢復(fù)所需日志的起始點(diǎn)。
6.一種數(shù)據(jù)持久化處理裝置,其特征在于,包括 檢查點(diǎn)隊(duì)列維護(hù)單元,用于在數(shù)據(jù)庫系統(tǒng)內(nèi)存每次產(chǎn)生臟頁時,將產(chǎn)生的各臟頁分別對應(yīng)的頁標(biāo)識加入檢查點(diǎn)隊(duì)列; 分組處理單元,用于在所述檢查點(diǎn)隊(duì)列中確定活動組和當(dāng)前組;所述檢查點(diǎn)隊(duì)列中與當(dāng)前準(zhǔn)備轉(zhuǎn)存到磁盤的多個臟頁分別對應(yīng)的頁標(biāo)識,組成所述活動組;所述檢查點(diǎn)隊(duì)列中新加入的臟頁所插入的組為所述當(dāng)前組; 臟頁批量轉(zhuǎn)存單元,用于在預(yù)設(shè)的檢查點(diǎn)發(fā)生時機(jī),將所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件; 所述分組處理單元,還用于如果完成所述活動組相關(guān)的臟頁轉(zhuǎn)存,則在所述檢查點(diǎn)隊(duì)列中確定下一所述活動組; 所述臟頁批量轉(zhuǎn)存單元,還用于在所述檢查點(diǎn)發(fā)生時機(jī),將下一所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括 鏡像頁創(chuàng)建單元,用于在確定所述活動組之后,如果確定需要對所述檢查點(diǎn)隊(duì)列包括的任一頁標(biāo)識對應(yīng)的臟頁進(jìn)行修改,則判斷所述任一頁標(biāo)識是否屬于所述活動組;如果是, 則在將所述任一頁標(biāo)識對應(yīng)的臟頁轉(zhuǎn)存到所述磁盤的數(shù)據(jù)文件之前,創(chuàng)建所述任一頁標(biāo)識對應(yīng)的臟頁的鏡像頁;否則,不創(chuàng)建所述任一頁標(biāo)識對應(yīng)的臟頁的鏡像頁。
8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述檢查點(diǎn)發(fā)生時機(jī)包括:所述數(shù)據(jù)庫系統(tǒng)內(nèi)存當(dāng)前沒有正在運(yùn)行的原子操作。
9.根據(jù)權(quán)利要求6至8任一項(xiàng)所述的裝置,其特征在于,所述裝置還包括 日志文件轉(zhuǎn)存處理單元,用于確定與所述活動組包括的各頁標(biāo)識關(guān)聯(lián)的原子操作;在所述數(shù)據(jù)庫內(nèi)存的日志緩沖區(qū)中,獲取與所述原子操作關(guān)聯(lián)的各日志緩沖區(qū)地址;將獲取的各日志緩沖區(qū)地址緩存的日志轉(zhuǎn)存到所述磁盤的日志文件。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括 數(shù)據(jù)庫恢復(fù)點(diǎn)設(shè)置模塊,用于獲取下一所述活動組包括的各頁標(biāo)識關(guān)聯(lián)的各原子操作的日志文件起始點(diǎn);任一原子操作的日志文件起始點(diǎn)用于指示所述任一原子操作開始運(yùn)行時產(chǎn)生的日志,在所述日志文件中的保存位置;所述日志文件包括的各日志按時間先后順序保存;設(shè)置獲取的各原子操作的日志文件起始點(diǎn)的最小值,為數(shù)據(jù)庫恢復(fù)點(diǎn);所述數(shù)據(jù)庫恢復(fù)點(diǎn)用于指示如果所述數(shù)據(jù)庫系統(tǒng)在完成將下一所述活動組包括的各頁標(biāo)識對應(yīng)的臟頁轉(zhuǎn)存到所述磁盤之前發(fā)生故障,對發(fā)生故障的數(shù)據(jù)庫系統(tǒng)進(jìn)行恢復(fù)時,在所述日志文件中讀取恢復(fù)所需日志的起始點(diǎn)。
11.一種數(shù)據(jù)庫系統(tǒng),其特征在于,包括磁盤文件、內(nèi)存數(shù)據(jù)庫以及數(shù)據(jù)庫管理系統(tǒng),所述數(shù)據(jù)庫管理系統(tǒng)用于管理所述內(nèi)存數(shù)據(jù)庫中存儲的數(shù)據(jù),所述數(shù)據(jù)庫管理系統(tǒng)包括如權(quán)利要求6至10任一項(xiàng)所述的數(shù)據(jù)持久化處理裝置,所述數(shù)據(jù)持久化處理裝置用于將內(nèi)存數(shù)據(jù)庫中存儲的數(shù)據(jù)轉(zhuǎn)存到所述磁盤文件中。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)持久化處理方法、裝置及數(shù)據(jù)庫系統(tǒng),方法包括在數(shù)據(jù)庫系統(tǒng)內(nèi)存每次產(chǎn)生臟頁時,將產(chǎn)生的各臟頁分別對應(yīng)的頁標(biāo)識加入檢查點(diǎn)隊(duì)列;在檢查點(diǎn)隊(duì)列中確定活動組和當(dāng)前組,并在預(yù)設(shè)的檢查點(diǎn)發(fā)生時機(jī),將活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到磁盤;檢查點(diǎn)隊(duì)列中與當(dāng)前準(zhǔn)備轉(zhuǎn)存到磁盤的多個臟頁分別對應(yīng)的頁標(biāo)識,組成活動組;加入所述檢查點(diǎn)隊(duì)列的新的臟頁插入的組為當(dāng)前組;如果完成活動組相關(guān)的臟頁轉(zhuǎn)存,則在所述檢查點(diǎn)隊(duì)列中確定下一活動組,并在檢查點(diǎn)發(fā)生時機(jī),將下一活動組包括的各頁標(biāo)識對應(yīng)的臟頁依次轉(zhuǎn)存到磁盤。本發(fā)明在臟頁轉(zhuǎn)存對正常事務(wù)操作產(chǎn)生較小影響的基礎(chǔ)上,提高了臟頁轉(zhuǎn)存的效率。
文檔編號G06F12/00GK102750317SQ20121013347
公開日2012年10月24日 申請日期2012年5月2日 優(yōu)先權(quán)日2012年5月2日
發(fā)明者威諾斯, 彭勇飛, 楊上德 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1