根據(jù)業(yè)界提供數(shù)據(jù)同步或抽取的解決方案來看,主要包括以下幾大類:
l 存儲復(fù)制技術(shù)
l 數(shù)據(jù)庫復(fù)制技術(shù)
l ETL抽取技術(shù)
存儲復(fù)制技術(shù)主要由磁盤陣列復(fù)制技術(shù)、主機卷復(fù)制技術(shù)以及一些文件復(fù)制技術(shù)。
存儲復(fù)制方案的技術(shù)核心是利用存儲陣列自身的盤陣對盤陣的數(shù)據(jù)塊復(fù)制技術(shù)實現(xiàn)對生產(chǎn)數(shù)據(jù)的遠(yuǎn)程拷貝,從而實現(xiàn)生產(chǎn)數(shù)據(jù)的災(zāi)難保護。在主數(shù)據(jù)中心發(fā)生災(zāi)難時,可以利用災(zāi)備中心的數(shù)據(jù)在災(zāi)備中心建立運營支撐環(huán)境,為業(yè)務(wù)繼續(xù)運營提供IT支持。同時,也可以利用災(zāi)備中心的數(shù)據(jù)恢復(fù)主數(shù)據(jù)中心的業(yè)務(wù)系統(tǒng),從而能夠讓企業(yè)的業(yè)務(wù)運營快速回復(fù)到災(zāi)難發(fā)生前的正常運營狀態(tài)。
基于存儲的復(fù)制方案有兩種方式:同步方式和異步方式,說明如下: 同步方式,可以做到主/備中心磁盤陣列同步地進行數(shù)據(jù)更新,應(yīng)用系統(tǒng)的I/O寫入主磁盤陣列后(寫入Cache中),主磁盤陣列將利用自身的機制(如EMC的SRDF/S)同時將寫I/O寫入后備磁盤陣列,后備磁盤陣列確認(rèn)后,主中心磁盤陣列才返回應(yīng)用的寫操作完成信息。 異步方式,是在應(yīng)用系統(tǒng)的I/O寫入主磁盤陣列后(寫入Cache中),主磁盤陣列立即返回給主機應(yīng)用系統(tǒng)“寫完成”信息,主機應(yīng)用可以繼續(xù)進行讀、寫I/O操作。同時,主中心磁盤陣列將利用自身的機制(如EMC的SRDF/A)將寫I/O寫入后備磁盤陣列,實現(xiàn)數(shù)據(jù)保護。 采用同步方式,使得后備磁盤陣列中的數(shù)據(jù)總是與生產(chǎn)系統(tǒng)數(shù)據(jù)同步,因此當(dāng)生產(chǎn)數(shù)據(jù)中心發(fā)生災(zāi)難事件時,不會造成數(shù)據(jù)丟失。為避免對生產(chǎn)系統(tǒng)性能的影響,同步方式通常在近距離范圍內(nèi)(FC連接通常是200KM范圍內(nèi),實際用戶部署多在35KM左右)。 而采用異步方式應(yīng)用程序不必等待遠(yuǎn)程更新的完成,因此遠(yuǎn)程數(shù)據(jù)備份的性能的影響通常較小,所以一般可以到100KM左右。
采用基于存儲數(shù)據(jù)復(fù)制技術(shù)建設(shè)復(fù)制方案的必要前提是:
l 通常必須采用同一廠家的存儲平臺,通常也必須是同一系列的存儲產(chǎn)品,給用戶的存儲平臺選擇帶來一定的限制。
l 復(fù)制中心的主機平臺也需要和生產(chǎn)中心為相同類型。
l 采用同步方式可能對生產(chǎn)系統(tǒng)性能產(chǎn)生影響,而且對通信鏈路要求較高,有距離限制,通常在近距離范圍內(nèi)實現(xiàn)(同城復(fù)制或園區(qū)復(fù)制方案)
因此,采用基于存儲的數(shù)據(jù)復(fù)制技術(shù)建設(shè)復(fù)制系統(tǒng)是目前金融電信企業(yè)采用較多的復(fù)制方案,因為這些行業(yè)具有很好的網(wǎng)絡(luò)帶寬資源,而且其數(shù)據(jù)量非常龐大,第三就是這些數(shù)據(jù)復(fù)制的主要目的就是災(zāi)難恢復(fù),而重點不在于數(shù)據(jù)的再利用。
存儲復(fù)制技術(shù)的優(yōu)點:
l 支持所有數(shù)據(jù)類型復(fù)制。
l 可支持同步方式復(fù)制
存儲復(fù)制技術(shù)的缺點:
l 目標(biāo)端數(shù)據(jù)不可用:目標(biāo)端數(shù)據(jù)庫在復(fù)制過程中不能被打開,造成大量投資浪費;
l 必需同構(gòu):源和目標(biāo)必需要求相同的磁盤陣列、相同的操作系統(tǒng)、相同的數(shù)據(jù)庫版本;
l 只能全庫復(fù)制:復(fù)制的對象是整個數(shù)據(jù)庫
l 不能實現(xiàn)數(shù)據(jù)整合和數(shù)據(jù)分發(fā);
l 帶寬高:要求獨占的光纖網(wǎng)絡(luò),動輒需要上GB的帶寬。
l 距離有限制,不適合于全省范圍的多對一容災(zāi)。
數(shù)據(jù)庫復(fù)制技術(shù)是通過數(shù)據(jù)庫的日志或者交易方式來進行數(shù)據(jù)同步的,代表性的產(chǎn)品例如DSG Realsync,QUEST Shareplex以及ORACLE DataGuard。
數(shù)據(jù)庫復(fù)制技術(shù)的工作原理大都與oracle log相關(guān),例如DSG Realsync數(shù)據(jù)庫復(fù)制產(chǎn)品就是通過對Oracle Log日志進行分析獲取跟蹤源系統(tǒng)的交易指令,然后將交易指令傳到目標(biāo)端進行重新執(zhí)行的方式來實現(xiàn)數(shù)據(jù)復(fù)制的。
復(fù)制系統(tǒng)包括兩個部分組成:
- DS: Data Source端,即源系統(tǒng)端;
- DT:Data Target端,即目標(biāo)系統(tǒng)端。
系統(tǒng)由安裝在Data Source端和Data Target上的Agent進程組成,Source端的Agent進程對ORACLE日志進行監(jiān)控,發(fā)現(xiàn)改變及時對目標(biāo)數(shù)據(jù)庫進行更新。
當(dāng)應(yīng)用系統(tǒng)在Data Source端向數(shù)據(jù)庫進行任何操作時時,這些信息都將在Redo Log中保存,RealSync Agent通過對實時獲取的Log日志進行分析,獲得本次操作的交易指令和交易數(shù)據(jù),然后將這些交易指令和交易數(shù)據(jù)經(jīng)過格式轉(zhuǎn)化生成xf1數(shù)據(jù)格式,并實時通過網(wǎng)絡(luò)傳送到Data Target系統(tǒng)。
Data Target系統(tǒng)的RealSync Agent接收數(shù)據(jù)庫包,經(jīng)過校驗碼檢查,確認(rèn)正確的數(shù)據(jù)庫包后,調(diào)用Oracle函數(shù)按照交易的先后順序在Data Target系統(tǒng)中執(zhí)行該交易。
數(shù)據(jù)庫復(fù)制技術(shù)的優(yōu)點:
l 異構(gòu)系統(tǒng)復(fù)制:源端系統(tǒng)和目標(biāo)端系統(tǒng)可以采用異構(gòu)的操作系統(tǒng)平臺、存儲平臺;
l 支持選擇性復(fù)制:支持只復(fù)制指定的user、指定的Table、指定的行和列。節(jié)省存儲空間,提高應(yīng)用靈活性;
l 支持1對多,多對1的復(fù)制結(jié)構(gòu):能夠?qū)⒍鄠€數(shù)據(jù)庫中的數(shù)據(jù)復(fù)制到一個數(shù)據(jù)庫中;能夠?qū)⒁粋€數(shù)據(jù)庫中的不同數(shù)據(jù)分發(fā)到不同的數(shù)據(jù)庫中。
l 目標(biāo)端數(shù)據(jù)可用:目標(biāo)端數(shù)據(jù)庫在復(fù)制過程中出于可用狀態(tài),可用作數(shù)據(jù)查詢、報表、數(shù)據(jù)抽取等任務(wù)分擔(dān);
l 節(jié)約帶寬和網(wǎng)絡(luò)資源:所需帶寬一般在幾Mbps,幾十Mbps。
l 實時性好:一般數(shù)據(jù)延遲可在秒鐘級;
數(shù)據(jù)庫復(fù)制技術(shù)的缺點:
l 只支持ORACLE數(shù)據(jù)庫系統(tǒng)。
l 只支持異步復(fù)制,不支持同步方式。
ETL即數(shù)據(jù)抽?。?/span>Extract)、轉(zhuǎn)換(Transform)、裝載(Load)的過程。它是構(gòu)建數(shù)據(jù)倉庫的重要環(huán)節(jié)。數(shù)據(jù)倉庫是面向主題的、集成的、穩(wěn)定的且隨時間不斷變化的數(shù)據(jù)集合,用以支持經(jīng)營管理中的決策制定過程。
ETL工具實質(zhì)上仍為一類數(shù)據(jù)轉(zhuǎn)換器,提供一種從源到目標(biāo)系統(tǒng)轉(zhuǎn)換數(shù)據(jù)的方法。即從操作型系統(tǒng)提取、清洗并轉(zhuǎn)換數(shù)據(jù),然后將數(shù)據(jù)載入決策支持系統(tǒng)的操作型數(shù)據(jù)存儲、數(shù)據(jù)倉庫或數(shù)據(jù)集市中。具體功能針對不同的數(shù)據(jù)源編寫不同的數(shù)據(jù)抽取、轉(zhuǎn)換和加載程序處理,這完成了數(shù)據(jù)集成的大部分工作??偟膩碚f,ETL工具提供了一種數(shù)據(jù)處理的通用解決方案。
雖然ETL工具在一定程度上可實現(xiàn)數(shù)據(jù)的集中抽取,表面上看起來和數(shù)據(jù)復(fù)制軟件有些類似。但是該軟件的定位和重點和前兩類技術(shù)完全不同的:
首先,ETL的定位是在數(shù)據(jù)倉庫和業(yè)務(wù)系統(tǒng)之間搭建起一座橋梁,確保新的業(yè)務(wù)數(shù)據(jù)源源不斷地進入數(shù)據(jù)倉庫;
其次,ELT工具的最復(fù)雜點在于其涉及到大量的業(yè)務(wù)邏輯和異構(gòu)環(huán)境,因此在一般的數(shù)據(jù)倉庫項目中ETL部分往往也是牽扯精力最多的,因此其主要的難點在于數(shù)據(jù)的清晰轉(zhuǎn)換功能:字段映射;映射的自動匹配;字段的拆分;多字段的混合運算;跨異構(gòu)數(shù)據(jù)庫的關(guān)聯(lián);自定義函數(shù);多數(shù)據(jù)類型支持;復(fù)雜條件過濾;支持臟讀;數(shù)據(jù)的批量裝載;時間類型的轉(zhuǎn)換;對各種碼表的支持;環(huán)境變量是否可以動態(tài)修改;去重復(fù)記錄;抽取斷點;記錄間合并或計算;記錄拆分;抽取的字段是否可以動態(tài)修改;行、列變換;排序;統(tǒng)計;度量衡等常用的轉(zhuǎn)換函數(shù);代理主鍵的生成;調(diào)試功能;抽取遠(yuǎn)程數(shù)據(jù);增量抽取的處理方式;制造樣品數(shù)據(jù);在轉(zhuǎn)換過程中是否支持?jǐn)?shù)據(jù)比較的功能;數(shù)據(jù)預(yù)覽;性能監(jiān)控;數(shù)據(jù)清洗及標(biāo)準(zhǔn)化;按行、按列的分組聚合等。
第三:ETL抽取的性能較低,因為該工具是通過數(shù)據(jù)庫的SQL接口來獲取數(shù)據(jù)的,因此其性能比較低。例如在某證券行業(yè)(對于1GB的數(shù)據(jù),每天完成一次抽取需要幾個小時,而當(dāng)時用DSG Realsync作一次同步只需要3-5分鐘)。
經(jīng)過上面的分析,我們可以看出幾種數(shù)據(jù)復(fù)制工具各有自己適合的場合:
l 存儲級復(fù)制技術(shù):適合單純的數(shù)據(jù)容災(zāi),但不適合低帶寬,遠(yuǎn)距離,以及不適合在備份中心實現(xiàn)數(shù)據(jù)的再利用;
l 數(shù)據(jù)庫復(fù)制技術(shù):適合oracle數(shù)據(jù)庫的數(shù)據(jù)復(fù)制,可用于數(shù)據(jù)庫系統(tǒng)的備份、以及備份數(shù)據(jù)的再利用,在備份系統(tǒng)上開發(fā)新的業(yè)務(wù)模塊。但是該技術(shù)以來于數(shù)據(jù)庫,所以一般都支持ORACLE數(shù)據(jù)庫;
l ETL工具:適合于數(shù)據(jù)倉庫系統(tǒng),尤其適合于數(shù)據(jù)抽取中需要進行數(shù)據(jù)清晰、轉(zhuǎn)換和運算的情況。但抽取的數(shù)據(jù)不適合作備份使用。
所以,為了滿足某省的備份和數(shù)據(jù)再利用雙重需求,我們建議選擇數(shù)據(jù)庫復(fù)制技術(shù),DSG Realsync就是一款不錯的數(shù)據(jù)庫復(fù)制軟件。
在11個地市的(財政、稅務(wù)征管、社保、電力營銷、綜合警務(wù))系統(tǒng)數(shù)據(jù)庫服務(wù)器上(RAC環(huán)境下只安裝在一個服務(wù)器上)安裝DSG RealSync代理程序,該程序?qū)?span lang="EN-US">ORACLE數(shù)據(jù)庫產(chǎn)生的redo log進行實時分析,生成sql語句。并將sql語句通過IP網(wǎng)絡(luò)傳輸?shù)絽^(qū)中心。
在區(qū)中心上,需要配備數(shù)據(jù)庫服務(wù)器,必要時再加上其他的應(yīng)用服務(wù)器(例如全省數(shù)據(jù)共享服務(wù)器、災(zāi)備切換接管服務(wù)器等)。
在省中心,安裝一個ORACLE數(shù)據(jù)庫,創(chuàng)建11個用戶,每個用戶對應(yīng)一個地市的系統(tǒng),這樣就將11個地市的系統(tǒng)集中容災(zāi)到一個數(shù)據(jù)庫上,只不過在集中數(shù)據(jù)庫上以不同的用戶存在。
省集中的數(shù)據(jù)查詢可通過建立聯(lián)合view的方式來完成,在省中心數(shù)據(jù)庫上再創(chuàng)建一個專門用于查詢的用戶,在該用戶下創(chuàng)建若干視圖(view),這些view的數(shù)據(jù)就來源于13個用戶下的表。
集中的數(shù)據(jù)庫可實現(xiàn)兩個功能:集中容災(zāi)備份和數(shù)據(jù)集中共享。
在本方案中采用DSG RealSync實現(xiàn)了多對一的容災(zāi)結(jié)構(gòu),各地市將數(shù)據(jù)統(tǒng)一復(fù)制到省數(shù)據(jù)中心的一臺容災(zāi)數(shù)據(jù)庫,每個地市在數(shù)據(jù)庫中對應(yīng)一個用戶;
正常情況下各地市的數(shù)據(jù)可互不干擾的復(fù)制到省中心容災(zāi)數(shù)據(jù)庫;
在某一地市發(fā)生災(zāi)難數(shù)據(jù)丟失時,可在省中心以用戶的方式反向復(fù)制該地市的容災(zāi)數(shù)據(jù),最大程度的避免了數(shù)據(jù)的損失。
同時,當(dāng)某個地市系統(tǒng)發(fā)生嚴(yán)重故障而無法在短期內(nèi)修復(fù)時,可利用省中心的備份數(shù)據(jù)以及省中心的備用服務(wù)器來臨時接管出現(xiàn)故障的地市。具體過程如下:
l 將省中心復(fù)制數(shù)據(jù)庫中對應(yīng)用戶下的數(shù)據(jù)裝載到備用服務(wù)器的數(shù)據(jù)庫上;
l 切換地市應(yīng)用連接到省中心備用數(shù)據(jù)庫上,恢復(fù)業(yè)務(wù)運行;
l 當(dāng)?shù)厥邢到y(tǒng)修復(fù)后,將省中心備用數(shù)據(jù)庫上的數(shù)據(jù)恢復(fù)到地市數(shù)據(jù)庫上;
l 將地市應(yīng)用切換回到地市服務(wù)器上。
采用DSG RealSync容災(zāi)技術(shù)的非常明顯的優(yōu)勢還在于省中心集中數(shù)據(jù)庫一直處于open狀態(tài),可以對省中心數(shù)據(jù)庫進行實時訪問,系統(tǒng)保持生產(chǎn)中心和災(zāi)備中心的數(shù)據(jù)庫處于雙激活狀態(tài);
同時通過DSG Realsync軟件將11個地市的數(shù)據(jù)都集中到了一個數(shù)據(jù)庫平臺上,因此比較適合對這些數(shù)據(jù)進行統(tǒng)一查詢和使用。
第三、RealSync的復(fù)制延遲很小,從容災(zāi)數(shù)據(jù)庫讀取到的數(shù)據(jù)是實時最新數(shù)據(jù),
第四、集中的數(shù)據(jù)還可以為省中心的數(shù)據(jù)倉庫系統(tǒng)提供了ETL操作的數(shù)據(jù)源。
容