專利名稱:一種內(nèi)存數(shù)據(jù)庫及其數(shù)據(jù)處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫技術(shù),尤其涉及一種內(nèi)存數(shù)據(jù)庫及其數(shù)據(jù)處理方法。
背景技術(shù):
內(nèi)存數(shù)據(jù)庫是將數(shù)據(jù)放在內(nèi)存中操作的數(shù)據(jù)庫。相對于磁盤,內(nèi)存的數(shù)據(jù)讀寫速 度要高出幾個數(shù)量級,將數(shù)據(jù)保存在內(nèi)存中相比從磁盤上訪問能夠極大地提高應(yīng)用的性 能。內(nèi)存數(shù)據(jù)庫拋棄了磁盤數(shù)據(jù)管理的傳統(tǒng)方式,基于全部數(shù)據(jù)都在內(nèi)存中重新設(shè)計(jì)了體 系結(jié)構(gòu),并且在數(shù)據(jù)緩存、快速算法、并行操作方面也進(jìn)行了相應(yīng)的改進(jìn),所以數(shù)據(jù)處理速 度比傳統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)處理速度要快很多,一般都在10倍以上。同時,因內(nèi)存數(shù)據(jù)庫所有 活動數(shù)據(jù)全部存儲在內(nèi)存,存在數(shù)據(jù)丟失的風(fēng)險(xiǎn)。如何提高內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)安全性就成 為內(nèi)存數(shù)據(jù)庫需要解決的問題。目前已有的解決方案,主要是通過維護(hù)主備兩個或多個內(nèi)存數(shù)據(jù)庫,并通過消息 接口或日志文件來構(gòu)造一個內(nèi)存庫的備份數(shù)據(jù),以提高內(nèi)存數(shù)據(jù)庫的可靠性和安全性。但是,現(xiàn)有的這些方法需要額外的一個或多個備用設(shè)備來承載備份內(nèi)存數(shù)據(jù)庫, 這樣就提高了系統(tǒng)的成本。同時還需要增加同步接口,來保證兩個或多個內(nèi)存數(shù)據(jù)庫數(shù)據(jù) 一致,不但增加了內(nèi)存數(shù)據(jù)庫的邏輯復(fù)雜度,同時也降低了其性能。
發(fā)明內(nèi)容
本發(fā)明要解決的主要技術(shù)問題是,提供一種低成本且有效提高數(shù)據(jù)安全性的內(nèi)存 數(shù)據(jù)庫及其實(shí)現(xiàn)方法。為解決上述技術(shù)問題,本發(fā)明提供一種內(nèi)存數(shù)據(jù)庫數(shù)據(jù)處理方法,包括以下步 驟將內(nèi)存數(shù)據(jù)庫進(jìn)程與內(nèi)存數(shù)據(jù)分離;創(chuàng)建共享內(nèi)存段,并將所述內(nèi)存數(shù)據(jù)存入所述共享內(nèi)存段,將內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū) 地址指向所述共享內(nèi)存段地址;當(dāng)所述內(nèi)存數(shù)據(jù)庫進(jìn)程啟動時,連接所述共享內(nèi)存段。所述共享內(nèi)存段包括共享內(nèi)存注冊信息段和共享內(nèi)存數(shù)據(jù)段;所述將所述內(nèi)存數(shù) 據(jù)存入所述共享內(nèi)存段具體包括將所述內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地址初始化為所述共享內(nèi)存數(shù) 據(jù)段地址;將所述內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)字典信息注冊到所述共享內(nèi)存注冊信息段,將所述內(nèi) 存數(shù)據(jù)存入內(nèi)存表。還包括將創(chuàng)建后的共享內(nèi)存段數(shù)據(jù)存入磁盤的數(shù)據(jù)備份過程。還包括內(nèi)存數(shù)據(jù)庫的重啟過程,所述重啟過程包括檢查共享內(nèi)存段是否存在; 若存在共享內(nèi)存段,將所述內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地址指向所述共享內(nèi)存數(shù)據(jù)段地址。所述重啟過程還包括若不存在共享內(nèi)存段,則創(chuàng)建共享內(nèi)存段,并將存入磁盤的 備份數(shù)據(jù)加載到所述共享內(nèi)存數(shù)據(jù)段中。一種內(nèi)存數(shù)據(jù)庫,包括內(nèi)存庫管理單元和共享內(nèi)存段管理單元;所述內(nèi)存庫管理單元用于將內(nèi)存數(shù)據(jù)庫進(jìn)程與內(nèi)存數(shù)據(jù)分離;所述共享內(nèi)存段管理單元用于創(chuàng)建共享內(nèi)存 段,將所述內(nèi)存數(shù)據(jù)存入所述共享內(nèi)存段,將內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地址指向所述共享內(nèi)存數(shù) 據(jù)段地址;所述內(nèi)存庫管理單元還用于當(dāng)所述內(nèi)存數(shù)據(jù)庫進(jìn)程啟時,連接所述共享內(nèi)存段。所述共享內(nèi)存段包括共享內(nèi)存注冊信息段和共享內(nèi)存數(shù)據(jù)段;所述內(nèi)存庫管理單 元還用于將內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地址初始化為所述共享內(nèi)存數(shù)據(jù)段地址;將所述內(nèi)存數(shù)據(jù)庫 的數(shù)據(jù)字典信息注冊到所述共享內(nèi)存注冊信息段,將所述內(nèi)存數(shù)據(jù)存入內(nèi)存表。還包括備份單元,用于將共享內(nèi)存段數(shù)據(jù)存入磁盤進(jìn)行數(shù)據(jù)備份。所述內(nèi)存庫管理單元還用于當(dāng)內(nèi)存數(shù)據(jù)庫進(jìn)行重啟時,檢查共享內(nèi)存段是否存 在,若存在共享內(nèi)存段,將所述內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地址指向所述共享內(nèi)存數(shù)據(jù)段地址。所述共享內(nèi)存段管理單元還用于當(dāng)內(nèi)存數(shù)據(jù)庫進(jìn)行重啟時,若不存在共享內(nèi)存 段,則創(chuàng)建共享內(nèi)存段,并將存入磁盤的備份數(shù)據(jù)加載到所述共享內(nèi)存數(shù)據(jù)段中。本發(fā)明的有益效果是(1)本發(fā)明中采用內(nèi)存數(shù)據(jù)庫進(jìn)程與內(nèi)存數(shù)據(jù)分離,并以共享內(nèi)存段的方式申請 內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)存儲空間,在內(nèi)存數(shù)據(jù)庫進(jìn)程異常的情況下,內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)由于存 儲在共享內(nèi)存段中而不受影響,提高了內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)安全性;并且無需進(jìn)行主備內(nèi)存 數(shù)據(jù)庫數(shù)據(jù)同步,降低了設(shè)備成本和設(shè)備維護(hù)復(fù)雜度。(2)本發(fā)明還提供共享內(nèi)存段的備份,進(jìn)一步提高了數(shù)據(jù)存儲的可靠性和安全性。(3)本發(fā)明在內(nèi)存數(shù)據(jù)庫異常時,可以通過重啟內(nèi)存數(shù)據(jù)庫,將內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū) 地址指向存有內(nèi)存數(shù)據(jù)庫數(shù)據(jù)的共享內(nèi)存數(shù)據(jù)段,從而既能保證數(shù)據(jù)不丟失,又縮短了內(nèi) 存數(shù)據(jù)庫的啟動時間。
圖1為本發(fā)明內(nèi)存數(shù)據(jù)庫實(shí)施方式中的結(jié)構(gòu)示意圖;圖2為本發(fā)明內(nèi)存數(shù)據(jù)庫實(shí)施方式中的另一結(jié)構(gòu)示意圖;圖3為本發(fā)明方法實(shí)施方式中的流程圖;圖4為本發(fā)明方法實(shí)施方式中的重啟過程的流程圖;圖5為本發(fā)明方法實(shí)施方式中的具體流程圖。
具體實(shí)施例方式下面通過具體實(shí)施方式
結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)說明。本發(fā)明的關(guān)鍵技術(shù)是將內(nèi)存數(shù)據(jù)庫進(jìn)程與內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)分離,同時以共享內(nèi) 存段的方式申請內(nèi)存數(shù)據(jù)庫存儲空間,利用共享內(nèi)存數(shù)據(jù)段的駐留特性,提高全內(nèi)存數(shù)據(jù) 庫的容災(zāi)能力。該駐留特性即進(jìn)程申請共享內(nèi)存段后,如果不顯式刪除該共享內(nèi)存段,即 便進(jìn)程退出,則該共享內(nèi)存段仍舊存在。將內(nèi)存數(shù)據(jù)庫的內(nèi)存申請?jiān)诠蚕韮?nèi)存段上,則可以 保證內(nèi)存數(shù)據(jù)庫異常退出時,存儲內(nèi)存數(shù)據(jù)庫數(shù)據(jù)的共享內(nèi)存段仍舊存在,從而使得該數(shù) 據(jù)不丟失。當(dāng)內(nèi)存數(shù)據(jù)庫進(jìn)程再次啟動時,內(nèi)存數(shù)據(jù)庫進(jìn)程根據(jù)注冊信息重新連接這些共 享內(nèi)存段,這樣既能保證數(shù)據(jù)不丟失,又能縮短內(nèi)存數(shù)據(jù)庫的啟動耗時,因?yàn)閮?nèi)存數(shù)據(jù)庫的 數(shù)據(jù)加載時間僅為共享內(nèi)存段的連接時間。圖1示出根據(jù)本發(fā)明內(nèi)存數(shù)據(jù)庫的一個實(shí)施例的結(jié)構(gòu)示意圖,包括內(nèi)存庫管理單元和共享內(nèi)存段管理單元。內(nèi)存庫管理單元用于將內(nèi)存數(shù)據(jù)庫進(jìn)程與內(nèi)存數(shù)據(jù)分離;共享 內(nèi)存段管理單元用于創(chuàng)建共享內(nèi)存段,將內(nèi)存數(shù)據(jù)存入共享內(nèi)存段,將內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū) 地址指向共享內(nèi)存數(shù)據(jù)段地址;內(nèi)存庫管理單元還用于當(dāng)內(nèi)存數(shù)據(jù)庫進(jìn)程啟時,連接共享 內(nèi)存段。在一種實(shí)施方式中,該共享內(nèi)存段包括共享內(nèi)存注冊信息段和共享內(nèi)存數(shù)據(jù)段; 內(nèi)存庫管理單元還用于將內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地址初始化為共享內(nèi)存數(shù)據(jù)段地址;將內(nèi)存數(shù) 據(jù)庫的數(shù)據(jù)字典信息注冊到共享內(nèi)存注冊信息段,將內(nèi)存數(shù)據(jù)存入內(nèi)存表。在一種實(shí)施方式中,還包括備份單元,用于將共享內(nèi)存數(shù)據(jù)段數(shù)據(jù)寫入磁盤進(jìn)行 數(shù)據(jù)備份。內(nèi)存庫管理單元還用于當(dāng)內(nèi)存數(shù)據(jù)庫進(jìn)行重啟時,檢查共享內(nèi)存段是否存在,若 存在共享內(nèi)存段,初始化內(nèi)存數(shù)據(jù)庫數(shù)據(jù)字典和數(shù)據(jù)區(qū)地址,將所述內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地 址指向所述共享內(nèi)存數(shù)據(jù)段地址。共享內(nèi)存段管理單元還用于當(dāng)內(nèi)存數(shù)據(jù)庫進(jìn)行重啟時,若不存在共享內(nèi)存段,則 創(chuàng)建共享內(nèi)存段,即重新以共享內(nèi)存段方式申請內(nèi)存數(shù)據(jù)存儲空間,并將存入磁盤的備份 數(shù)據(jù)加載到共享內(nèi)存數(shù)據(jù)段中。圖2示出根據(jù)本發(fā)明內(nèi)存數(shù)據(jù)庫的另一種實(shí)施方式的結(jié)構(gòu)示意圖,包括配置管理 單元、內(nèi)存庫管理單元、共享內(nèi)存段管理單元以及數(shù)據(jù)備份單元。配置管理單元實(shí)現(xiàn)共享內(nèi) 存數(shù)據(jù)段信息配置以及內(nèi)存數(shù)據(jù)庫信息配置;共享內(nèi)存段管理單元實(shí)現(xiàn)共享內(nèi)存注冊段、 共享內(nèi)存數(shù)據(jù)段的申請與釋放管理等;內(nèi)存庫管理單元實(shí)現(xiàn)對內(nèi)存數(shù)據(jù)庫進(jìn)程、內(nèi)存表、數(shù) 據(jù)字典等的管理以及提供對外數(shù)據(jù)訪問接口 ;數(shù)據(jù)備份單元根據(jù)共享內(nèi)存注冊信息,定位 到共享內(nèi)存數(shù)據(jù)段,并能定位到具體的內(nèi)存表。將內(nèi)存表數(shù)據(jù)備份到磁盤,從而支持全內(nèi)存 數(shù)據(jù)庫服務(wù)器的下電備份操作。數(shù)據(jù)備份單元可配置為監(jiān)測模式。即實(shí)時監(jiān)測共享內(nèi)存數(shù) 據(jù)的庫的運(yùn)行情況,如果發(fā)現(xiàn)內(nèi)存數(shù)據(jù)庫進(jìn)程退出,則直接進(jìn)行備份,將共享內(nèi)存段數(shù)據(jù)存 入磁盤。上述四個單元具體實(shí)現(xiàn)既可以合一設(shè)置,也可以獨(dú)立的進(jìn)程方式實(shí)現(xiàn),具體實(shí)施 時可以根據(jù)設(shè)計(jì)需要靈活選擇組織方式。圖3示出根據(jù)本發(fā)明內(nèi)存數(shù)據(jù)庫數(shù)據(jù)處理方法的一種實(shí)施方式的流程圖,包括內(nèi) 存數(shù)據(jù)庫的創(chuàng)建過程,該創(chuàng)建過程包括步驟302 將內(nèi)存數(shù)據(jù)庫進(jìn)程與內(nèi)存數(shù)據(jù)分離;步驟304 創(chuàng)建共享內(nèi)存段,并將內(nèi)存數(shù)據(jù)存入共享內(nèi)存段,將內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū) 地址指向所述共享內(nèi)存段地址;步驟306 當(dāng)所述內(nèi)存數(shù)據(jù)庫進(jìn)程啟動時,連接所述共享內(nèi)存段。在一種實(shí)施方式中,共享內(nèi)存段包括共享內(nèi)存注冊信息段和共享內(nèi)存數(shù)據(jù)段;將 內(nèi)存數(shù)據(jù)存入共享內(nèi)存段具體可包括將內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地址初始化為共享內(nèi)存數(shù)據(jù)段 地址;初始化數(shù)據(jù)字典和內(nèi)存表,即將內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)字典信息注冊到共享內(nèi)存注冊信 息段,將內(nèi)存數(shù)據(jù)存入內(nèi)存表。在另一種實(shí)施方式中,還可包括將創(chuàng)建后的共享內(nèi)存數(shù)據(jù)段數(shù)據(jù)寫入磁盤的數(shù)據(jù) 備份過程。該備份過程是根據(jù)共享內(nèi)存注冊信息,定位到內(nèi)存數(shù)據(jù)庫的共享內(nèi)存數(shù)據(jù)段,并 能定位到具體的內(nèi)存表,將內(nèi)存表內(nèi)的數(shù)據(jù)備份到磁盤,從而支持內(nèi)存數(shù)據(jù)庫服務(wù)器的下電備份操作。圖4示出根據(jù)本發(fā)明內(nèi)存數(shù)據(jù)庫數(shù)據(jù)處理方法的一種實(shí)施方式中的重啟過程的 流程圖,包括步驟402 根據(jù)配置信息檢查共享內(nèi)存數(shù)據(jù)段是否存在,監(jiān)測注冊信息和數(shù)據(jù)信 息是否完整;步驟404 如果共享內(nèi)存數(shù)據(jù)段已經(jīng)存在,初始化內(nèi)存數(shù)據(jù)庫數(shù)據(jù)字典和數(shù)據(jù)區(qū) 地址,則直接將內(nèi)存數(shù)據(jù)庫進(jìn)程連接到共享內(nèi)存數(shù)據(jù)段;步驟406 在共享內(nèi)存段不存在時,則創(chuàng)建共享內(nèi)存段,并將存儲在磁盤的備份數(shù) 據(jù)加載到共享內(nèi)存數(shù)據(jù)段中。本發(fā)明內(nèi)存數(shù)據(jù)庫數(shù)據(jù)處理方法的實(shí)施方式中,內(nèi)存數(shù)據(jù)庫的實(shí)現(xiàn)包括下列情 況1、內(nèi)存數(shù)據(jù)庫初次啟動,這種情況下共享內(nèi)存段尚未創(chuàng)建;2、內(nèi)存數(shù)據(jù)庫退出后重新啟動,內(nèi)存數(shù)據(jù)庫之前使用的共享內(nèi)存數(shù)據(jù)段仍然駐留 在操作系統(tǒng)內(nèi);3、服務(wù)器重新上電后內(nèi)存數(shù)據(jù)庫進(jìn)程啟動,共享內(nèi)存數(shù)據(jù)段磁盤備份已經(jīng)存在, 即下電前已經(jīng)通過數(shù)據(jù)備份工具將共享內(nèi)存數(shù)據(jù)段數(shù)據(jù)備份到磁盤。圖5示出根據(jù)本發(fā)明內(nèi)存數(shù)據(jù)庫數(shù)據(jù)處理方法的實(shí)施方式中的具體流程圖,其流 程包括步驟502 讀取配置信息;內(nèi)存數(shù)據(jù)庫進(jìn)程首先從配置管理單元獲取內(nèi)存數(shù)據(jù)庫 配置和共享內(nèi)存段配置信息;步驟504 檢查共享內(nèi)存段是否存在;內(nèi)存庫管理單元依據(jù)共享內(nèi)存段配置,檢測 共享內(nèi)存注冊段和共享內(nèi)存數(shù)據(jù)段是否存在,如果檢測到這些共享內(nèi)存段,則表明該內(nèi)存 數(shù)據(jù)庫已經(jīng)啟動過,轉(zhuǎn)步驟516 ;否則轉(zhuǎn)步驟506 ;步驟506 通知共享內(nèi)存段管理單元創(chuàng)建共享內(nèi)存段;創(chuàng)建共享內(nèi)存段;如果未檢 測到共享內(nèi)存段,內(nèi)存庫管理單元通知共享內(nèi)存段管理單元申請共享內(nèi)存段,共享內(nèi)存段 包括共享內(nèi)存注冊段和共享內(nèi)存數(shù)據(jù)段;步驟508 將共享內(nèi)存數(shù)據(jù)段初始化為內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地址;申請成功后共享 內(nèi)存段管理單元將共享內(nèi)存數(shù)據(jù)段信息發(fā)送給內(nèi)存庫管理單元,內(nèi)存庫管理單元連接共享 內(nèi)存數(shù)據(jù)段,并根據(jù)配置信息創(chuàng)建空的數(shù)據(jù)字典,僅將內(nèi)存庫數(shù)據(jù)區(qū)地址寫入數(shù)據(jù)字典;步驟510 是否有內(nèi)存數(shù)據(jù)庫數(shù)據(jù)備份;檢測共享內(nèi)存數(shù)據(jù)段存入磁盤的備份數(shù) 據(jù)是否已經(jīng)存在,若是轉(zhuǎn)步驟512,否則轉(zhuǎn)步驟514;步驟512 加載數(shù)據(jù)到共享內(nèi)存數(shù)據(jù)段;說明下電前已經(jīng)通過數(shù)據(jù)備份工具將共 享內(nèi)存數(shù)據(jù)段數(shù)據(jù)備份到磁盤,內(nèi)存數(shù)據(jù)庫管理單元將備份在磁盤數(shù)據(jù)加載到內(nèi)存數(shù)據(jù)庫 數(shù)據(jù)區(qū)內(nèi),實(shí)際為加載到共享內(nèi)存數(shù)據(jù)段內(nèi);步驟514:初始化內(nèi)存表、更新數(shù)據(jù)字典及注冊段;掃描內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū),檢查 數(shù)據(jù)合法性、統(tǒng)計(jì)內(nèi)存表記錄數(shù)以及重建內(nèi)存表上索引;將內(nèi)存表記錄數(shù)、狀態(tài)、偏移等更 新到數(shù)據(jù)字典,初始化內(nèi)存表以及更新數(shù)據(jù)字典,最后將數(shù)據(jù)字典信息寫入到共享內(nèi)存注 冊段,流程結(jié)束;步驟516 將共享內(nèi)存數(shù)據(jù)段初始化為內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地址;將共享內(nèi)存數(shù)據(jù)段初始化為內(nèi)存庫數(shù)據(jù)區(qū)地址;步驟518 根據(jù)注冊段信息初始化內(nèi)存庫字典;直接將共享內(nèi)存注冊段內(nèi)的注冊 信息同步到數(shù)據(jù)字典,這些信息包括內(nèi)存對象占用的數(shù)據(jù)區(qū)長度、在數(shù)據(jù)區(qū)的偏移以及狀 態(tài)等信息;步驟520 初始化內(nèi)存表;重建內(nèi)存表,在內(nèi)存表上索引重建結(jié)束后,將內(nèi)存表置 為可用;流程結(jié)束。內(nèi)存數(shù)據(jù)運(yùn)行期間,如果數(shù)據(jù)字典發(fā)生更新則將更新數(shù)據(jù)同步到共享內(nèi)存注冊 段。綜上所述,采用本發(fā)明的方案,可以有效提高全內(nèi)存數(shù)據(jù)庫的容災(zāi)能力,具有很強(qiáng) 的通用性。本發(fā)明已在短消息中心系統(tǒng)中應(yīng)用,起到明顯的優(yōu)化作用。以上內(nèi)容是結(jié)合具體的實(shí)施方式對本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定本發(fā) 明的具體實(shí)施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫 離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù) 范圍。
權(quán)利要求
一種內(nèi)存數(shù)據(jù)庫數(shù)據(jù)處理方法,其特征在于,包括以下步驟將內(nèi)存數(shù)據(jù)庫進(jìn)程與內(nèi)存數(shù)據(jù)分離;創(chuàng)建共享內(nèi)存段,并將所述內(nèi)存數(shù)據(jù)存入所述共享內(nèi)存段,將內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地址指向所述共享內(nèi)存段地址;當(dāng)所述內(nèi)存數(shù)據(jù)庫進(jìn)程啟動時,連接所述共享內(nèi)存段。
2.如權(quán)利要求1所述的方法,其特征在于,所述共享內(nèi)存段包括共享內(nèi)存注冊信息段 和共享內(nèi)存數(shù)據(jù)段;所述將所述內(nèi)存數(shù)據(jù)存入所述共享內(nèi)存段具體包括將所述內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地址初始化為所述共享內(nèi)存數(shù)據(jù)段地址;將所述內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)字典信息注冊到所述共享內(nèi)存注冊信息段,將所述內(nèi)存數(shù)據(jù) 存入內(nèi)存表。
3.如權(quán)利要求1或2任一所述的方法,其特征在于,還包括將創(chuàng)建后的共享內(nèi)存段數(shù)據(jù) 存入磁盤的數(shù)據(jù)備份過程。
4.如權(quán)利要求3所述的方法,其特征在于,還包括內(nèi)存數(shù)據(jù)庫的重啟過程,所述重啟過 程包括檢查共享內(nèi)存段是否存在;若存在共享內(nèi)存段,將所述內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地址指向所述共享內(nèi)存數(shù)據(jù)段地址。
5.如權(quán)利要求4所述的方法,其特征在于,所述重啟過程還包括若不存在共享內(nèi)存段,則創(chuàng)建共享內(nèi)存段,并將存入磁盤的備份數(shù)據(jù)加載到所述共享 內(nèi)存數(shù)據(jù)段中。
6.一種內(nèi)存數(shù)據(jù)庫,其特征在于,包括內(nèi)存庫管理單元和共享內(nèi)存段管理單元;所述 內(nèi)存庫管理單元用于將內(nèi)存數(shù)據(jù)庫進(jìn)程與內(nèi)存數(shù)據(jù)分離;所述共享內(nèi)存段管理單元用于創(chuàng) 建共享內(nèi)存段,將所述內(nèi)存數(shù)據(jù)存入所述共享內(nèi)存段,將內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地址指向所述 共享內(nèi)存數(shù)據(jù)段地址;所述內(nèi)存庫管理單元還用于當(dāng)所述內(nèi)存數(shù)據(jù)庫進(jìn)程啟時,連接所述 共享內(nèi)存段。
7.如權(quán)利要求6所述的內(nèi)存數(shù)據(jù)庫,其特征在于,所述共享內(nèi)存段包括共享內(nèi)存注冊 信息段和共享內(nèi)存數(shù)據(jù)段;所述內(nèi)存庫管理單元還用于將內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地址初始化為 所述共享內(nèi)存數(shù)據(jù)段地址;將所述內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)字典信息注冊到所述共享內(nèi)存注冊信 息段,將所述內(nèi)存數(shù)據(jù)存入內(nèi)存表。
8.如權(quán)利要求6或7所述的內(nèi)存數(shù)據(jù)庫,其特征在于,還包括備份單元,用于將共享內(nèi) 存段數(shù)據(jù)存入磁盤進(jìn)行數(shù)據(jù)備份。
9.如權(quán)利要求8所述的內(nèi)存數(shù)據(jù)庫,其特征在于,所述內(nèi)存庫管理單元還用于當(dāng)內(nèi)存 數(shù)據(jù)庫進(jìn)行重啟時,檢查共享內(nèi)存段是否存在,若存在共享內(nèi)存段,將所述內(nèi)存數(shù)據(jù)庫數(shù)據(jù) 區(qū)地址指向所述共享內(nèi)存數(shù)據(jù)段地址。
10.如權(quán)利要求9所述的內(nèi)存數(shù)據(jù)庫,其特征在于,所述共享內(nèi)存段管理單元還用于當(dāng) 內(nèi)存數(shù)據(jù)庫進(jìn)行重啟時,若不存在共享內(nèi)存段,則創(chuàng)建共享內(nèi)存段,并將存入磁盤的備份數(shù) 據(jù)加載到所述共享內(nèi)存數(shù)據(jù)段中。全文摘要
本發(fā)明公開了一種內(nèi)存數(shù)據(jù)庫數(shù)據(jù)處理方法,包括以下步驟將內(nèi)存數(shù)據(jù)庫進(jìn)程與內(nèi)存數(shù)據(jù)分離;創(chuàng)建共享內(nèi)存段,并將所述內(nèi)存數(shù)據(jù)存入所述共享內(nèi)存段,將內(nèi)存數(shù)據(jù)庫數(shù)據(jù)區(qū)地址指向所述共享內(nèi)存段地址;當(dāng)所述內(nèi)存數(shù)據(jù)庫進(jìn)程啟動時,連接所述共享內(nèi)存段。本發(fā)明還公開了一種內(nèi)存數(shù)據(jù)庫。本發(fā)明中采用內(nèi)存數(shù)據(jù)庫進(jìn)程與內(nèi)存數(shù)據(jù)分離,并以共享內(nèi)存段的方式申請內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)存儲空間,在內(nèi)存數(shù)據(jù)庫進(jìn)程異常的情況下,內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)由于存儲在共享內(nèi)存段中而不受影響,提高了內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)安全性;并且無需進(jìn)行主備內(nèi)存數(shù)據(jù)庫數(shù)據(jù)同步,降低了設(shè)備成本和設(shè)備維護(hù)復(fù)雜度。
文檔編號G06F17/30GK101901250SQ20101019513
公開日2010年12月1日 申請日期2010年6月8日 優(yōu)先權(quán)日2010年6月8日
發(fā)明者李學(xué)領(lǐng) 申請人:中興通訊股份有限公司