欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)庫內(nèi)的描述信息的恢復(fù)和數(shù)據(jù)的緩存方法及設(shè)備的制作方法

文檔序號:6442492閱讀:291來源:國知局
專利名稱:數(shù)據(jù)庫內(nèi)的描述信息的恢復(fù)和數(shù)據(jù)的緩存方法及設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)庫內(nèi)的描述信息的恢復(fù)和數(shù)據(jù)的緩存方法及設(shè)備。
背景技術(shù)
目前,數(shù)據(jù)庫一般使用高速存儲(chǔ)設(shè)備,例如固態(tài)硬盤(Solid State Disk, SSD)作為主存的二級緩存,該高速存儲(chǔ)設(shè)備也可以稱為非易失性緩存。數(shù)據(jù)庫對二級緩存的管理方式之一是讀緩存,是指將主存中的非臟數(shù)據(jù)放置到二級緩存中,放置到二級緩存中的數(shù)據(jù)稱為溫?cái)?shù)據(jù)。為了提高查詢效率,可以在主存內(nèi)保存信息,該描述信息用于描述數(shù)據(jù)在磁盤內(nèi)的位置與二級緩存內(nèi)的位置之間的對應(yīng)關(guān)系。通過該描述信息,可以直接從二級緩存內(nèi)將數(shù)據(jù)再次讀入主存而不需要從磁盤內(nèi)讀取。當(dāng)數(shù)據(jù)庫重啟后,由于主存內(nèi)的信息是丟失的,需要重新建立上述的描述信息?,F(xiàn)有技術(shù)中,當(dāng)數(shù)據(jù)庫重啟后,數(shù)據(jù)庫的二級緩存中原來保存的數(shù)據(jù)都是丟棄的, 需要重新預(yù)熱數(shù)據(jù),即需要重新從磁盤內(nèi)讀取數(shù)據(jù)塊到主存,并從主存置換到二級緩存,以及重新在主存內(nèi)建立描述信息?,F(xiàn)有技術(shù)這種重新讀取數(shù)據(jù)、重新建立描述信息的過程需要較長的時(shí)間。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種數(shù)據(jù)庫內(nèi)的描述信息的恢復(fù)和數(shù)據(jù)的緩存方法及設(shè)備,降低恢復(fù)描述信息時(shí)所需的時(shí)間。本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫內(nèi)的描述信息的恢復(fù)方法,包括判斷數(shù)據(jù)庫在上次運(yùn)行后是否正常關(guān)閉;如果沒有正常關(guān)閉,遍歷二級緩存內(nèi)的每個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的塊頭內(nèi)保存對應(yīng)的磁盤位置信息;根據(jù)所述磁盤位置信息獲取磁盤內(nèi)的數(shù)據(jù)塊;當(dāng)獲取的磁盤內(nèi)的數(shù)據(jù)塊與對應(yīng)的二級緩存內(nèi)的數(shù)據(jù)塊相同時(shí),根據(jù)數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息建立描述信息,所述描述信息用于描述數(shù)據(jù)在磁盤內(nèi)的位置信息與在二級緩存內(nèi)的位置信息的對應(yīng)關(guān)系。本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的緩存方法,包括將數(shù)據(jù)塊從磁盤內(nèi)讀入主存內(nèi),并記錄所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊從主存內(nèi)置換到二級緩存內(nèi),并在所述數(shù)據(jù)塊的塊頭內(nèi)保存所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息之間的對應(yīng)關(guān)系保存在描述信息內(nèi)。本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫內(nèi)的描述信息的恢復(fù)設(shè)備,包括判斷單元,用于判斷數(shù)據(jù)庫在上次運(yùn)行后是否正常關(guān)閉;處理單元,用于在所述判斷單元判斷出沒有正常關(guān)閉時(shí),遍歷二級緩存內(nèi)的每個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的塊頭內(nèi)保存對應(yīng)的磁盤位置信息;根據(jù)所述磁盤位置信息獲取磁盤內(nèi)的數(shù)據(jù)塊;當(dāng)獲取的磁盤內(nèi)的數(shù)據(jù)塊與對應(yīng)的二級緩存內(nèi)的數(shù)據(jù)塊相同時(shí),根據(jù)數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息建立描述信息,所述描述信息用于描述數(shù)據(jù)在磁盤內(nèi)的位置信息與在二級緩存內(nèi)的位置信息的對應(yīng)關(guān)系。本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的緩存設(shè)備,包括讀取單元,用于將數(shù)據(jù)塊從磁盤內(nèi)讀入主存內(nèi),并記錄所述數(shù)據(jù)塊在磁盤內(nèi)的位直fe息;置換單元,用于將所述數(shù)據(jù)塊從主存內(nèi)置換到二級緩存內(nèi),并在所述數(shù)據(jù)塊的塊頭內(nèi)保存所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;記錄單元,用于將所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息之間的對應(yīng)關(guān)系保存在描述信息內(nèi)。由上述技術(shù)方案可知,本發(fā)明實(shí)施例通過在二級緩存內(nèi)的數(shù)據(jù)塊的塊頭內(nèi)保存對應(yīng)的磁盤位置信息,可以直接根據(jù)塊頭的磁盤位置信息和數(shù)據(jù)塊自身所在的二級緩存的位置信息建立描述信息,而不需要再次讀取數(shù)據(jù)、置換數(shù)據(jù)和根據(jù)置換過程建立描述信息,可以實(shí)現(xiàn)描述信息的快速重建,降低描述信息的恢復(fù)時(shí)間。


為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明數(shù)據(jù)庫內(nèi)的描述信息的恢復(fù)方法一實(shí)施例的流程示意圖;圖2為本發(fā)明數(shù)據(jù)庫內(nèi)的描述信息的恢復(fù)方法另一實(shí)施例的流程示意圖;圖3為本發(fā)明數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的緩存方法一實(shí)施例的流程示意圖;圖4為本發(fā)明二級緩存內(nèi)的數(shù)據(jù)塊示意圖;圖5為本發(fā)明數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的緩存方法另一實(shí)施例的流程示意圖;圖6為本發(fā)明數(shù)據(jù)庫內(nèi)的描述信息的恢復(fù)設(shè)備一實(shí)施例的結(jié)構(gòu)示意圖;圖7為本發(fā)明數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的緩存設(shè)備一實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。以PostgreSql (以下簡稱PG)的開源數(shù)據(jù)庫為例,PG中的描述信息具體為哈希表。當(dāng)數(shù)據(jù)塊從磁盤讀入主存后,由于主存空間的限制,可以將一些數(shù)據(jù)塊置換到二級緩存中。當(dāng)數(shù)據(jù)塊被置換到二級緩存后,數(shù)據(jù)庫的管理模塊內(nèi)可以保存哈希表,用于記錄數(shù)據(jù)塊在磁盤內(nèi)的位置信息與在二級緩存內(nèi)的位置信息的對應(yīng)關(guān)系。例如,管理模塊將磁盤的位置A處的數(shù)據(jù)塊讀入主存后,如果將該數(shù)據(jù)塊置換到二級緩存的位置B處,則哈希表中會(huì)保存A B的對應(yīng)關(guān)系。這樣,當(dāng)數(shù)據(jù)庫內(nèi)的數(shù)據(jù)訪問模塊發(fā)送的數(shù)據(jù)請求表明需要讀取位置A處的數(shù)據(jù)塊后,管理模塊可以根據(jù)該哈希表從二級緩存內(nèi)讀取數(shù)據(jù)塊到主存內(nèi),而不需要再從磁盤中讀取數(shù)據(jù)塊,以提高查詢效率。另外,上述的根據(jù)哈希表從二級緩存內(nèi)再次讀取的數(shù)據(jù)是指從主存內(nèi)置換到二級緩存內(nèi)的非臟數(shù)據(jù),即數(shù)據(jù)從磁盤讀取到主存后,在主存內(nèi)沒有被更改后被置換到二級緩存中,這樣可以保證磁盤中的數(shù)據(jù)與二級緩存中的數(shù)據(jù)的一致性。當(dāng)數(shù)據(jù)庫關(guān)閉或者宕機(jī)后,再次重啟數(shù)據(jù)庫后,主存一般直接放棄之前的緩存數(shù)據(jù)。為了提高查詢效率可以直接從二級緩存內(nèi)讀取數(shù)據(jù)而不需要從磁盤內(nèi)讀取,而為了直接從二級緩存內(nèi)讀取數(shù)據(jù),首先需要恢復(fù)哈希表。圖1為本發(fā)明數(shù)據(jù)庫內(nèi)的描述信息的恢復(fù)方法一實(shí)施例的流程示意圖,包括步驟11 判斷數(shù)據(jù)庫在上次運(yùn)行后是否正常關(guān)閉;其中,數(shù)據(jù)庫在重啟后可以通過數(shù)據(jù)庫日志確定上次運(yùn)行后是正常關(guān)閉還是非正常關(guān)閉。步驟12 如果沒有正常關(guān)閉,遍歷二級緩存內(nèi)的每個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的塊頭內(nèi)保存對應(yīng)的磁盤位置信息;根據(jù)所述磁盤位置信息獲取磁盤內(nèi)的數(shù)據(jù)塊;當(dāng)獲取的磁盤內(nèi)的數(shù)據(jù)塊與對應(yīng)的二級緩存內(nèi)的數(shù)據(jù)塊相同時(shí),根據(jù)數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息建立描述信息,所述描述信息用于描述數(shù)據(jù)在磁盤內(nèi)的位置信息與在二級緩存內(nèi)的位置信息的對應(yīng)關(guān)系。例如,掃描二級緩存的B位置處時(shí),得到B位置處的數(shù)據(jù)塊,假設(shè)該數(shù)據(jù)塊的塊頭內(nèi)包含磁盤的A位置,則獲取磁盤的A位置的數(shù)據(jù)塊,之后比較A位置的數(shù)據(jù)塊和B位置的數(shù)據(jù)塊,如果兩者相同,則建立A B的對應(yīng)關(guān)系并保存到描述信息內(nèi)。對于其余位置的數(shù)據(jù)塊采用相同的原理進(jìn)行處理,得到每個(gè)數(shù)據(jù)塊在磁盤內(nèi)的位置信息和二級緩存內(nèi)的位置信息的對應(yīng)關(guān)系,進(jìn)而得到描述信息。另外,當(dāng)兩者不同時(shí),可以放棄對該數(shù)據(jù)塊的對應(yīng)關(guān)系的恢復(fù)。另一方面,參見圖2,還包括,步驟13 如果數(shù)據(jù)庫上次運(yùn)行是正常關(guān)閉,則可以從持久化設(shè)備內(nèi)獲取描述信息,所述描述信息為數(shù)據(jù)庫在上次運(yùn)行時(shí)建立并在正常關(guān)閉后由保存到持久化設(shè)備中。在數(shù)據(jù)庫正常關(guān)閉后,將描述信息從數(shù)據(jù)庫保存到持久化設(shè)備中,持久化設(shè)備例如為磁盤或非易失性緩存,這個(gè)過程可以稱為序列化過程;當(dāng)數(shù)據(jù)庫重啟后,數(shù)據(jù)庫從持久化設(shè)備中獲取描述信息,這個(gè)過程可以稱為反序列化過程。進(jìn)一步地,由于在原來的數(shù)據(jù)庫運(yùn)行過程中也會(huì)有描述信息,因此在如圖1所示的建立描述信息,或者,如圖2所示的從持久化設(shè)備中獲取描述信息,都可以理解為是對上次運(yùn)行時(shí)的描述信息的恢復(fù)。在描述信息恢復(fù)之后,數(shù)據(jù)庫便可以直接從二級緩存內(nèi)讀取數(shù)據(jù)到主存內(nèi)而不需要再向磁盤讀取。例如,數(shù)據(jù)訪問模塊發(fā)送的數(shù)據(jù)請求表明要獲取磁盤位置A處的數(shù)據(jù),管理模塊根據(jù)獲取的描述信息確定磁盤位置A處的數(shù)據(jù)已經(jīng)被保存到二級緩存位置B處,可以直接從二級緩存的位置B處獲取數(shù)據(jù)后發(fā)送給主存?,F(xiàn)有技術(shù)中數(shù)據(jù)庫在重啟后,是首先需要預(yù)熱數(shù)據(jù),之后根據(jù)預(yù)熱過程中數(shù)據(jù)的位置信息建立描述信息,之后再根據(jù)描述信息才能應(yīng)用二級緩存內(nèi)的數(shù)據(jù),預(yù)熱過程就是將數(shù)據(jù)從磁盤讀入主存,再從主存讀入二級緩存,這一預(yù)熱過程需要耗費(fèi)較長時(shí)間。而本實(shí)施例中的上述根據(jù)數(shù)據(jù)塊的塊頭內(nèi)的信息恢復(fù)描述信息的方式可以大大降低所需時(shí)間,進(jìn)而根據(jù)描述信息可以較快的應(yīng)用二級緩存內(nèi)的數(shù)據(jù)。本實(shí)施例通過在二級緩存內(nèi)的數(shù)據(jù)塊的塊頭內(nèi)保存對應(yīng)的磁盤位置信息,可以直接根據(jù)塊頭的磁盤位置信息和數(shù)據(jù)塊自身所在的二級緩存的位置信息建立描述信息,而不需要再次讀取數(shù)據(jù)、置換數(shù)據(jù)和根據(jù)置換過程建立描述信息,也就是說,本實(shí)施例并不需要較長時(shí)間的預(yù)熱過程,便可以實(shí)現(xiàn)描述信息的快速重建,降低了描述信息的恢復(fù)時(shí)間。圖3為本發(fā)明數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的緩存方法一實(shí)施例的流程示意圖,包括步驟31 將數(shù)據(jù)塊從磁盤內(nèi)讀入主存內(nèi),并記錄所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;步驟32 將所述數(shù)據(jù)塊從主存內(nèi)置換到二級緩存內(nèi),并在所述數(shù)據(jù)塊的塊頭內(nèi)保存所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;具體地,對于置換到二級緩存內(nèi)的數(shù)據(jù),其結(jié)構(gòu)可以參見圖4,包括數(shù)據(jù)頭 (PageHeaderData)以及后續(xù)的指針(linpU linp2. · ·)、存儲(chǔ)內(nèi)容(tuplel, tuple2. · ·)和索引信息(special space)等。與現(xiàn)有數(shù)據(jù)的結(jié)構(gòu)不同的是,本發(fā)明實(shí)施例中的數(shù)據(jù)頭內(nèi)會(huì)包含對應(yīng)的磁盤內(nèi)的位置信息。對于數(shù)據(jù)頭的描述可以是
typedef struct PageHeaderData {
XLogRecPtr pdjsn; /*LSN:指向上一次xlog中本頁改變記錄的位
置*/
....../*不列舉所有的字段*/
uintl6 pd—pagesize—version;
TransactionId pd_prune_xid; /*oldest prunable XID, or zero if none*/ ItemIdData pd_linp[l]; /* 記錄 Linp 數(shù)組的起始位置 */
RelFileNode mode;/*新增字段,用于在塊中保存其關(guān)系,用于恢復(fù)。*/
} PageHeaderData;
typedef PageHeaderData *PageHeader;上述描述中,其中的“RelFileNode rnode”是新增字段,用于保存對應(yīng)的磁盤的位置信息。例如,二級緩存的B位置處的數(shù)據(jù)是主存從磁盤的A位置處讀取并置換到二級緩存內(nèi)的,則B位置處的數(shù)據(jù)的數(shù)據(jù)頭部分的“RelFileNode rnode”字段內(nèi)保存A位置的信肩、ο步驟33 將所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息之間的對應(yīng)關(guān)系保存在描述信息內(nèi)。之后,在恢復(fù)時(shí),如果數(shù)據(jù)庫是非正常關(guān)閉的,則可以根據(jù)數(shù)據(jù)塊的頭部內(nèi)容按照圖1所示內(nèi)容進(jìn)行描述信息的恢復(fù)。進(jìn)一步地,參見圖5,步驟33之后還可以包括步驟34 數(shù)據(jù)庫正常關(guān)閉后,將所述描述信息保存到持久化設(shè)備內(nèi)。之后,在恢復(fù)時(shí),可以直接從持久化設(shè)備中恢復(fù)描述信息。
當(dāng)然,數(shù)據(jù)庫運(yùn)行過程中,也可以根據(jù)描述信息從二級緩存內(nèi)獲取數(shù)據(jù),即在數(shù)據(jù)庫運(yùn)行過程中還可以執(zhí)行如下步驟管理模塊接收到數(shù)據(jù)訪問模塊發(fā)送的數(shù)據(jù)請求后,根據(jù)所述數(shù)據(jù)請求中攜帶的要獲取的數(shù)據(jù)在磁盤內(nèi)的位置信息,以及所述描述信息確定要獲取的數(shù)據(jù)在二級緩存內(nèi)的位置信息,并根據(jù)所述要獲取的數(shù)據(jù)在二級緩存內(nèi)的位置信息,從二級緩存內(nèi)獲取數(shù)據(jù)后發(fā)送給主存。當(dāng)然,如果管理模塊通過查詢描述信息,沒有得到要獲取的數(shù)據(jù)在磁盤內(nèi)的位置信息對應(yīng)的二級緩存的位置信息,則從磁盤內(nèi)的對應(yīng)位置處獲取數(shù)據(jù)后發(fā)送給主存。本實(shí)施例在數(shù)據(jù)庫重啟后可以從二級緩存內(nèi)恢復(fù)數(shù)據(jù),避免長時(shí)間預(yù)熱過程。在數(shù)據(jù)塊的數(shù)據(jù)頭加入對應(yīng)的磁盤內(nèi)的位置信息,將原本離散的數(shù)據(jù)用描述信息進(jìn)程組織, 為描述信息恢復(fù)提供依據(jù),實(shí)現(xiàn)在描述信息的恢復(fù)時(shí)能夠加快讀取速度,使用預(yù)讀策略等。圖6為本發(fā)明數(shù)據(jù)庫內(nèi)的描述信息的恢復(fù)設(shè)備一實(shí)施例的結(jié)構(gòu)示意圖,該設(shè)備可以具體為數(shù)據(jù)庫內(nèi)的管理模塊。該設(shè)備包括判斷單元61和處理單元62 ;判斷單元61用于判斷數(shù)據(jù)庫在上次運(yùn)行后是否正常關(guān)閉;處理單元62用于在所述判斷單元判斷出沒有正常關(guān)閉時(shí),遍歷二級緩存內(nèi)的每個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的塊頭內(nèi)保存對應(yīng)的磁盤位置信息; 根據(jù)所述磁盤位置信息獲取磁盤內(nèi)的數(shù)據(jù)塊;當(dāng)獲取的磁盤內(nèi)的數(shù)據(jù)塊與對應(yīng)的二級緩存內(nèi)的數(shù)據(jù)塊相同時(shí),根據(jù)數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息建立描述信息,所述描述信息用于描述數(shù)據(jù)在磁盤內(nèi)的位置信息與在二級緩存內(nèi)的位置信息的對應(yīng)關(guān)系??蛇x的,所述處理單元62還用于在所述判斷單元判斷出正常關(guān)閉時(shí),從持久化設(shè)備內(nèi)獲取描述信息,所述描述信息為數(shù)據(jù)庫在上次運(yùn)行時(shí)建立并在正常關(guān)閉后保存到持久化設(shè)備中??蛇x的,還包括第一記錄單元,用于在上次運(yùn)行時(shí),將數(shù)據(jù)塊從磁盤內(nèi)讀入主存內(nèi),并記錄所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊從主存內(nèi)置換到二級緩存內(nèi),并在所述數(shù)據(jù)塊的塊頭內(nèi)保存所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息之間的對應(yīng)關(guān)系保存在描述信息內(nèi)??蛇x的,還包括第二記錄單元,用于在上次運(yùn)行時(shí),將數(shù)據(jù)塊從磁盤內(nèi)讀入主存內(nèi),并記錄所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊從主存內(nèi)置換到二級緩存內(nèi),并在所述數(shù)據(jù)塊的塊頭內(nèi)保存所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息之間的對應(yīng)關(guān)系保存在描述信息內(nèi);以及,在上次運(yùn)行正常關(guān)閉后,將所述描述信息保存到持久化設(shè)備內(nèi)。本實(shí)施例通過在二級緩存內(nèi)的數(shù)據(jù)塊的塊頭內(nèi)保存對應(yīng)的磁盤位置信息,可以直接根據(jù)塊頭的磁盤位置信息和數(shù)據(jù)塊自身所在的二級緩存的位置信息建立描述信息,而不需要再次讀取數(shù)據(jù)、置換數(shù)據(jù)和根據(jù)置換過程建立描述信息,可以不需要較長的預(yù)熱時(shí)間便可以實(shí)現(xiàn)描述信息的快速重建,降低了恢復(fù)所需時(shí)間。圖7為本發(fā)明數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的緩存設(shè)備一實(shí)施例的結(jié)構(gòu)示意圖,該設(shè)備可以具體為數(shù)據(jù)庫內(nèi)的管理模塊。該設(shè)備包括讀取單元71、置換單元72和記錄單元73 ;讀取單元 71用于將數(shù)據(jù)塊從磁盤內(nèi)讀入主存內(nèi),并記錄所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;置換單元 72用于將所述數(shù)據(jù)塊從主存內(nèi)置換到二級緩存內(nèi),并在所述數(shù)據(jù)塊的塊頭內(nèi)保存所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;記錄單元73用于將所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息之間的對應(yīng)關(guān)系保存在描述信息內(nèi)??蛇x的,所述記錄單元還用于在數(shù)據(jù)庫正常關(guān)閉后,將所述描述信息保存到持久化設(shè)備內(nèi)。本實(shí)施例在數(shù)據(jù)庫重啟后可以從二級緩存內(nèi)恢復(fù)數(shù)據(jù),避免長時(shí)間預(yù)熱過程。在數(shù)據(jù)塊的數(shù)據(jù)頭加入對應(yīng)的磁盤內(nèi)的位置信息,將原本離散的數(shù)據(jù)用描述信息進(jìn)程組織, 為描述信息的恢復(fù)提供依據(jù),實(shí)現(xiàn)在描述信息的恢復(fù)時(shí)能夠加快讀取速度,使用預(yù)讀策略寸。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(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ù)庫內(nèi)的描述信息的恢復(fù)方法,其特征在于,包括判斷數(shù)據(jù)庫在上次運(yùn)行后是否正常關(guān)閉;如果沒有正常關(guān)閉,遍歷二級緩存內(nèi)的每個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的塊頭內(nèi)保存對應(yīng)的磁盤位置信息;根據(jù)所述磁盤位置信息獲取磁盤內(nèi)的數(shù)據(jù)塊;當(dāng)獲取的磁盤內(nèi)的數(shù)據(jù)塊與對應(yīng)的二級緩存內(nèi)的數(shù)據(jù)塊相同時(shí),根據(jù)數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息建立描述信息,所述描述信息用于描述數(shù)據(jù)在磁盤內(nèi)的位置信息與在二級緩存內(nèi)的位置信息的對應(yīng)關(guān)系。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括如果正常關(guān)閉,從持久化設(shè)備內(nèi)獲取描述信息,所述描述信息為數(shù)據(jù)庫在上次運(yùn)行時(shí)建立并在正常關(guān)閉后保存到持久化設(shè)備中。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括所述數(shù)據(jù)庫在上次運(yùn)行時(shí),將數(shù)據(jù)塊從磁盤內(nèi)讀入主存內(nèi),并記錄所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊從主存內(nèi)置換到二級緩存內(nèi),并在所述數(shù)據(jù)塊的塊頭內(nèi)保存所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息之間的對應(yīng)關(guān)系保存在描述信息內(nèi)。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括所述數(shù)據(jù)庫在上次運(yùn)行時(shí),將數(shù)據(jù)塊從磁盤內(nèi)讀入主存內(nèi),并記錄所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊從主存內(nèi)置換到二級緩存內(nèi),并在所述數(shù)據(jù)塊的塊頭內(nèi)保存所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息之間的對應(yīng)關(guān)系保存在描述信息內(nèi);所述數(shù)據(jù)庫在上次運(yùn)行正常關(guān)閉后,將所述描述信息保存到持久化設(shè)備內(nèi)。
5.一種數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的緩存方法,其特征在于,包括將數(shù)據(jù)塊從磁盤內(nèi)讀入主存內(nèi),并記錄所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊從主存內(nèi)置換到二級緩存內(nèi),并在所述數(shù)據(jù)塊的塊頭內(nèi)保存所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息之間的對應(yīng)關(guān)系保存在描述信息內(nèi)。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,還包括數(shù)據(jù)庫正常關(guān)閉后,將所述描述信息保存到持久化設(shè)備內(nèi)。
7.一種數(shù)據(jù)庫內(nèi)的描述信息的恢復(fù)設(shè)備,其特征在于,包括判斷單元,用于判斷數(shù)據(jù)庫在上次運(yùn)行后是否正常關(guān)閉;處理單元,用于在所述判斷單元判斷出沒有正常關(guān)閉時(shí),遍歷二級緩存內(nèi)的每個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的塊頭內(nèi)保存對應(yīng)的磁盤位置信息;根據(jù)所述磁盤位置信息獲取磁盤內(nèi)的數(shù)據(jù)塊;當(dāng)獲取的磁盤內(nèi)的數(shù)據(jù)塊與對應(yīng)的二級緩存內(nèi)的數(shù)據(jù)塊相同時(shí),根據(jù)數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息建立描述信息,所述描述信息用于描述數(shù)據(jù)在磁盤內(nèi)的位置信息與在二級緩存內(nèi)的位置信息的對應(yīng)關(guān)系。
8.根據(jù)權(quán)利要求7所述的設(shè)備,其特征在于,所述處理單元還用于在所述判斷單元判斷出正常關(guān)閉時(shí),從持久化設(shè)備內(nèi)獲取描述信息,所述描述信息為數(shù)據(jù)庫在上次運(yùn)行時(shí)建立并在正常關(guān)閉后保存到持久化設(shè)備中。
9.根據(jù)權(quán)利要求7所述的設(shè)備,其特征在于,還包括第一記錄單元,用于在上次運(yùn)行時(shí),將數(shù)據(jù)塊從磁盤內(nèi)讀入主存內(nèi),并記錄所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊從主存內(nèi)置換到二級緩存內(nèi),并在所述數(shù)據(jù)塊的塊頭內(nèi)保存所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息之間的對應(yīng)關(guān)系保存在描述信息內(nèi)。
10.根據(jù)權(quán)利要求8所述的設(shè)備,其特征在于,還包括第二記錄單元,用于在上次運(yùn)行時(shí),將數(shù)據(jù)塊從磁盤內(nèi)讀入主存內(nèi),并記錄所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊從主存內(nèi)置換到二級緩存內(nèi),并在所述數(shù)據(jù)塊的塊頭內(nèi)保存所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;將所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息之間的對應(yīng)關(guān)系保存在描述信息內(nèi);以及,在上次運(yùn)行正常關(guān)閉后,將所述描述信息保存到持久化設(shè)備內(nèi)。
11.一種數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的緩存設(shè)備,其特征在于,包括讀取單元,用于將數(shù)據(jù)塊從磁盤內(nèi)讀入主存內(nèi),并記錄所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;置換單元,用于將所述數(shù)據(jù)塊從主存內(nèi)置換到二級緩存內(nèi),并在所述數(shù)據(jù)塊的塊頭內(nèi)保存所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息;記錄單元,用于將所述數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息之間的對應(yīng)關(guān)系保存在描述信息內(nèi)。
12.根據(jù)權(quán)利要求11所述的設(shè)備,其特征在于,所述記錄單元還用于在數(shù)據(jù)庫正常關(guān)閉后,將所述描述信息保存到持久化設(shè)備內(nèi)。
全文摘要
本發(fā)明提供一種數(shù)據(jù)庫內(nèi)的描述信息的恢復(fù)和數(shù)據(jù)的緩存方法和設(shè)備。該方法包括判斷數(shù)據(jù)庫在上次運(yùn)行后是否正常關(guān)閉;如果沒有正常關(guān)閉,遍歷二級緩存內(nèi)的每個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的塊頭內(nèi)保存對應(yīng)的磁盤位置信息;根據(jù)所述磁盤位置信息獲取磁盤內(nèi)的數(shù)據(jù)塊;當(dāng)獲取的磁盤內(nèi)的數(shù)據(jù)塊與對應(yīng)的二級緩存內(nèi)的數(shù)據(jù)塊相同時(shí),根據(jù)數(shù)據(jù)塊在磁盤內(nèi)的位置信息和在二級緩存內(nèi)的位置信息建立描述信息,所述描述信息用于描述數(shù)據(jù)在磁盤內(nèi)的位置信息與在二級緩存內(nèi)的位置信息的對應(yīng)關(guān)系。本發(fā)明實(shí)施例可以降低數(shù)據(jù)庫的描述信息在恢復(fù)時(shí)所需時(shí)間。
文檔編號G06F17/30GK102567490SQ201110433019
公開日2012年7月11日 申請日期2011年12月21日 優(yōu)先權(quán)日2011年12月21日
發(fā)明者周帥, 張振龍 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
英山县| 含山县| 桑植县| 右玉县| 汨罗市| 深州市| 汉源县| 永平县| 安塞县| 宁陵县| 台北县| 科技| 成都市| 临沧市| 怀柔区| 拉萨市| 鄱阳县| 自治县| 安化县| 莒南县| 庄河市| 古蔺县| 通河县| 肥城市| 辽宁省| 准格尔旗| 堆龙德庆县| 云和县| 习水县| 屏东市| 南川市| 望谟县| 青阳县| 桐乡市| 临泉县| 镇沅| 垣曲县| 东莞市| 荥阳市| 秭归县| 江阴市|