DSG-RealSync Oracle數據庫同步複製及容災技術簡述

DSG-RealSync Oracle數據庫同步複製及容災技術簡述

1 爲什麼需要數據複製

1.1 信息系統存在的問題及需求

隨着計算機應用系統的爆炸式發展,業務量迅速增加,業務種類日益複雜,企業必須管理不斷增長的信息流量;隨着信息量的急劇增大,核心數據的管理變得日益困難。如何安全、可靠地存儲業務數據及滿足未來業務數據高速增長的需要;如何有效管理日益增長的業務數據;如何實現業務數據的共享並在現有業務數據之上建立新興的增值應用,如數據倉庫、客戶關係管理(CRM)等,成爲了各企業建立信息系統的關鍵所在。

目前,各企業信息系統在數據管理領域存在着普遍的問題:

1.1.1 數據流通效率低下,企業信息孤島現象嚴重

信息系統的建設主要是以應用爲驅動的,是隨着各種業務的逐漸建設的。當出現一類新的業務時,一般需要爲該業務建設一套業務支撐系統,保存與該業務有關的主要數據。而這些數據可能同時也需要被其他應用所訪問。從而自然就形成了各子系統應用在不同的縱向,管理着不同的業務單元或對象,各個子系統又是相互獨立運行,導致形成了一個個“信息孤島”。這些系統相互之間沒有暢通的信息交流與共享,阻礙了企業信息化建設的整體進程。

1.1.2 數據報表、查詢和數據共享效率低下

爲了提高市場競爭力,提高客戶滿意度,企業需要更復雜的、更靈活的業務統計報告、需要深入的數據挖掘、需要實時的客戶查詢。而這些大量的統計、查詢業務收到現有系統架構的制約,不得不降低效率標準、不得不推遲報告時間、從而導致客戶服務質量降低、業務發展情況報告遲緩,業務發展情況不明等問題。

1.2 企業需要新的信息架構

因此,各企業比以往任何時候相比,管理和有效使用這些信息系統的能力高低都更能決定了長期生存和發展能力,因此比以往任何時候,企業都更關注於如下領域:

  • 提高系統運行效率,提高業務報表、提高客戶服務質量,並降低客戶流失率。
  • 加強企業信息流通、提高企業信息的附加值、進一步挖掘企業信息價值、迅速開發和推廣新業務,創造更多收入並保持競爭能力。
  • 提高信息系統業務連續運行能力,提高數據安全保護水平。

2 DSG RealSync的技術概覽

2.1 採用數據庫複製技術

與傳統的數據複製技術不同,DSG RealSync技術是針對數據庫提供了基於邏輯的交易複製方式。該方式通過直接捕獲源數據庫的交易,將數據庫的改變邏輯複製到目標系統數據庫中,實現源系統和目標系統數據的一致性。

2.2 DSG RealSync的優勢概覽

該技術在複製上存在以下幾個特點:

(1)按需複製

查詢和統計系統往往不需要所有的原始數據,因此完全可以按需要複製數據。RealSync系統支持對指定信息的按需複製,減少存儲和網絡帶寬的成本。

(2)多種同步模式

DSGRealSync支持的數據複製模式包括:

a.實時複製:實時更新保證副本系統快速反映源系統的變化,提供賬單查詢、話單查詢等的及時性。

b.定時複製:包括每月複製、每週複製和每天覆制;

c.手工複製:支持操作員指定時間對指定表進行一次完全複製;

(3)對生產系統的低干擾性

DSG實時數據複製技術不需要通過任何數據庫的引擎來獲取變更數據,而是通過數據庫自身的信息獲取源系統上的改變並傳送給目的系統,不會對生產系統造成性能影響。

(4)系統異構,可提供更多的優化空間

源數據庫系統和目的數據庫系統的可異構,主要包括索引規則和存儲參數(如數據塊大小、回滾段等)。

因此可以在目標數據庫上根據業務特點進行調整和優化,完全不受源系統的限制。

(5)支持的多種複製策略

RealSync可以被靈活配置,以支持各種複製策略,支持各種增值應用,如:1:1單向複製;一對多複製;多對一複製等。

3 RealSync工作原理概述


如上圖所示,RealSync在Data Source端和Data Target端分別安裝Agent進程,Source端的Agent進程對ORACLE日誌進行監控,發現改變及時對目標數據庫進行更新。

當應用系統在Data Source端向數據庫進行任何操作時時,這些信息都將在Redo Log中保存,RealSync Agent通過對實時獲取的Log日誌進行分析,獲得本次操作的交易指令和交易數據,然後將這些交易指令和交易數據經過格式轉化生成DXF數據格式,並實時通過網絡傳送到Data Target系統。

DataTarget系統的RealSyncAgent接收數據庫包,經過校驗碼檢查,確認正確的數據庫包後,調用Oracle函數按照交易的先後順序在DataTarget系統中執行該交易。

4 日誌抓取(Data Capture)

RealSync對數據的抓取是通過安裝在Data Source端的Agent模塊定時分析Oracle Redo Log來獲取Data Source端的交易類型及數據的。

RealSyncAgent在判斷Data Source端的Oracle系統是否有新的交易產生時是通過定期檢查Oracle Controlefile中記錄的當前SCN號來判斷的,這樣避免每次檢都通過讀取log文件來判斷否有新的交易產生時造成的系統影響。

在Controle file中確認有新的交易產生時,可以同時獲得當前的Redo Log 組,以及最新日誌在日誌文件的最新位置。

RealSyncAgent模塊根據這些信息將上次抓取時記錄的日誌位置與本次讀取的最新位置之間的Log讀取並加以分析。然後將這些數據保存在Online Log Cache文件中,等待下一步作交易合成處理。

RealSync的優勢:

與其他類似日誌複製產品相比,RealSync對日誌進行分析,得到交易信息再進行傳送;而其他類似產品不對日誌作分析,傳送全部日誌,然後在目標端通過日誌作Recover, 這樣一來,不僅傳送數據量大,而且目標端數據庫不能打開。

5 日誌分析(Analyze)

Oracle數據庫的所有更改都記錄在日誌中,其中記錄了對數據庫中的每一個變化。

當我們候需要需要了解數據庫中所作的交易時,一個最有效實用而又低成本的方法就是分析Oracle數據庫的日誌文件。

RealSyncAgent中集成了DSG的優秀日誌分析功能,該功能完全不同於oracle提供的Logminer日誌分析工具,在性能和功能上都大大提高,主要體現在系統性能的優化上,大幅度提高日誌分析的速度,使得對於高併發業務系統的複製成爲可能。按照RealSync的日誌分析設計目標,每秒能夠分析的日誌量達到10M/s。

RealSync通過對日誌的分析,得到該數據庫中的每個SQL指令,並將這些SQL指令生成DXF(DSG Extend Format)格式的表達方式。

DXF格式是DSG公司的專有技術,該技術是DSG公司用來表達SQL指令的方式,該數據格式能夠通過DSG的專有轉換算法能夠直接轉換爲ORACL的內部數據表達格式,從而在分析和轉載時需要最小的轉化,提高分析和裝載速度,減少資源佔用、豐富能夠表達的各種數據類型。

6 交易合成(Synthesize)

通過ORACLE REDO LOG分析的交易指令存在如下的幾個特點:

(1)這些指令是交叉出現的,屬於一個交易(Transaction)的多條SQL指令是非連續存儲的,多個交易的SQL之間是相互穿插的;

(2)Redo log中記錄了所有的commit的交易以及沒有commit的交易;

所以,爲了提高系統的可控制性、保證邏輯完整性、避免數據丟失,最好將複製的最小單位爲一個交易(Transaction),而不是以單個SQL指令爲複製單位,這樣在DataTarget端的交易裝載更加容易控制。

同時,對於複製的數據而言,只有那些Commit的數據對於DataTarget端系統是有意義的,而對於那些Rollback的數據無需複製到Data target系統上。

所以RealSync在複製過程中不是複製每個SQL語句,而是對抓取的數據進行交易整合後以交易(Transaction)爲單位進行復制,同時只複製COMMIT的交易。

如上圖所示,在Online Log Cache文件中,包括Commit的交易,沒有Commit的交易和Rollback的交易。交易合成模塊首先按照交易序號對SOL語句進行劃分,每個交易包含多條SOL語句。然後,以交易爲單位進行處理,將已經Commit的交易,傳至傳輸處理模塊;將未提交的交易保存在本地,一旦通過日誌得知保存的未提交交易已提交,立即將該交易發送到傳輸處理模塊;對Rollback的交易作丟棄處理。

RealSync的優勢:

RealSync是以交易爲單位進行傳輸的,而不是以SOL語句爲單位進行傳輸的,更容易保證數據的一致性和完整性。

7 交易傳輸

RealSync技術爲了保證數據傳輸的安全、可靠,在傳輸處理上作了特殊的處理與支持:

(1) 數據在傳輸之前首先存入Data Source端的Cache,傳輸進程(Export Process)從Cache中讀取交易數據封裝爲TCP/IP數據包傳送給Data target端的Import進程。


(2)在data target端,Import進程在收到傳輸的交易數據包後,首先存入Queue,然後由Load進程從Queue中嚴格按照交易的順序裝載交易信息。

如上圖所示,負責傳輸的進程(Export Process)從本地隊列中按照先進先出的原則抓取需要傳輸的交易,將交易數據封裝成一個數據包後通過TCP/IP協議傳遞給對端系統。在封裝的數據包的包頭部分描述了包的大小。

對端系統在接受到傳來的數據包後,首先根據包頭描述的包大小進行傳輸的合法性檢查,判斷是否傳輸完整。

8 數據裝載

在傳統的複製技術中,常用的數據裝載方式是採用Oracle 的SQL接口,通過Insert、Update、Delete等SQL語句實現數據的裝載。這種方式在通用性上很好,但關鍵在於性能問題非常突出。

SQL語句的執行需要經過parse、plan、格式轉換等過程,造成大量的系統開銷。尤其是update和Delte操作的大量Where子句操作需要進行復雜的查詢定位任務,從而導致裝載性能低下,對處理能力的要求比生產系統的還高。

DSGRealSync在設計之初就定位於電信級大數據量系統的應用,因此在裝載性能上進行了大幅度的改善,使得裝載端的性能和處理能力需求降至最低。

在其中DSG RealSync採用了兩個關鍵的技術提高了裝載速度:

(1)採用DXF數據格式的裝載;

(2)採用Rowidmapping的方式實現快速定位;

8.1 用DXF數據格式的裝載:

DXF(DSG Extend Format)格式是DSG公司的專有技術,該技術是DSG公司用來表達SQL指令的方式,該數據格式能夠通過DSG的專有轉換算法能夠直接轉換爲ORACL的內部數據表達格式,從而在分析和轉載時需要最小的轉化,提高分析和裝載速度,減少資源佔用、豐富sql語句的表達方式。

Oracle數據庫系統在設計上提供了4個層次的接口,其中包括User層,SQL層,Transformation層和I/O層。其結構爲:

在這四層當中,當採用SQL接口進行數據裝載時,調用的是User層,

而DSG RealSync通過DXF數據格式裝載時,調用I/O層直接將數據通過Oracle的最底層函數寫入系統中,所以DSG RealSync在裝載層上有一定優勢;

8.2 Row mapping實現快速定位

對於交易中的操作,存在着大量的Where子句操作,在採用標準SQL語句執行這些操作時,系統需要首先定位目標記錄所在的數據文件的位置信息,這將帶來大量的索引查詢開銷,當併發執行數千條指令時,系統的開銷將變得非常龐大。

DSGRealSync工具不採用該方式實現裝載數據的定位,而是通過ROW Mapping的方式實現記錄的快速定位:

當RealSync從源端Log文件中讀取交易數據時,將獲得該交易對應記錄的所在位置,用rowid表示爲rowid_ds;

當該交易在目標端裝載時,系統不翻譯爲Where子句,而是去通過保存在目標端的row mapping表獲得對應目標端該記錄的所在位置rowid,記錄爲rowid_dt。

從而在目標端裝載時通過rowid能夠直接定位於該數據需要寫入的位置。避免了大量的索引查找時間。

每條記錄的row mapping信息是在該記錄執行insert操作、sql loader或首次批量同步時建立起來的。

RealSync的優勢:

DSG擴展格式DXF(DSG Extend Format)是RealSync產品的一個核心技術,是一種最高效率表示ORACLE記錄的數據格式,該格式只需要經過最小的轉換過程就能夠裝載到ORACLE數據庫中,並且裝載效率非常高。

n 無需標準SQL語句執行的複雜過程

n 加快裝載速度

n 對於Update,Delete等帶Where子句的交易,可以大幅度提高裝載速度

9 OPS/RAC的支持

OracleOPS/RAC是一種多實例同時打開同一個數據庫的技術,每個實例共享同一份數據文件和控制文件(控制文件可能有多個,但是內容相同,爲每個實例所共享)。一個例外是,每個實例的Redo Log都專屬於該實例(如下圖所示),但每個實例的所有Redo Log都必須能夠被其他實例訪問。所有實例的Redo Log一般都保存在共享磁盤中(裸設備或集羣文件系統)。

在OPS/RAC的環境下,RealSync Agent需要安裝在OPS/RAC一個節點上,RealSync Agent通過控制文件得到每個實例的Redo Log配置,並實時跟蹤每個實例的Redo Thread產生的日誌,分析日誌並將提交的交易發送的目標系統。

在OPS/RAC環境下,多個實例共用一套SCN,每個實例對數據的修改都會引起SCN的遞增改變,RealSync通過SCN在目標端順序提交交易,來保證數據庫的一致。

10數據完整性保證

RealSync複製軟件保證數據的一致性和完整性的保證主要通過以下幾個方面:

保證交易先後順序:

保證交易的先後順序:嚴格按照源端Transaction執行順序在目標端加載,嚴格的I/O順序是保證系統邏輯正確的關鍵因素,RealSync通過對Transaction的SCN號進行判斷,並嚴格保證源系統上先Commit的交易在目標端也是先裝載。

檢查日誌跟蹤的連續性:

檢查日誌跟蹤的連續性:RealSync在每次log讀取結束時,都將記錄當前讀取的日誌的Sequence No,Block No和最後讀取的Offset,當下次讀取文件時,總是需要檢查是否和上次讀取的位置嚴格連續,從而保證對日誌分析的完整性。

數據一致性檢查:

數據一致性檢查:RealSync提供數據一致性檢查工具,用來比較源端的記錄和目標端的記錄是否完全一致。如果出現數據不一致,RealSync將對不一致的部分進行修復。

11數據初始化裝載

當系統在初始化過程,或需要重新完成批量數據複製時,RealSync提供海量數據的高速複製功能:

DSG複製功能是對數據實行導出、導入的方式實現的,但該實現不是通過oracleexport和import工具,而是利用DSG RealSync中內置的XEXP/XIMP工具實現的。

其過程不是對數據庫底層的存儲數據塊進行復制,而是將源系統上的已有數據記錄從datafile中直接讀取並解析成爲DXF數據格式,在利用XIMP將DXF數據批量快速裝載到Data target系統上。

RealSync調用Oracle的I/O層的API接口批量讀取一張表(Table)的記錄(每次讀多少條是由操作員設定的RealSync系統的Buffer決定的,如果一次讀不完,則分爲多次讀取),然後將讀取的記錄轉化爲DXF格式,再將DXF格式表示的一批記錄傳送到目標端的RealSync Agent進程,目標端進程再調用ORACLE的I/O層的API接口將數據批量寫入目標系統中。

對於一個數據庫而言,其中有許多張表(Table),RealSync依次將每張表的所有數據按照上述原理複製到目標系統中。

對於xexp導出過程不是通過Oracle的標準select接口,所以其導出速度非常快。

同時,在採用DSG RealSync實現批量數據裝載時,還無需停止源系統上的業務流程。那麼RealSync是如何處理在導出過程中新改變的數據的複製呢?

因此,RealSync還支持第二階段的增量數據複製:

當上個步驟的大批量數據完成後,RealSync再將步驟一過程中新增加的交易重新複製到目標系統。

在過程的工作原理是通過跟蹤和分析從上個步驟開始時的所有redo.log信息,從Log文件中分析和翻譯出這段時間內新增加的記錄,然後再將記錄在目標系統上插入。

如果在該過程中複製的數據在目標表中已經存在,則RealSync將首先刪除目標系統中的該記錄,同時插入新複製的記錄。

在這兩個過程執行過程中,生產系統的業務可以保持運行狀態。無需中斷業務。


12選擇性複製支持

因爲根據業務邏輯,很多情況下無需對所有的數據表信息進行復制,而只需要複製那些需要的表的信息,這樣可以減少存儲和網絡帶寬的成本。同時,SmartE支持水平和垂直分割。在水平分割方面可以只複製那些滿足預先定義的條件的記錄。在垂直分割方面允許設置對指定表的指定列進行復制。

13支持的複製結構

RealSync可以被靈活配置,以支持各種複製策略,支持各種增值應用。如:

單向複製:

從一個數據庫向另一個數據庫複製;

雙向複製:

兩個數據庫進行互相複製;

廣播複製:

由一個數據庫向多個數據庫複製;

集中複製:

由多個數據庫向一個數據庫複製;

級聯複製:

由A數據庫向B數據庫複製,同時又由B數據庫向C數據庫進行復制。

14產品規格

特性

描述

工作方式

Transaction-Based數據複製

目標系統支持的操作

目標系統支持Read-Write操作

支持數據庫版本

Oracle 8.0.6 ~ Oracle 9i版本

支持數據類型

支持Oracle 7 Data Type

支持複製操作類型

DML語句

可選擇性複製

選擇整庫、user、表爲複製單位

支持的硬件平臺

Sun, HP, IBM, x86

支持的操作系統

Solaris, AIX, HP-UX, Linux,Windows NT/2000

支持的存儲系統

EMC,IBM,HDS、HP、SUN以及其它通用的SCSI/FC存儲系統

支持多種複製結構

一對一,雙向,一對多,多對一

複製時間間隔

可靈活設置

最大距離

沒有限制

對系統性能的影響

對主系統CPU佔用率<5%。

15模塊組成

RealSync for Production Server:

安裝在源系統(Data Source)上運行數據庫實例的服務器上,每臺服務器配置一個License;

該模塊中又包含以下功能:

n Analyzer Module:日誌分析模塊

n Synthisizer Module:交易合成模塊

n Exporter Module:數據傳輸(輸出端)模塊

n XEXP Module:用於從已有的Table中批量導出數據,用於系統初始化

RealSync for Destination Server:

安裝在複製目標系統(Data Target)上運行數據庫實例的服務器上,每臺服務器配置一個License;

該模塊中又包含以下功能:

n Importer Module:數據傳輸(輸入端)模塊

n Loader Module:交易合成模塊

n XIMP Module:用於從已有的Table中導出數據的批量裝載,用於系統初始化

RealSync management console:

管理控制界面;

16典型的FAQ

n 是否支持異構平臺恢復?

支持,如將HP-UX上的Oracle恢復到IBM AIX上。傳統複製技術,無論是EMC SRDF, IBM PPRC 、HP Business Copy XP、VERITAS VVR或者Oracle DataGuard等都不能支持異構平臺的複製。

n 支持的Oracle版本?

支持Oracle 8.0.6 以上版本,並支持不同Oracle版本間複製。

n 持哪些複製模式?

支持一對一,雙向,一對多,多對一,和級聯複製。

n 對網絡帶寬的佔用,對源系統資源的佔用如何?

RealSync使用基於Log的複製,複製操作集中於對數據的改變。因此,對源數據庫系統、源系統和網絡的影響較小。根據Oracle在比較其DataGuard與EMC SRDF之間的差別時,提出EMC SRDF的數據複製量爲DataGuard的7倍。而RealSync的複製數據量比DataGuard更小。

n RealSync支持源系統和目標系統間的最大距離?

RealSync是基於TCP/IP的複製系統,藉助現有的網絡技術,距離沒有限制。

n RealSync正常工作要求的最小網絡帶寬?

由於RealSync直接讀取Oracle的Online Redo Log,複製操作集中於數據的改變,對網絡帶寬要求較低,對網絡帶寬的最小要求也根據源系統的數據更新頻率而不同。


17成功案例客戶名錄

自從DSG迪思傑(北京)數碼技術有限公司於2002年在國內成立以來, DSG 產品和DMP架構已經得到了業界人士的廣泛認可,並且在電信、政府、證券、公安、軍隊等行業已經得到了廣泛的應用。

l 中國電信:電信總部、江蘇電信、重慶電信、江西電信、廣西電信、xinjiang電信、青海電信、海南電信、貴州電信、甘肅電信、寧夏電信以及電信北方事業部;

l 中國移動:江西移動、廣西移動;

l 中國網通:遼寧網通、周口通信、滄州通信;

l 中國聯通:廣東聯通、江蘇聯通、天津聯通、遼寧聯通、山東聯通、陝西聯通、四川聯通;

l 政府機構:信息產業部(含浙江、江蘇、陝西、黑龍江、福建、江西、甘肅、吉林、寧夏和重慶等信產部直屬機構)、河北省地方稅務局、上海市松江區財政局、廣州公安等

l 證券行業:銀河證券、長江證券;

軍隊及其它:海軍某部、火箭研究院、陸軍某部、杭州電力;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章