国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于重復(fù)數(shù)據(jù)刪除的Oracle數(shù)據(jù)庫備份系統(tǒng)

2013-12-29 00:00:00李向前
電腦知識與技術(shù) 2013年1期

摘要:針對在數(shù)據(jù)備份服務(wù)器中存在大量重復(fù)數(shù)據(jù)的問題,提出了一種基于重復(fù)數(shù)據(jù)刪除技術(shù)的oracle數(shù)據(jù)庫備份系統(tǒng)。系統(tǒng)首先生成臨時備份文件,然后把臨時文件劃分成不重疊的塊,通過哈希算法計算每個塊的指紋值。在數(shù)據(jù)災(zāi)備中心建立hash表記錄已存儲數(shù)據(jù)塊的指紋值。通過對比指紋值,檢測重復(fù)數(shù)據(jù)。為了提高數(shù)據(jù)安全性,采用了一定的安全機制來防止信息泄露以及數(shù)據(jù)丟失。實驗證明,該系統(tǒng)在實現(xiàn)遠程備份的同時,有效地減少了備份的數(shù)據(jù)。

關(guān)鍵詞:數(shù)據(jù)備份;重復(fù)數(shù)據(jù)刪除;Oracle數(shù)據(jù)庫;安全機制

中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2013)01-0005-03

Oracle數(shù)據(jù)庫是美國甲骨文公司推出的一款市場占有率很高的關(guān)系數(shù)據(jù)庫管理系統(tǒng)。隨著信息技術(shù)的快速發(fā)展,數(shù)據(jù)對企業(yè)越來越重要,數(shù)據(jù)丟失以后對企業(yè)來講,其損失是無法估量的,甚至是毀滅性的[1]。但由于備份數(shù)據(jù)的爆炸式增長,對數(shù)據(jù)備份服務(wù)器的存儲空間需求越來越大,在大量的備份數(shù)據(jù)中有很大一部分是重復(fù)或者相似的數(shù)據(jù)。為了節(jié)省備份服務(wù)器的存儲空間,節(jié)約備份數(shù)據(jù)傳輸成本,重復(fù)數(shù)據(jù)刪除技術(shù)被運用到Oracle數(shù)據(jù)庫備份系統(tǒng)中[2]。

目前,重復(fù)數(shù)據(jù)刪除技術(shù)主要包括相似數(shù)據(jù)檢測和編碼技術(shù),相同數(shù)據(jù)檢測技術(shù)。本系統(tǒng)主要運用的是相同數(shù)據(jù)檢測技術(shù)。相同數(shù)據(jù)檢測根據(jù)檢測粒度的不同分為相同文件和相同數(shù)據(jù)塊。完全文件檢測對文件內(nèi)部的重復(fù)數(shù)據(jù)無能為力。相同數(shù)據(jù)塊主要是通過固定分塊,可變分塊,滑動分塊等技術(shù)檢測重復(fù)數(shù)據(jù)。本系統(tǒng)首先將需要備份的數(shù)據(jù)放到備份代理處,然后使用滑動塊檢測技術(shù)對備份代理處的文件進行處理,處理掉重復(fù)的數(shù)據(jù)。再把處理后的數(shù)據(jù)通過Internet網(wǎng)傳輸?shù)竭h程的備份服務(wù)器,存儲在備份服務(wù)器的磁盤上,在備份服務(wù)器上建立分塊指紋值的hash表并添加分塊的指紋值[3]。

1 Oracle數(shù)據(jù)庫備份系統(tǒng)架構(gòu)

Oracle數(shù)據(jù)庫備份系統(tǒng)的結(jié)構(gòu)如圖1所示,備份代理通過因特網(wǎng)與遠程的備份服務(wù)器相連。備份代理首先把數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出生成臨時文件,然后按照一定的算法將需要備份的臨時文件劃分為數(shù)據(jù)塊并計算其指紋值。備份服務(wù)器包括管理服務(wù)器和存儲服務(wù)器。管理服務(wù)器負責數(shù)據(jù)庫的備份與恢復(fù),存儲服務(wù)器保存來自備份代理的文件,數(shù)據(jù)塊的指紋值索引表。

2 系統(tǒng)設(shè)計與實現(xiàn)

2.1 Oracle數(shù)據(jù)導(dǎo)出

在Oracle數(shù)據(jù)庫中利用Export可以將數(shù)據(jù)從數(shù)據(jù)庫中提取出來,Oracle支持三種數(shù)據(jù)導(dǎo)出模式:表方式(table),用戶方式(user),完全方式(full)。在備份代理中用Export導(dǎo)出Oracle數(shù)據(jù)庫中的數(shù)據(jù),生成二進制臨時文件[4]。

2.2文件分塊

目前,發(fā)現(xiàn)文件冗余數(shù)據(jù)的一般方法是劃分數(shù)據(jù)塊,計算并比較數(shù)據(jù)塊的指紋值。文件分塊主要有固定尺寸分塊和變長分塊兩大類。固定尺寸分塊是使用固定大小的分塊來識別備份系統(tǒng)中的重復(fù)數(shù)據(jù),固定分塊的優(yōu)點是算法簡單,處理速度快,適合在交互的環(huán)境中,缺點是對插入和刪除問題處理很低效,當數(shù)據(jù)改變的時,數(shù)據(jù)塊的邊界發(fā)生變化,重復(fù)數(shù)據(jù)檢測變得非常困難,不能智能判斷文件自身內(nèi)容和文件之間的關(guān)系??勺兎謮K是將文件劃分成長度不同的分塊,它劃分文件是基于文件的內(nèi)容,數(shù)據(jù)塊長度可以變化。插入或者刪除小部分字節(jié)對可變分塊算法影響不大,可變分塊算法在兩個相似數(shù)據(jù)塊之間可以檢測出更多的冗余數(shù)據(jù)。

基于可變分塊的重復(fù)數(shù)據(jù)檢測方法主要有CDC算法,fingerdiff算法。CDC算法不好把握劃分塊的粒度大小,如果粒度較細,重復(fù)數(shù)據(jù)檢測會很精確,但是開銷大;相反,如果劃分粒度過粗,重復(fù)數(shù)據(jù)檢測效果不好[5]。為了改進CDC算法開銷過大的缺點,研究者提出了fingerdiff算法。fingerdiff算法的核心思想是盡可能地合并沒有變化的數(shù)據(jù)塊,以減少存儲空間[5]。fingerdiff很好的解決了CDC算法存儲空間過大的問題,但和CDC算法一樣存在另外的缺點,對于要檢測重復(fù)數(shù)據(jù)的兩個數(shù)據(jù)塊中的微小變化,fingerdiff和CDC算法效果都不好。為了改進fingerdiff和CDC算法的這個缺陷,提出了滑動塊檢測技術(shù)。

基于本系統(tǒng)特點,本系統(tǒng)采用基于滑動塊的重復(fù)數(shù)據(jù)刪除技術(shù),滑動塊檢測技術(shù)結(jié)合固定塊大小檢測和可變塊大小檢測技術(shù)的優(yōu)點[6]?;瑒訅K檢測技術(shù)運用Rsync Checksum算法[7]和滑動窗口方法進行分塊。該方法如圖2所示,使用Rsync Checksum計算滑動窗口內(nèi)數(shù)據(jù)塊的求和校驗值,如果校驗值匹配,則用SHA-1算法對數(shù)據(jù)塊進行更嚴格的hash計算,比較SHA-1 hash值和存儲的hash值來檢測重復(fù)數(shù)據(jù)。如果檢測到重復(fù)數(shù)據(jù),將重復(fù)數(shù)據(jù)塊記錄后,滑動窗口滑過這個重復(fù)數(shù)據(jù)塊繼續(xù)向前移動。另外,還要將滑動塊之前的這個碎片記錄并存儲下來。如果Checksum校驗值和已經(jīng)存儲的校驗值不匹配,滑動窗口繼續(xù)前移進行檢測,如果滑動窗口移動的距離達到定長塊長度時還沒有檢測到重復(fù)數(shù)據(jù),將這個塊的checksum校驗和與SHA-1 hash值計算并存儲供將來數(shù)據(jù)塊重復(fù)檢測。

滑動塊重復(fù)數(shù)據(jù)刪除技術(shù)很好的解決了數(shù)據(jù)中插入和刪除的問題,并且能夠檢測到更多的重復(fù)數(shù)據(jù)[8]。如果一小部分內(nèi)容插入需要備份的數(shù)據(jù)中,只有插入數(shù)據(jù)周圍的塊會受到影響,后面的塊仍然能夠通過這個算法檢測重復(fù)數(shù)據(jù)。同理,刪除一小部分數(shù)據(jù)時也只會影響周圍的數(shù)據(jù)塊,對其他數(shù)據(jù)塊不會造成影響,仍然可以使用本方法進行重復(fù)數(shù)據(jù)檢測。

2.3存儲數(shù)據(jù)和數(shù)據(jù)塊索引

如圖3所示,備份服務(wù)器的數(shù)據(jù)處理模塊接收到備份代理傳輸過來的數(shù)據(jù)以后,將數(shù)據(jù)塊的指紋值與備份系統(tǒng)索引表中存儲的指紋值比較,判斷傳過來的數(shù)據(jù)塊是否已經(jīng)存在于備份中心中。如果不是重復(fù)的數(shù)據(jù)塊,就將數(shù)據(jù)塊和數(shù)據(jù)塊的指紋值寫入備份服務(wù)器的存儲服務(wù)器中。隨著備份服務(wù)器中數(shù)據(jù)塊的增多,索引表也越來越大,搜索索引表中的指紋值會變得很低效,為了解決這個問題,對索引表引入二級索引緩存[3],內(nèi)存中存放第一級緩存,里面的指紋值是最近發(fā)送過來的數(shù)據(jù)塊的指紋值。磁盤中存放第二級緩存,內(nèi)存中換出的指紋值放在第二級緩存中。

在備份服務(wù)器上,當要刪除一個文件時,組成該文件的所有數(shù)據(jù)塊都會被刪除。上文中提到不同文件可能會共享一些數(shù)據(jù)塊,當刪除一個文件中的數(shù)據(jù)塊后,會造成其他文件所共享的數(shù)據(jù)塊丟失。解決這個問題的一般有兩種方法:第一是適當引入一定量的冗余數(shù)據(jù)保證備份數(shù)據(jù)的安全性[9],第二是在每個數(shù)據(jù)塊中格外添加一個描述符Reference count,它記錄數(shù)據(jù)塊被共享的次數(shù),每次刪除數(shù)據(jù)塊時都檢查Reference count是否大于一,如果大于一,說明有其他文件在使用數(shù)據(jù)塊,不能刪除,否則可以刪除數(shù)據(jù)塊。這樣便保證了備份文件的安全性。

2.4 Oracle數(shù)據(jù)庫恢復(fù)

當生產(chǎn)服務(wù)器上面的Oracle數(shù)據(jù)庫遭到破壞或者數(shù)據(jù)丟失時,用戶需要恢復(fù)數(shù)據(jù)庫,恢復(fù)數(shù)據(jù)庫的一般步驟如下:(1)在遠程備份服務(wù)器中的第一級緩存索引列表中查找需要恢復(fù)文件的數(shù)據(jù)塊指紋值。(2)如果在第一級緩存中沒有找到指紋值,繼續(xù)在第二級緩存索引中查找指紋值(3)按照指紋值依次從備份中心的數(shù)據(jù)服務(wù)器中讀出數(shù)據(jù)塊。(4)重復(fù)(1)到(3),直到備份代理收到完整的恢復(fù)文件。由于備份時數(shù)據(jù)塊是按照順序存放的,恢復(fù)時每讀一個數(shù)據(jù)塊都會將其周圍塊讀入緩存中。加快了恢復(fù)速度。

3 實驗

實驗環(huán)境為:備份代理和備份服務(wù)器的硬件配置是一樣的:CPU是Intel(R) Core(TM)2 Duo CPU E7500 @2.93GHz 2.94GHz,內(nèi)存為2G,硬盤大小為320G。備份代理的操作系統(tǒng)是Windows 2003 server,備份服務(wù)器安裝的操作系統(tǒng)是CentOS。備份代理和備份服務(wù)器通過百兆交換機相連。

本實驗的方法是:首先把Oracle數(shù)據(jù)庫中的內(nèi)容備份,然后將備份的內(nèi)容經(jīng)過重復(fù)數(shù)據(jù)刪除處理后存儲到備份服務(wù)器上。需要備份的原始數(shù)據(jù)大小為935M,1804M,2903M。本次實驗采用兩種方法進行數(shù)據(jù)備份,將備份數(shù)據(jù)壓縮后存儲數(shù)據(jù)和對需要備份的數(shù)據(jù)進行重復(fù)數(shù)據(jù)刪除處理后存儲數(shù)據(jù)。

由圖4可以看出,第一種方法,采用普通壓縮技術(shù)壓縮備份文件,經(jīng)過壓縮備份數(shù)據(jù)以后,備份數(shù)據(jù)比原始數(shù)據(jù)要少,減少了數(shù)據(jù)存儲空間。第二種方法采用重復(fù)數(shù)據(jù)刪除技術(shù)處理備份數(shù)據(jù),圖4顯示,當備份數(shù)據(jù)為935M時,通過重復(fù)數(shù)據(jù)刪除技術(shù)處理的備份數(shù)據(jù)要略大于通過壓縮方法處理的數(shù)據(jù),這是因為剛開始備份重復(fù)數(shù)據(jù)很少,再加上重復(fù)數(shù)據(jù)刪除技術(shù)需要存儲數(shù)據(jù)塊的索引表,需要額外的存儲空間。在處理1804M備份數(shù)據(jù)時,重復(fù)刪除技術(shù)占用的空間比壓縮技術(shù)占用的空間小,2903M備份數(shù)據(jù)時,差距加大。

圖4還表明,隨著Oracle數(shù)據(jù)庫備份的次數(shù)增加,備份代理和備份服務(wù)器中的重復(fù)數(shù)據(jù)會越來越多,重復(fù)數(shù)據(jù)刪除技術(shù)相對于壓縮技術(shù)的優(yōu)勢也越來越大。在Oracle數(shù)據(jù)庫備份中應(yīng)用重復(fù)數(shù)據(jù)刪除技術(shù)能夠更好的節(jié)約存儲空間,節(jié)省網(wǎng)絡(luò)帶寬。

4 結(jié)束語

本文設(shè)計并實現(xiàn)了一種基于重復(fù)數(shù)據(jù)刪除的Oracle數(shù)據(jù)庫備份系統(tǒng),該系統(tǒng)可以進行遠程備份與恢復(fù),本系統(tǒng)采用重復(fù)數(shù)據(jù)刪除技術(shù)刪除Oracle數(shù)據(jù)庫系統(tǒng)中的重復(fù)數(shù)據(jù),實驗表明,重復(fù)刪除技術(shù)刪除了備份服務(wù)器中的重復(fù)數(shù)據(jù)塊,備份次數(shù)越多,效果越好。提高了備份服務(wù)器中存儲空間利用率,也降低了備份系統(tǒng)對網(wǎng)絡(luò)帶寬的要求。通過給數(shù)據(jù)塊增加Reference count有效的保護了備份數(shù)據(jù)安全。本系統(tǒng)在保證備份數(shù)據(jù)安全的同時,減少了存儲空間。

參考文獻:

[1] 李濤.信息系統(tǒng)容災(zāi)抗毀原理與應(yīng)用[M].北京:人民郵電出d0046bcab9e67c6becd2a7b9a34e2e5e8bb8f7713c6f83d8ab27a7330363fd6e版社,2007.

[2] Muthitacharoen A, Chen B,Mazieres D.A low-bandwidth network file system. In:Proc.of the 18th ACM Symp. on Operating System Principles (SOSP 2001).New York: ACM Press,2001, 174-187.

[3] Tianming Yang, Dan Feng,Jingning Liu,Yaping Wan,Zhongying Niu,Yuchang Ke.“3DNBS: A Data De-duplication Disk-Based Network Backup System”. NAS 2009: 287-294.

[4] 李鎖雷.Oracle數(shù)據(jù)塊備份與恢復(fù)研究[J].信息安全與技術(shù),2011(9):99-100.

[5] Bobbarjung DR,Jagannathan S,Dubnicki C.Improving duplicate elimination in storage systems.ACM Trans.on Storage,2006,2(4):424- 448.

[6] 敖莉,舒繼武,李明強.重復(fù)數(shù)據(jù)刪除技術(shù)[J].軟件學(xué)報,2010(05):918-920.

[7] Langford J. Multiround rsync.[2012-01-01].http://www.cs.cmu.edu/~jcl/research/mrsync/mrsync.ps

[8] BRODER A Z. Identifying and Filtering Near-duplicate Documents [C]//Proceedings of the 11th Annual Symposium on Combinatorial Pattern Matching(CPM’00),Jun 21-23, 2000, Montreal, Canada. Berlin, Germany: Springer-Verlag,2000:1-10.

[9] Han B, Keleher P. Implementation and performance evaluation of fuzzy file block matching. In: Proc. of the 2007 USENIX Annual Technical Conf. (USENIX 2007).Berkeley.USENIX Association, 2007:199-204.

南岸区| 遂平县| 云梦县| 浦江县| 娱乐| 丹棱县| 舒兰市| 新化县| 伊金霍洛旗| 通渭县| 大同县| 汾阳市| 海盐县| 潼南县| 巴南区| 贵定县| 奇台县| 蛟河市| 手游| 博湖县| 岳阳市| 富裕县| 渭南市| 巨野县| 博野县| 罗定市| 石柱| 嘉兴市| 大关县| 深水埗区| 阳江市| 金昌市| 南通市| 巢湖市| 泸水县| 五家渠市| 盐城市| 扶余县| 曲阳县| 德昌县| 宁远县|