專利名稱:一種基于數(shù)據(jù)庫(kù)的重復(fù)數(shù)據(jù)刪除方法
一種基于數(shù)據(jù)庫(kù)的重復(fù)數(shù)據(jù)刪除方法
1、 方法領(lǐng)域
本發(fā)明是一種數(shù)據(jù)縮減方法,通常用于基于磁盤的備份系統(tǒng),旨在減少存儲(chǔ)系統(tǒng)中使用的 存儲(chǔ)容量。采用"冗余數(shù)據(jù)刪除"方法可以將存儲(chǔ)的數(shù)據(jù)縮減為原來(lái)的1/20,從而讓出更多的 備份空間,不僅可以使磁盤上的備份數(shù)據(jù)保存更長(zhǎng)的時(shí)間,而且還可以節(jié)約離線存儲(chǔ)時(shí)所需的 大量的帶寬。
2、 方法背景
存儲(chǔ)空間不足不只是要添購(gòu)存儲(chǔ)設(shè)備,更要面臨調(diào)整存儲(chǔ)架構(gòu)后接踵而至的種種設(shè)定工作。 這些工作的復(fù)雜繁瑣就不用說(shuō)了,在擴(kuò)充存儲(chǔ)容量的過(guò)程中,更可能需要停機(jī),這會(huì)嚴(yán)重影響 到企業(yè)的正常營(yíng)運(yùn)。企業(yè)為了保護(hù)數(shù)據(jù)必須定期執(zhí)行數(shù)據(jù)備份,這是數(shù)據(jù)快速累積的原因之一。 尤其現(xiàn)今有些企業(yè)開(kāi)始先備份到速度較快的磁盤,再逐次備份至磁帶等設(shè)備,對(duì)于必須趕在當(dāng) 日下班至隔F1上班前完成大量備份的企業(yè)而言,磁盤備份是個(gè)好方法,備份快、回復(fù)也快,但
磁盤備份無(wú)疑會(huì)加速磁盤空間的消耗。
重復(fù)數(shù)據(jù)刪除方法如字義所言,就是不存儲(chǔ)重復(fù)的部分,以減少空間耗用。以重復(fù)性最高
的數(shù)據(jù)備份來(lái)說(shuō),如果每個(gè)備份檔的差異只有30%,也就代表有70%的空間白白浪費(fèi)。重復(fù)數(shù)據(jù) 刪除方法就是要想辦法找出相同的部分,相同的只存儲(chǔ)一份,以索引方法來(lái)記錄,需要還原時(shí) 就能回溯計(jì)算出原來(lái)文件的組成型式。
重復(fù)數(shù)據(jù)刪除方法支持在已有的磁盤設(shè)備上存儲(chǔ)更多的備份數(shù)據(jù)。因此采用"重復(fù)數(shù)據(jù)刪 除"方法可以增加保存?zhèn)浞輸?shù)據(jù)的時(shí)間,減少數(shù)據(jù)中心的消耗,降低成本。如果刪除重復(fù)數(shù)據(jù) 后再通過(guò)WAN發(fā)送,那么就能夠節(jié)省大量的帶寬,并且可以取代磁帶實(shí)現(xiàn)網(wǎng)上離線備份。
因此如何提供一種方法,使其應(yīng)用在數(shù)據(jù)備份系統(tǒng)中,能夠增加磁盤備份利用率,節(jié)約備 份空間是目前數(shù)據(jù)急劇增加面臨的挑戰(zhàn)。 '
3
發(fā)明內(nèi)容
一種基于數(shù)據(jù)庫(kù)的重復(fù)數(shù)據(jù)刪除方法,該系統(tǒng)將文件比較方法和數(shù)據(jù)庫(kù)方法有機(jī)的應(yīng)用在 一起,采用"冗余數(shù)據(jù)刪除"方法可以將存儲(chǔ)的數(shù)據(jù)縮減為原來(lái)的1/20,從而讓出更多的備份 空間,不僅可以使磁盤上的備份數(shù)據(jù)保存更長(zhǎng)的時(shí)間,而且還可以節(jié)約離線存儲(chǔ)時(shí)所需的大量 的帶寬。該系統(tǒng)體系結(jié)構(gòu)包括界面管理模塊(1)、文件管理模塊(2)、鏈接轉(zhuǎn)移模塊(3)、 文件比較模塊(4)、指紋模塊(5)、數(shù)據(jù)管理模塊(6)和數(shù)據(jù)庫(kù)(7),其中界面管理模塊(1)為用戶提供管理界面,方便用戶交互,提供文件查詢、瀏覽,讀取文件 等功能。
文件管理模塊(2)主要負(fù)責(zé)文件管理,比如文件的新建、刪除、修改,負(fù)責(zé)文件的讀寫, 另外在文件變化時(shí)負(fù)責(zé)將新文件與舊文件進(jìn)行比較,將文件信息記錄到數(shù)據(jù)庫(kù)中。另外在文件 顯示時(shí)負(fù)責(zé)從數(shù)據(jù)庫(kù)中讀出文件和目錄信息按照文件目錄樹(shù)的形式進(jìn)行顯示。
鏈接轉(zhuǎn)移模塊(3)在一個(gè)新文件被寫入時(shí),首先會(huì)調(diào)研指紋模塊(5)為這個(gè)文件生成唯一 的HASH散列,然后根據(jù)這個(gè)HASH散列從數(shù)據(jù)庫(kù)中查找是否存在,如果已經(jīng)存在,則在數(shù)據(jù)庫(kù) 中將此文件的鏈接與己存在的文件,鏈接配置。
文件比較模塊(4)文件兩文件是否相同。
指紋模塊(5)讀取文件屬性為每一個(gè)文件生成一個(gè)指紋標(biāo)示,此標(biāo)示為一個(gè)HASH散列, 不同的文件其HASH散列是不一樣的,唯一的。如果兩個(gè)文件的HASH散列是一樣的,則說(shuō)明這 兩個(gè)文件是相同的,只需要備份一份即可。
數(shù)據(jù)管理模塊(6)為數(shù)據(jù)庫(kù)操作管理模塊,主要負(fù)責(zé)和數(shù)據(jù)庫(kù)(7)交互,寫入記錄到數(shù)據(jù)庫(kù) (7),從數(shù)據(jù)庫(kù)中査收文件信息等功能。 '
數(shù)據(jù)庫(kù)(7)主要用于數(shù)據(jù)存儲(chǔ)和査詢功能, 一般可以為SQLite、 mysql、 sqlserver等數(shù)據(jù)庫(kù)。 在一個(gè)典型的配置環(huán)境里,如果是寫入文件,文件寫入到磁盤之后,指紋模塊(5)根據(jù)文 件的內(nèi)容生成一個(gè)指紋標(biāo)示HASH散列(9),不同的文件其HASH散列是不一樣的,唯一的。將 生成的HASH散列通過(guò)數(shù)據(jù)管理模塊(6)到數(shù)據(jù)庫(kù)(7)中去査詢是否有同樣HASH散列(9)的文件 存在,如果沒(méi)有就保存到磁盤上,同時(shí)將文件信息,包括文件名、源文件路徑、寫入時(shí)間、HASH 散列值作為一條記錄保存到數(shù)據(jù)庫(kù)中。如果己經(jīng)存在此文件,則文件不需要保存,只是通過(guò)鏈 接轉(zhuǎn)移模塊(3)將文件信息鏈接到己有的文件路徑上,并且作為一條新記錄插入到數(shù)據(jù)庫(kù)中。 如果是讀文件則先從數(shù)據(jù)庫(kù)中將文件和目錄信息讀取出來(lái),并且以文件樹(shù)的形式顯示。如 果有多個(gè)文件的HASH散列(9)相同,則這多個(gè)文件同時(shí)指向7"個(gè)具體的文件。當(dāng)需要讀取或 者拷貝時(shí),就直接從文件路徑讀取真實(shí)的文件。
本發(fā)明的基于數(shù)據(jù)庫(kù)的重復(fù)數(shù)據(jù)刪除方法,支持在已有的磁盤設(shè)備上存儲(chǔ)更多的備份數(shù)據(jù)。 因此采用這種"基于數(shù)據(jù)庫(kù)的重復(fù)數(shù)據(jù)刪除方法"方法可以增加保存?zhèn)浞輸?shù)據(jù)的時(shí)間,減少數(shù) 據(jù)中心的消耗,降低成本。比如同樣一份IOM的郵件附件,如果發(fā)給100個(gè)人,只需要備份一 份10M的空間,而不是100M*10=1000M的空間。
因此采用這種方法,使其應(yīng)用在數(shù)據(jù)備份系統(tǒng)中,能夠增加磁盤備份利用率,節(jié)約備份空 間從而應(yīng)對(duì)數(shù)據(jù)急劇增加面臨的挑戰(zhàn)。3
附圖1為基于數(shù)據(jù)庫(kù)重復(fù)數(shù)據(jù)刪除系統(tǒng)組成模塊圖 附圖2為基于數(shù)據(jù)庫(kù)重復(fù)數(shù)據(jù)刪除系統(tǒng)流程 附圖3為基于數(shù)據(jù)庫(kù)重復(fù)數(shù)據(jù)讀取系統(tǒng)流程 附圖4為數(shù)據(jù)庫(kù)表項(xiàng)說(shuō)明
4、 實(shí)施方式
下面參照附圖,對(duì)本發(fā)明的一種基于數(shù)據(jù)庫(kù)的重復(fù)數(shù)據(jù)刪除方法,以一個(gè)具體實(shí)例來(lái)描述 實(shí)現(xiàn)這一體系結(jié)構(gòu)的過(guò)程。
正如發(fā)明內(nèi)容中所描述的,本發(fā)明體系結(jié)構(gòu)主要包括界面管理模塊(1)、文件管理模塊 (2)、鏈接轉(zhuǎn)移模塊(3)、文件比較模塊(4)、指紋模塊(5)、數(shù)據(jù)管理模塊(6)和數(shù)據(jù)庫(kù) (7)。
在一個(gè)典型的配置環(huán)境里,如果是寫入文件,文件寫入到磁盤之后,指紋模塊(5)根據(jù)文 件的內(nèi)容生成一個(gè)指紋標(biāo)示,此標(biāo)示為一個(gè)HASH散列(9),不同的文件其HASH散列是不一樣 的,唯一的。將生成的HASH散列(9)通過(guò)數(shù)據(jù)管理模塊(6)到數(shù)瑪庫(kù)(7)中去査詢是否有同樣HASH 散列的文件存在,如果沒(méi)有就保存到磁盤上,同時(shí)將文件信息,包括文件名、源文件路徑、寫 入時(shí)間、HASH散列(9)值作為一條記錄保存到數(shù)據(jù)庫(kù)中。如果已經(jīng)存在此文件,則文件不需要保 存,只是通過(guò)鏈接轉(zhuǎn)移模塊(3)將文件信息鏈接到己有的文件路徑上,并且作為一條新記錄插 入到數(shù)據(jù)庫(kù)中。如果是讀文件則先從數(shù)據(jù)庫(kù)中將文件和目錄信息讀取出來(lái),并且以文件樹(shù)的形 式顯示。如果有多個(gè)文件的HASH散列(9)相同,則這多個(gè)文件同時(shí)指向一個(gè)具體的文件。當(dāng)需 要讀取或者拷貝是,就直接從文件路徑讀取真實(shí)的文件。
至此,已經(jīng)完整實(shí)現(xiàn)了整個(gè)基于數(shù)據(jù)庫(kù)重復(fù)刪除方法的過(guò)程,這種方法與傳統(tǒng)的重復(fù)數(shù)據(jù) 刪除方法不一樣之處在于引入了數(shù)據(jù)庫(kù)作為文件檢索,并且為每個(gè)文件生成唯一的HASH散列作 為標(biāo)記。
因此采用這種方法,使其應(yīng)用在數(shù)據(jù)備份系統(tǒng)中,能夠增加磁盤備份利用率,節(jié)約備份空 間從而應(yīng)對(duì)數(shù)據(jù)急劇增加面臨的挑戰(zhàn)。
權(quán)利要求
1、一種基于數(shù)據(jù)庫(kù)的重復(fù)數(shù)據(jù)刪除方法,實(shí)現(xiàn)該方法的系統(tǒng)結(jié)構(gòu)包括界面管理模塊(1)、文件管理模塊(2)、鏈接轉(zhuǎn)移模塊(3)、文件比較模塊(4)、指紋模塊(5)、數(shù)據(jù)管理模塊(6)和數(shù)據(jù)庫(kù)(7),其特征在于該方法為每一個(gè)文件生成唯一標(biāo)示的HASH散列(9),并且將此散列信息和文件信息一起保存到數(shù)據(jù)庫(kù)中。
2、 根據(jù)權(quán)利要求1所述得方法,其特征在于在一個(gè)新文件被寫入時(shí),首先會(huì)調(diào)研指紋模塊 (5)為這個(gè)文件生成唯一的HASH散列(9),然后根據(jù)這個(gè)HASH散列(9)從數(shù)據(jù)庫(kù)中查找是否 存在,如果已經(jīng)存在,則在數(shù)據(jù)庫(kù)中將此文件的鏈接與已存在的文件,鏈接配置。
3、 根據(jù)權(quán)利要求1所述得方法,其特征在于不同的文件其HASH散列(9)是不一樣的,是 唯一的,將生成的HASH散列通過(guò)數(shù)據(jù)管理模塊(6)到數(shù)據(jù)庫(kù)(7)中去査詢是否有同樣HASH散列(9)的文件存在,如果沒(méi)有就保存到磁盤上,同時(shí)將文件信息,包括文件名、源文件路徑、寫 入時(shí)間、HASH散列值作為一條記錄保存到數(shù)據(jù)庫(kù)中,如果己經(jīng)存在此文件,則文件不需要保存, 只是通過(guò)鏈接轉(zhuǎn)移模塊(3)將文件信息鏈接到己有的文件路徑上,并且作為一條新記錄插入到 數(shù)據(jù)庫(kù)中。
全文摘要
一種基于數(shù)據(jù)庫(kù)的重復(fù)數(shù)據(jù)刪除方法,實(shí)現(xiàn)該方法的系統(tǒng)結(jié)構(gòu)包括界面管理模塊(1)、文件管理模塊(2)、鏈接轉(zhuǎn)移模塊(3)、文件比較模塊(4)、指紋模塊(5)、數(shù)據(jù)管理模塊(6)和數(shù)據(jù)庫(kù)(7),該方法為每一個(gè)文件生成唯一標(biāo)示的HASH散列(9),并且將此散列信息和文件信息一起保存到數(shù)據(jù)庫(kù)中。
文檔編號(hào)G06F11/14GK101582076SQ20091001607
公開(kāi)日2009年11月18日 申請(qǐng)日期2009年6月24日 優(yōu)先權(quán)日2009年6月24日
發(fā)明者劉正偉 申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司