• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 基于Oracle數(shù)據(jù)庫(kù)的邏輯數(shù)據(jù)同步技術(shù)在實(shí)踐中的應(yīng)用研究

        時(shí)間:2024-09-13 06:47:50 網(wǎng)絡(luò)工程畢業(yè)論文 我要投稿
        • 相關(guān)推薦

        基于Oracle數(shù)據(jù)庫(kù)的邏輯數(shù)據(jù)同步技術(shù)在實(shí)踐中的應(yīng)用研究

          摘 要:隨著人們對(duì)生活質(zhì)量要求的提高,隨時(shí)隨地的為客戶提供無(wú)折扣的服務(wù)成為服務(wù)行業(yè)爭(zhēng)相實(shí)現(xiàn)的目標(biāo),要實(shí)現(xiàn)這個(gè)目標(biāo),災(zāi)備系統(tǒng)建設(shè)是一個(gè)持續(xù)的話題;另外,除了越來(lái)越大的交易量,隨著用戶查詢需求的增加,數(shù)據(jù)庫(kù)負(fù)荷越來(lái)越重,甚至無(wú)法直接為客戶帶來(lái)查詢結(jié)果,將災(zāi)備端數(shù)據(jù)庫(kù)兼用作查詢數(shù)據(jù)庫(kù)實(shí)現(xiàn)雙活,又可以起到有效分擔(dān)壓力,提高響應(yīng)速度的效果。數(shù)據(jù)同步技術(shù)是災(zāi)備系統(tǒng)建設(shè)及數(shù)據(jù)庫(kù)雙活的基礎(chǔ)和核心環(huán)節(jié),本文介紹了某公司實(shí)施基于Oracle數(shù)據(jù)庫(kù)的數(shù)據(jù)同步案例,并對(duì)測(cè)試及試運(yùn)行前期存在的一些問(wèn)題進(jìn)行了分析和改進(jìn),取得了較好的效果,可以供同類項(xiàng)目參考。

        基于Oracle數(shù)據(jù)庫(kù)的邏輯數(shù)據(jù)同步技術(shù)在實(shí)踐中的應(yīng)用研究

          【關(guān)鍵詞】容災(zāi) 雙活Oracle 數(shù)據(jù)同步

          1 引言

          1.1 背景

          伴隨信息化的持續(xù)推進(jìn),數(shù)據(jù)的安全和業(yè)務(wù)運(yùn)行的可靠性越來(lái)越重要,災(zāi)備系統(tǒng)能為業(yè)務(wù)系統(tǒng)的高可用性和高可靠性提供有力保障。

          某公司電話銷售系統(tǒng)是一個(gè)全國(guó)集中的系統(tǒng),該系統(tǒng)承擔(dān)超過(guò)5000座席及全國(guó)市縣一級(jí)落地業(yè)務(wù)人員的訪問(wèn)量,系統(tǒng)規(guī)模及壓力大,影響范圍廣,需要建設(shè)可靠、穩(wěn)定、高效的容災(zāi)體系;并能實(shí)現(xiàn)在災(zāi)備端實(shí)時(shí)查詢生產(chǎn)數(shù)據(jù),分擔(dān)生產(chǎn)端壓力。數(shù)據(jù)同步是實(shí)現(xiàn)上述目標(biāo)的核心及基礎(chǔ)。

          1.2 研究思路

          以該企業(yè)實(shí)施的數(shù)據(jù)同步項(xiàng)目為案例,介紹了災(zāi)備體系的基礎(chǔ)架構(gòu)和基礎(chǔ)環(huán)境,在此基礎(chǔ)上選用了合適的數(shù)據(jù)同步產(chǎn)品,設(shè)計(jì)了同步方案和策略,經(jīng)測(cè)試和試運(yùn)行,總結(jié)過(guò)程中產(chǎn)生的問(wèn)題,提出了解決方案并付諸實(shí)施,對(duì)同步過(guò)程持續(xù)進(jìn)行監(jiān)控,對(duì)比結(jié)果進(jìn)行總結(jié)。

          2 數(shù)據(jù)同步技術(shù)

          數(shù)據(jù)同步技術(shù)大致可分為存儲(chǔ)系統(tǒng)層、操作系統(tǒng)層、數(shù)據(jù)庫(kù)系統(tǒng)層同步技術(shù)。

          2.1 存儲(chǔ)系統(tǒng)層數(shù)據(jù)復(fù)制

          現(xiàn)在的存儲(chǔ)設(shè)備經(jīng)過(guò)多年的發(fā)展已經(jīng)十分成熟。特別是中高端產(chǎn)品,一般都具有先進(jìn)的數(shù)據(jù)管理功能。遠(yuǎn)程數(shù)據(jù)復(fù)制功能幾乎是現(xiàn)有中高端產(chǎn)品的必備功能。要實(shí)現(xiàn)數(shù)據(jù)的復(fù)制需要在生產(chǎn)中心和災(zāi)備中心都部署一套這樣的存儲(chǔ)系統(tǒng),數(shù)據(jù)復(fù)制功能由存儲(chǔ)系統(tǒng)實(shí)現(xiàn)。如果距離比較近(幾十公里之內(nèi))之間的鏈路可由兩中心的存儲(chǔ)交換機(jī)通過(guò)光纖直接連接,如果距離在100公里內(nèi)也可通過(guò)增加DWDM等設(shè)備直接進(jìn)行光纖連接,超過(guò)100公里的距離則可增加存儲(chǔ)路由器進(jìn)行協(xié)議轉(zhuǎn)換途徑WAN或INTERNET實(shí)現(xiàn)連接,因此從理論上可實(shí)現(xiàn)無(wú)限制連接。存儲(chǔ)系統(tǒng)層的數(shù)據(jù)復(fù)制技術(shù)對(duì)于主機(jī)的操作系統(tǒng)是完全透明的,是對(duì)于將來(lái)增加新的操作平臺(tái),可不用增加任何復(fù)制軟件的投資,即可完成實(shí)現(xiàn)復(fù)制。缺點(diǎn)是由于基于存儲(chǔ)是由存儲(chǔ)硬件廠商提供的,在兼容性方面有局限性。用戶要使用同一廠商的設(shè)備,給用戶造成的選擇面太小,成本容易提高,并且對(duì)線路帶寬的要求通常也較高。對(duì)于預(yù)算充足,存儲(chǔ)環(huán)境不是很復(fù)雜的企業(yè)來(lái)說(shuō),選擇基于存儲(chǔ)的技術(shù)比較適合。存儲(chǔ)系統(tǒng)層的數(shù)據(jù)復(fù)制基于同構(gòu)的存儲(chǔ),各個(gè)存儲(chǔ)廠商都有自己的復(fù)制軟件,如IBM PPRC、EMC SRDF、HP Continues Access、HDS TrueCopy等。

          2.2 操作系統(tǒng)層數(shù)據(jù)復(fù)制

          主要通過(guò)操作系統(tǒng)或者數(shù)據(jù)卷管理器來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的遠(yuǎn)程復(fù)制。這種復(fù)制技術(shù)要求本地系統(tǒng)和遠(yuǎn)端系統(tǒng)的主機(jī)是同構(gòu)的,其實(shí)現(xiàn)方式是基于主機(jī)的數(shù)據(jù)復(fù)制,容災(zāi)工作在主機(jī)的卷管理器這一層,通過(guò)磁盤卷的鏡像或復(fù)制,實(shí)現(xiàn)數(shù)據(jù)的容災(zāi)。這種方式也不需要在兩邊采用同樣的存儲(chǔ)設(shè)備,具有較大的靈活性,缺點(diǎn)是復(fù)制功能會(huì)多少占用一些主機(jī)的CPU資源,對(duì)主機(jī)的性能有一定的影響。目前基于原廠的邏輯卷管理軟件如IBM AIX LVM、HP-UINX MirrorDisk、Sun Solaris SVM等可以實(shí)現(xiàn)在本廠平臺(tái)上的邏輯卷鏡像,專業(yè)的數(shù)據(jù)復(fù)制軟件提供了更大的靈活性,支持多個(gè)平臺(tái)的邏輯卷鏡像,其中代表性的軟件是Symantec VERITAS Storage Foundation 軟件。

          2.3 數(shù)據(jù)庫(kù)數(shù)據(jù)復(fù)制技術(shù)

          數(shù)據(jù)庫(kù)數(shù)據(jù)復(fù)制技術(shù)通常采用日志復(fù)制功能,依靠本地和遠(yuǎn)程主機(jī)間的日志歸檔與傳遞來(lái)實(shí)現(xiàn)兩端的數(shù)據(jù)一致。這種復(fù)制技術(shù)對(duì)系統(tǒng)的依賴性小,有很好的兼容性。缺點(diǎn)是本地復(fù)制軟件向遠(yuǎn)端復(fù)制的是日志文件,這需要遠(yuǎn)端應(yīng)用程序重新執(zhí)行和應(yīng)用才能生產(chǎn)可用的備份數(shù)據(jù)。目前基于數(shù)據(jù)庫(kù)的復(fù)制技術(shù)主要有:Oracle DataGuard、Oracle GoldenGate、DSG RealSync、Quest SharePlex、九橋DDS等。

          3 某公司數(shù)據(jù)同步方案設(shè)計(jì)

          3.1 災(zāi)備體系架構(gòu)及基礎(chǔ)環(huán)境

          容災(zāi)體系的目標(biāo)是實(shí)現(xiàn)在線的兩地三中心應(yīng)用級(jí)容災(zāi),主生產(chǎn)中心A及同城災(zāi)備中心C(兼查詢中心)在北京,異地災(zāi)備中心B在廣東。項(xiàng)目實(shí)施分為四個(gè)階段,第一階段生產(chǎn)中心A與同城災(zāi)備中心C的雙向數(shù)據(jù)同步測(cè)試及切換演練;第二階段實(shí)現(xiàn)新生產(chǎn)中心A與同城災(zāi)備中心C(兼查詢中心)及異地災(zāi)備中心B的雙向數(shù)據(jù)同步測(cè)試及切換演練;第三階段實(shí)現(xiàn)兩地三中心上線試運(yùn)行。

          兩地三中心的環(huán)境情況如下所示:

          (1) A中心:數(shù)據(jù)庫(kù)主機(jī)為IBM P780,AIX6.1,存儲(chǔ)為IBM DS8800,數(shù)據(jù)庫(kù)為oracle10.2.0.5。

          (2) B中心:數(shù)據(jù)庫(kù)主機(jī)為IBM P780,AIX6.1,存儲(chǔ)為EMC VAXe,數(shù)據(jù)庫(kù)為oracle10.2.0.5。

          (3) C中心:數(shù)據(jù)庫(kù)主機(jī)為SUN M9000、Solaris 10,存儲(chǔ)為HP XPS24000,數(shù)據(jù)庫(kù)為oracle10.2.0.5。

          (4) 同城網(wǎng)帶寬:2*200Mbps。

          (5) 廣域網(wǎng)帶寬:2*200Mbps。

          (6) 生產(chǎn)庫(kù)數(shù)據(jù)量:1.6T,日志量:9G/小時(shí)(源端生成量)。

          3.2 數(shù)據(jù)同步產(chǎn)品

          基于以上基礎(chǔ)條件,要求使用的數(shù)據(jù)同步產(chǎn)品在以下幾方面有良好的支持。

          (1)支持異構(gòu)的存儲(chǔ)、操作系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)。

          (2)目標(biāo)數(shù)據(jù)庫(kù)處于打開(kāi)狀態(tài)。

          (3)支持一對(duì)多、多對(duì)一,雙向復(fù)制等。

          (4)所占系統(tǒng)資源較少。

          (5)傳輸?shù)臄?shù)據(jù)量小,對(duì)帶寬要求不高。

          (6)支持無(wú)主鍵數(shù)據(jù)庫(kù)表的同步。

          通過(guò)對(duì)現(xiàn)有市面產(chǎn)品功能的考察,并基于以上條件進(jìn)行了初步篩選。存儲(chǔ)層和操作系統(tǒng)層的復(fù)制技術(shù)不太適合該場(chǎng)景,他們對(duì)硬件平臺(tái)和操作系統(tǒng)有較為嚴(yán)格的限制;Oracle 10g數(shù)據(jù)庫(kù)DataGuard組件不支持同步過(guò)程中目標(biāo)庫(kù)打開(kāi);Oracle GoldenGate、Quest SharePlex無(wú)主鍵表同步性能較差,而系統(tǒng)中無(wú)主鍵表數(shù)量占比較高。經(jīng)篩選,確定一款數(shù)據(jù)庫(kù)層的數(shù)據(jù)同步軟件DDS進(jìn)行測(cè)試。

          3.3 同步原理

          基于數(shù)據(jù)庫(kù)層的數(shù)據(jù)同步需要在源端和目標(biāo)端各自安裝一套軟件。DDS軟件其工作原理分為歷史數(shù)據(jù)庫(kù)同步與增量數(shù)據(jù)同步兩個(gè)步驟,這個(gè)兩個(gè)步驟的相互結(jié)合可實(shí)現(xiàn)oracle數(shù)據(jù)庫(kù)的不停機(jī)在線數(shù)據(jù)遷移。

          每次同步動(dòng)作由以下幾個(gè)步驟組成:

          (1) 在源端軟件中配置抓取進(jìn)程和隊(duì)列、傳輸進(jìn)程,在目標(biāo)端配置讀取進(jìn)程、裝載進(jìn)程和隊(duì)列。

          (2)抓取進(jìn)程分析源數(shù)據(jù)庫(kù)的日志文件,抓取所需的數(shù)據(jù)變更操作,將其存儲(chǔ)在自己專有的緩存文件中,放入到抓取隊(duì)列。

          (3)由傳輸進(jìn)程對(duì)抓取隊(duì)列文件進(jìn)行封裝處理,壓縮,將其放入到傳輸隊(duì)列中,由傳輸進(jìn)程將文件通過(guò)網(wǎng)絡(luò)發(fā)送到目標(biāo)服務(wù)器上。

          (4)目標(biāo)服務(wù)器上的接收進(jìn)程接收這些文件,根據(jù)裝載隊(duì)列配置進(jìn)行拆分,將其放入到裝載隊(duì)列中。

          (5)由裝載進(jìn)程將這些文件中的變更應(yīng)用到目標(biāo)數(shù)據(jù)庫(kù)中。

          (6)當(dāng)歷史數(shù)據(jù)同步完成時(shí),軟件根據(jù)歷史同步記載的SCN號(hào),對(duì)大于此SCN號(hào)的表的事務(wù)進(jìn)行增量加載。從而使目標(biāo)端數(shù)據(jù)庫(kù)與生產(chǎn)端數(shù)據(jù)庫(kù)始終保持一致,此時(shí),生產(chǎn)業(yè)務(wù)系統(tǒng)可隨時(shí)使用目標(biāo)端數(shù)據(jù)庫(kù)來(lái)頂替原生產(chǎn)數(shù)據(jù)庫(kù),從而完成了數(shù)據(jù)遷移的過(guò)程。

          DDS軟件進(jìn)行數(shù)據(jù)同步,在以下幾方面有優(yōu)勢(shì):

          (1) 通過(guò)在目標(biāo)數(shù)據(jù)庫(kù)的數(shù)據(jù)裝載方面,不是通過(guò)主鍵或唯一鍵來(lái)實(shí)現(xiàn)數(shù)據(jù)記錄的定位,而是自己維護(hù)一個(gè)源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)的數(shù)據(jù)記錄的rowid mapping表,通過(guò)rowid來(lái)實(shí)現(xiàn)記錄的定位,因此在數(shù)據(jù)裝載效率方面有不小的提高。

          (2)對(duì)傳輸文件進(jìn)行壓縮,壓縮比約為1:10,可以大大減少傳輸量,降低帶寬要求。

          但同時(shí)軟件要建立和維護(hù)源、目標(biāo)塊之間的映射列表,當(dāng)同步數(shù)據(jù)量越來(lái)越大時(shí),映射表也變的非常龐大,讀寫效率隨之降低。

          3.4 同步策略

          根據(jù)災(zāi)備體系架構(gòu)規(guī)劃以及同步軟件的特性,基于災(zāi)難應(yīng)急流程制定了災(zāi)備體系的數(shù)據(jù)同步策略。策略包括四個(gè)步驟:正常、生產(chǎn)宕機(jī)、生產(chǎn)恢復(fù)、生產(chǎn)接管。

          (1) 正常生產(chǎn)狀態(tài)下,在A中心配置兩套獨(dú)立的同步策略,同時(shí)向B中心和C同步數(shù)據(jù)。

          (2) 生產(chǎn)中心發(fā)生災(zāi)難,B中心做為容災(zāi)中心接管業(yè)務(wù),同時(shí)斷開(kāi)三個(gè)中心間的數(shù)據(jù)同步機(jī)制。

          (3) A中心的軟、硬件環(huán)境恢復(fù),但業(yè)務(wù)仍然由B中心接管,同時(shí)需要做B中心到A中心的一次數(shù)據(jù)全同步。

          (4) 在A中心接管業(yè)務(wù)后,需要做A中心到B中心和C中心的一次數(shù)據(jù)全同步。B中心和C中心的歷史數(shù)據(jù)全部清空,重新從A中心同步過(guò)來(lái)。

          3.5 同步效果

          (1)前期測(cè)試,使用loadrunner工具進(jìn)行壓力模擬,增量同步效果,如表1所示。

          (2) 試運(yùn)行期間,同步效果如下:

          全同步時(shí)間3小時(shí)13分22秒;增量同步時(shí)間,在業(yè)務(wù)高峰期3499秒;CPU資源占用低于5%,I/O資源占用低于1%,CPU資源占用低于5%;網(wǎng)絡(luò)傳輸量是Oracle在線日志增量的十分之一以下。

          4 問(wèn)題及分析

          4.1 問(wèn)題

          在設(shè)計(jì)之初,由于對(duì)壓力了解不夠,僅在目標(biāo)端配置一個(gè)隊(duì)列進(jìn)行數(shù)據(jù)加載,文件順序加載,造成裝載效率低,累計(jì)時(shí)間延遲高。

          4.2 解決方案設(shè)計(jì)及效果

          針對(duì)順序加載的弊端,考慮將裝載隊(duì)列拆分為多個(gè)隊(duì)列,同時(shí)啟動(dòng)多個(gè)裝載進(jìn)程裝載不同的隊(duì)列,提高裝載效率。

          (1) 首先考慮到數(shù)據(jù)庫(kù)存在多個(gè)用戶,用戶之間關(guān)聯(lián)度小,比較適合作為拆分依據(jù)。

          (2) 其次,同一用戶的不同表數(shù)據(jù)操作類型有差異,部分表數(shù)據(jù)量執(zhí)行的DML操作頻繁,部分表幾乎沒(méi)有DML操作。執(zhí)行DML操作頻繁的表,在同步時(shí)需要頻繁查找映射表以進(jìn)行更改,而非DML操作則不需要查表,將DML頻繁的表單獨(dú)拆分到一個(gè)隊(duì)列,有利于減少其他表執(zhí)行同步的等待時(shí)間,提高效率。

          (3) 再次,部分表之間存在主外鍵關(guān)系,這部分表在進(jìn)行刪除操作時(shí),需要考慮級(jí)聯(lián)刪除的情形,建議拆分到同一隊(duì)列,以保證統(tǒng)一性。

          (4) 最后,還需考慮在目標(biāo)端禁用觸發(fā)器,避免觸發(fā)器引起的重復(fù)操作動(dòng)作。如表2所示。

          基于以上考慮,將隊(duì)列按用戶、DML操作頻繁性、主外鍵關(guān)聯(lián)等條件拆分為19個(gè)裝載隊(duì)列。

          從表2可以看到,通過(guò)優(yōu)化,在數(shù)據(jù)庫(kù)交易數(shù)據(jù)數(shù)及數(shù)據(jù)庫(kù)日志量翻倍的情況下,增量同步時(shí)間反而減少至5秒左右,優(yōu)化取得了良好的效果。

          5 總結(jié)

          本文簡(jiǎn)單介紹了目前主流的數(shù)據(jù)同步技術(shù),基于某公司現(xiàn)狀及災(zāi)備需求,選取了數(shù)據(jù)同步產(chǎn)品,設(shè)計(jì)了同步策略,給出了測(cè)試及試運(yùn)行期間的同步效果數(shù)據(jù);并針對(duì)期間出現(xiàn)的問(wèn)題進(jìn)行一定深度的分析,設(shè)計(jì)解決方案,達(dá)到了一定的效果,可以供同類項(xiàng)目參考。

          參考文獻(xiàn)

          [1]郭偉華.淺談Oracle數(shù)據(jù)同步技術(shù)[J].科技資訊,2010.

          [2]羅易.存儲(chǔ)數(shù)據(jù)復(fù)制技術(shù)在容災(zāi)系統(tǒng)中的應(yīng)用[D].重慶大學(xué),2008.

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【基于Oracle數(shù)據(jù)庫(kù)的邏輯數(shù)據(jù)同步技術(shù)在實(shí)踐中的應(yīng)用研究】相關(guān)文章:

        Oracle數(shù)據(jù)庫(kù)的優(yōu)化03-18

        .NET技術(shù)的數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用研究11-14

        實(shí)現(xiàn)基于網(wǎng)頁(yè)的數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入03-18

        基于Web的交互式數(shù)據(jù)庫(kù)查詢技術(shù)03-20

        基于SQLServer2000的數(shù)據(jù)庫(kù)性能調(diào)整技術(shù)03-22

        大型ORACLE數(shù)據(jù)庫(kù)優(yōu)化設(shè)計(jì)方案03-21

        基于PHP的Web數(shù)據(jù)庫(kù)訪問(wèn)03-19

        基于數(shù)據(jù)庫(kù)的JPG圖像處理03-18

        基于ASP技術(shù)開(kāi)發(fā)Web數(shù)據(jù)庫(kù)檢索程序03-18

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲欧美高清精品一区二区 | 亚洲人在线免费视频观看 | 亚洲男女Av中文字幕 | 亚洲综合色丁香婷婷六月图片 | 最新亚洲人成在线观看 | 亚洲国产精品浪潮久久久AV |

            基于Oracle數(shù)據(jù)庫(kù)的邏輯數(shù)據(jù)同步技術(shù)在實(shí)踐中的應(yīng)用研究

              摘 要:隨著人們對(duì)生活質(zhì)量要求的提高,隨時(shí)隨地的為客戶提供無(wú)折扣的服務(wù)成為服務(wù)行業(yè)爭(zhēng)相實(shí)現(xiàn)的目標(biāo),要實(shí)現(xiàn)這個(gè)目標(biāo),災(zāi)備系統(tǒng)建設(shè)是一個(gè)持續(xù)的話題;另外,除了越來(lái)越大的交易量,隨著用戶查詢需求的增加,數(shù)據(jù)庫(kù)負(fù)荷越來(lái)越重,甚至無(wú)法直接為客戶帶來(lái)查詢結(jié)果,將災(zāi)備端數(shù)據(jù)庫(kù)兼用作查詢數(shù)據(jù)庫(kù)實(shí)現(xiàn)雙活,又可以起到有效分擔(dān)壓力,提高響應(yīng)速度的效果。數(shù)據(jù)同步技術(shù)是災(zāi)備系統(tǒng)建設(shè)及數(shù)據(jù)庫(kù)雙活的基礎(chǔ)和核心環(huán)節(jié),本文介紹了某公司實(shí)施基于Oracle數(shù)據(jù)庫(kù)的數(shù)據(jù)同步案例,并對(duì)測(cè)試及試運(yùn)行前期存在的一些問(wèn)題進(jìn)行了分析和改進(jìn),取得了較好的效果,可以供同類項(xiàng)目參考。

            基于Oracle數(shù)據(jù)庫(kù)的邏輯數(shù)據(jù)同步技術(shù)在實(shí)踐中的應(yīng)用研究

              【關(guān)鍵詞】容災(zāi) 雙活Oracle 數(shù)據(jù)同步

              1 引言

              1.1 背景

              伴隨信息化的持續(xù)推進(jìn),數(shù)據(jù)的安全和業(yè)務(wù)運(yùn)行的可靠性越來(lái)越重要,災(zāi)備系統(tǒng)能為業(yè)務(wù)系統(tǒng)的高可用性和高可靠性提供有力保障。

              某公司電話銷售系統(tǒng)是一個(gè)全國(guó)集中的系統(tǒng),該系統(tǒng)承擔(dān)超過(guò)5000座席及全國(guó)市縣一級(jí)落地業(yè)務(wù)人員的訪問(wèn)量,系統(tǒng)規(guī)模及壓力大,影響范圍廣,需要建設(shè)可靠、穩(wěn)定、高效的容災(zāi)體系;并能實(shí)現(xiàn)在災(zāi)備端實(shí)時(shí)查詢生產(chǎn)數(shù)據(jù),分擔(dān)生產(chǎn)端壓力。數(shù)據(jù)同步是實(shí)現(xiàn)上述目標(biāo)的核心及基礎(chǔ)。

              1.2 研究思路

              以該企業(yè)實(shí)施的數(shù)據(jù)同步項(xiàng)目為案例,介紹了災(zāi)備體系的基礎(chǔ)架構(gòu)和基礎(chǔ)環(huán)境,在此基礎(chǔ)上選用了合適的數(shù)據(jù)同步產(chǎn)品,設(shè)計(jì)了同步方案和策略,經(jīng)測(cè)試和試運(yùn)行,總結(jié)過(guò)程中產(chǎn)生的問(wèn)題,提出了解決方案并付諸實(shí)施,對(duì)同步過(guò)程持續(xù)進(jìn)行監(jiān)控,對(duì)比結(jié)果進(jìn)行總結(jié)。

              2 數(shù)據(jù)同步技術(shù)

              數(shù)據(jù)同步技術(shù)大致可分為存儲(chǔ)系統(tǒng)層、操作系統(tǒng)層、數(shù)據(jù)庫(kù)系統(tǒng)層同步技術(shù)。

              2.1 存儲(chǔ)系統(tǒng)層數(shù)據(jù)復(fù)制

              現(xiàn)在的存儲(chǔ)設(shè)備經(jīng)過(guò)多年的發(fā)展已經(jīng)十分成熟。特別是中高端產(chǎn)品,一般都具有先進(jìn)的數(shù)據(jù)管理功能。遠(yuǎn)程數(shù)據(jù)復(fù)制功能幾乎是現(xiàn)有中高端產(chǎn)品的必備功能。要實(shí)現(xiàn)數(shù)據(jù)的復(fù)制需要在生產(chǎn)中心和災(zāi)備中心都部署一套這樣的存儲(chǔ)系統(tǒng),數(shù)據(jù)復(fù)制功能由存儲(chǔ)系統(tǒng)實(shí)現(xiàn)。如果距離比較近(幾十公里之內(nèi))之間的鏈路可由兩中心的存儲(chǔ)交換機(jī)通過(guò)光纖直接連接,如果距離在100公里內(nèi)也可通過(guò)增加DWDM等設(shè)備直接進(jìn)行光纖連接,超過(guò)100公里的距離則可增加存儲(chǔ)路由器進(jìn)行協(xié)議轉(zhuǎn)換途徑WAN或INTERNET實(shí)現(xiàn)連接,因此從理論上可實(shí)現(xiàn)無(wú)限制連接。存儲(chǔ)系統(tǒng)層的數(shù)據(jù)復(fù)制技術(shù)對(duì)于主機(jī)的操作系統(tǒng)是完全透明的,是對(duì)于將來(lái)增加新的操作平臺(tái),可不用增加任何復(fù)制軟件的投資,即可完成實(shí)現(xiàn)復(fù)制。缺點(diǎn)是由于基于存儲(chǔ)是由存儲(chǔ)硬件廠商提供的,在兼容性方面有局限性。用戶要使用同一廠商的設(shè)備,給用戶造成的選擇面太小,成本容易提高,并且對(duì)線路帶寬的要求通常也較高。對(duì)于預(yù)算充足,存儲(chǔ)環(huán)境不是很復(fù)雜的企業(yè)來(lái)說(shuō),選擇基于存儲(chǔ)的技術(shù)比較適合。存儲(chǔ)系統(tǒng)層的數(shù)據(jù)復(fù)制基于同構(gòu)的存儲(chǔ),各個(gè)存儲(chǔ)廠商都有自己的復(fù)制軟件,如IBM PPRC、EMC SRDF、HP Continues Access、HDS TrueCopy等。

              2.2 操作系統(tǒng)層數(shù)據(jù)復(fù)制

              主要通過(guò)操作系統(tǒng)或者數(shù)據(jù)卷管理器來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的遠(yuǎn)程復(fù)制。這種復(fù)制技術(shù)要求本地系統(tǒng)和遠(yuǎn)端系統(tǒng)的主機(jī)是同構(gòu)的,其實(shí)現(xiàn)方式是基于主機(jī)的數(shù)據(jù)復(fù)制,容災(zāi)工作在主機(jī)的卷管理器這一層,通過(guò)磁盤卷的鏡像或復(fù)制,實(shí)現(xiàn)數(shù)據(jù)的容災(zāi)。這種方式也不需要在兩邊采用同樣的存儲(chǔ)設(shè)備,具有較大的靈活性,缺點(diǎn)是復(fù)制功能會(huì)多少占用一些主機(jī)的CPU資源,對(duì)主機(jī)的性能有一定的影響。目前基于原廠的邏輯卷管理軟件如IBM AIX LVM、HP-UINX MirrorDisk、Sun Solaris SVM等可以實(shí)現(xiàn)在本廠平臺(tái)上的邏輯卷鏡像,專業(yè)的數(shù)據(jù)復(fù)制軟件提供了更大的靈活性,支持多個(gè)平臺(tái)的邏輯卷鏡像,其中代表性的軟件是Symantec VERITAS Storage Foundation 軟件。

              2.3 數(shù)據(jù)庫(kù)數(shù)據(jù)復(fù)制技術(shù)

              數(shù)據(jù)庫(kù)數(shù)據(jù)復(fù)制技術(shù)通常采用日志復(fù)制功能,依靠本地和遠(yuǎn)程主機(jī)間的日志歸檔與傳遞來(lái)實(shí)現(xiàn)兩端的數(shù)據(jù)一致。這種復(fù)制技術(shù)對(duì)系統(tǒng)的依賴性小,有很好的兼容性。缺點(diǎn)是本地復(fù)制軟件向遠(yuǎn)端復(fù)制的是日志文件,這需要遠(yuǎn)端應(yīng)用程序重新執(zhí)行和應(yīng)用才能生產(chǎn)可用的備份數(shù)據(jù)。目前基于數(shù)據(jù)庫(kù)的復(fù)制技術(shù)主要有:Oracle DataGuard、Oracle GoldenGate、DSG RealSync、Quest SharePlex、九橋DDS等。

              3 某公司數(shù)據(jù)同步方案設(shè)計(jì)

              3.1 災(zāi)備體系架構(gòu)及基礎(chǔ)環(huán)境

              容災(zāi)體系的目標(biāo)是實(shí)現(xiàn)在線的兩地三中心應(yīng)用級(jí)容災(zāi),主生產(chǎn)中心A及同城災(zāi)備中心C(兼查詢中心)在北京,異地災(zāi)備中心B在廣東。項(xiàng)目實(shí)施分為四個(gè)階段,第一階段生產(chǎn)中心A與同城災(zāi)備中心C的雙向數(shù)據(jù)同步測(cè)試及切換演練;第二階段實(shí)現(xiàn)新生產(chǎn)中心A與同城災(zāi)備中心C(兼查詢中心)及異地災(zāi)備中心B的雙向數(shù)據(jù)同步測(cè)試及切換演練;第三階段實(shí)現(xiàn)兩地三中心上線試運(yùn)行。

              兩地三中心的環(huán)境情況如下所示:

              (1) A中心:數(shù)據(jù)庫(kù)主機(jī)為IBM P780,AIX6.1,存儲(chǔ)為IBM DS8800,數(shù)據(jù)庫(kù)為oracle10.2.0.5。

              (2) B中心:數(shù)據(jù)庫(kù)主機(jī)為IBM P780,AIX6.1,存儲(chǔ)為EMC VAXe,數(shù)據(jù)庫(kù)為oracle10.2.0.5。

              (3) C中心:數(shù)據(jù)庫(kù)主機(jī)為SUN M9000、Solaris 10,存儲(chǔ)為HP XPS24000,數(shù)據(jù)庫(kù)為oracle10.2.0.5。

              (4) 同城網(wǎng)帶寬:2*200Mbps。

              (5) 廣域網(wǎng)帶寬:2*200Mbps。

              (6) 生產(chǎn)庫(kù)數(shù)據(jù)量:1.6T,日志量:9G/小時(shí)(源端生成量)。

              3.2 數(shù)據(jù)同步產(chǎn)品

              基于以上基礎(chǔ)條件,要求使用的數(shù)據(jù)同步產(chǎn)品在以下幾方面有良好的支持。

              (1)支持異構(gòu)的存儲(chǔ)、操作系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)。

              (2)目標(biāo)數(shù)據(jù)庫(kù)處于打開(kāi)狀態(tài)。

              (3)支持一對(duì)多、多對(duì)一,雙向復(fù)制等。

              (4)所占系統(tǒng)資源較少。

              (5)傳輸?shù)臄?shù)據(jù)量小,對(duì)帶寬要求不高。

              (6)支持無(wú)主鍵數(shù)據(jù)庫(kù)表的同步。

              通過(guò)對(duì)現(xiàn)有市面產(chǎn)品功能的考察,并基于以上條件進(jìn)行了初步篩選。存儲(chǔ)層和操作系統(tǒng)層的復(fù)制技術(shù)不太適合該場(chǎng)景,他們對(duì)硬件平臺(tái)和操作系統(tǒng)有較為嚴(yán)格的限制;Oracle 10g數(shù)據(jù)庫(kù)DataGuard組件不支持同步過(guò)程中目標(biāo)庫(kù)打開(kāi);Oracle GoldenGate、Quest SharePlex無(wú)主鍵表同步性能較差,而系統(tǒng)中無(wú)主鍵表數(shù)量占比較高。經(jīng)篩選,確定一款數(shù)據(jù)庫(kù)層的數(shù)據(jù)同步軟件DDS進(jìn)行測(cè)試。

              3.3 同步原理

              基于數(shù)據(jù)庫(kù)層的數(shù)據(jù)同步需要在源端和目標(biāo)端各自安裝一套軟件。DDS軟件其工作原理分為歷史數(shù)據(jù)庫(kù)同步與增量數(shù)據(jù)同步兩個(gè)步驟,這個(gè)兩個(gè)步驟的相互結(jié)合可實(shí)現(xiàn)oracle數(shù)據(jù)庫(kù)的不停機(jī)在線數(shù)據(jù)遷移。

              每次同步動(dòng)作由以下幾個(gè)步驟組成:

              (1) 在源端軟件中配置抓取進(jìn)程和隊(duì)列、傳輸進(jìn)程,在目標(biāo)端配置讀取進(jìn)程、裝載進(jìn)程和隊(duì)列。

              (2)抓取進(jìn)程分析源數(shù)據(jù)庫(kù)的日志文件,抓取所需的數(shù)據(jù)變更操作,將其存儲(chǔ)在自己專有的緩存文件中,放入到抓取隊(duì)列。

              (3)由傳輸進(jìn)程對(duì)抓取隊(duì)列文件進(jìn)行封裝處理,壓縮,將其放入到傳輸隊(duì)列中,由傳輸進(jìn)程將文件通過(guò)網(wǎng)絡(luò)發(fā)送到目標(biāo)服務(wù)器上。

              (4)目標(biāo)服務(wù)器上的接收進(jìn)程接收這些文件,根據(jù)裝載隊(duì)列配置進(jìn)行拆分,將其放入到裝載隊(duì)列中。

              (5)由裝載進(jìn)程將這些文件中的變更應(yīng)用到目標(biāo)數(shù)據(jù)庫(kù)中。

              (6)當(dāng)歷史數(shù)據(jù)同步完成時(shí),軟件根據(jù)歷史同步記載的SCN號(hào),對(duì)大于此SCN號(hào)的表的事務(wù)進(jìn)行增量加載。從而使目標(biāo)端數(shù)據(jù)庫(kù)與生產(chǎn)端數(shù)據(jù)庫(kù)始終保持一致,此時(shí),生產(chǎn)業(yè)務(wù)系統(tǒng)可隨時(shí)使用目標(biāo)端數(shù)據(jù)庫(kù)來(lái)頂替原生產(chǎn)數(shù)據(jù)庫(kù),從而完成了數(shù)據(jù)遷移的過(guò)程。

              DDS軟件進(jìn)行數(shù)據(jù)同步,在以下幾方面有優(yōu)勢(shì):

              (1) 通過(guò)在目標(biāo)數(shù)據(jù)庫(kù)的數(shù)據(jù)裝載方面,不是通過(guò)主鍵或唯一鍵來(lái)實(shí)現(xiàn)數(shù)據(jù)記錄的定位,而是自己維護(hù)一個(gè)源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)的數(shù)據(jù)記錄的rowid mapping表,通過(guò)rowid來(lái)實(shí)現(xiàn)記錄的定位,因此在數(shù)據(jù)裝載效率方面有不小的提高。

              (2)對(duì)傳輸文件進(jìn)行壓縮,壓縮比約為1:10,可以大大減少傳輸量,降低帶寬要求。

              但同時(shí)軟件要建立和維護(hù)源、目標(biāo)塊之間的映射列表,當(dāng)同步數(shù)據(jù)量越來(lái)越大時(shí),映射表也變的非常龐大,讀寫效率隨之降低。

              3.4 同步策略

              根據(jù)災(zāi)備體系架構(gòu)規(guī)劃以及同步軟件的特性,基于災(zāi)難應(yīng)急流程制定了災(zāi)備體系的數(shù)據(jù)同步策略。策略包括四個(gè)步驟:正常、生產(chǎn)宕機(jī)、生產(chǎn)恢復(fù)、生產(chǎn)接管。

              (1) 正常生產(chǎn)狀態(tài)下,在A中心配置兩套獨(dú)立的同步策略,同時(shí)向B中心和C同步數(shù)據(jù)。

              (2) 生產(chǎn)中心發(fā)生災(zāi)難,B中心做為容災(zāi)中心接管業(yè)務(wù),同時(shí)斷開(kāi)三個(gè)中心間的數(shù)據(jù)同步機(jī)制。

              (3) A中心的軟、硬件環(huán)境恢復(fù),但業(yè)務(wù)仍然由B中心接管,同時(shí)需要做B中心到A中心的一次數(shù)據(jù)全同步。

              (4) 在A中心接管業(yè)務(wù)后,需要做A中心到B中心和C中心的一次數(shù)據(jù)全同步。B中心和C中心的歷史數(shù)據(jù)全部清空,重新從A中心同步過(guò)來(lái)。

              3.5 同步效果

              (1)前期測(cè)試,使用loadrunner工具進(jìn)行壓力模擬,增量同步效果,如表1所示。

              (2) 試運(yùn)行期間,同步效果如下:

              全同步時(shí)間3小時(shí)13分22秒;增量同步時(shí)間,在業(yè)務(wù)高峰期3499秒;CPU資源占用低于5%,I/O資源占用低于1%,CPU資源占用低于5%;網(wǎng)絡(luò)傳輸量是Oracle在線日志增量的十分之一以下。

              4 問(wèn)題及分析

              4.1 問(wèn)題

              在設(shè)計(jì)之初,由于對(duì)壓力了解不夠,僅在目標(biāo)端配置一個(gè)隊(duì)列進(jìn)行數(shù)據(jù)加載,文件順序加載,造成裝載效率低,累計(jì)時(shí)間延遲高。

              4.2 解決方案設(shè)計(jì)及效果

              針對(duì)順序加載的弊端,考慮將裝載隊(duì)列拆分為多個(gè)隊(duì)列,同時(shí)啟動(dòng)多個(gè)裝載進(jìn)程裝載不同的隊(duì)列,提高裝載效率。

              (1) 首先考慮到數(shù)據(jù)庫(kù)存在多個(gè)用戶,用戶之間關(guān)聯(lián)度小,比較適合作為拆分依據(jù)。

              (2) 其次,同一用戶的不同表數(shù)據(jù)操作類型有差異,部分表數(shù)據(jù)量執(zhí)行的DML操作頻繁,部分表幾乎沒(méi)有DML操作。執(zhí)行DML操作頻繁的表,在同步時(shí)需要頻繁查找映射表以進(jìn)行更改,而非DML操作則不需要查表,將DML頻繁的表單獨(dú)拆分到一個(gè)隊(duì)列,有利于減少其他表執(zhí)行同步的等待時(shí)間,提高效率。

              (3) 再次,部分表之間存在主外鍵關(guān)系,這部分表在進(jìn)行刪除操作時(shí),需要考慮級(jí)聯(lián)刪除的情形,建議拆分到同一隊(duì)列,以保證統(tǒng)一性。

              (4) 最后,還需考慮在目標(biāo)端禁用觸發(fā)器,避免觸發(fā)器引起的重復(fù)操作動(dòng)作。如表2所示。

              基于以上考慮,將隊(duì)列按用戶、DML操作頻繁性、主外鍵關(guān)聯(lián)等條件拆分為19個(gè)裝載隊(duì)列。

              從表2可以看到,通過(guò)優(yōu)化,在數(shù)據(jù)庫(kù)交易數(shù)據(jù)數(shù)及數(shù)據(jù)庫(kù)日志量翻倍的情況下,增量同步時(shí)間反而減少至5秒左右,優(yōu)化取得了良好的效果。

              5 總結(jié)

              本文簡(jiǎn)單介紹了目前主流的數(shù)據(jù)同步技術(shù),基于某公司現(xiàn)狀及災(zāi)備需求,選取了數(shù)據(jù)同步產(chǎn)品,設(shè)計(jì)了同步策略,給出了測(cè)試及試運(yùn)行期間的同步效果數(shù)據(jù);并針對(duì)期間出現(xiàn)的問(wèn)題進(jìn)行一定深度的分析,設(shè)計(jì)解決方案,達(dá)到了一定的效果,可以供同類項(xiàng)目參考。

              參考文獻(xiàn)

              [1]郭偉華.淺談Oracle數(shù)據(jù)同步技術(shù)[J].科技資訊,2010.

              [2]羅易.存儲(chǔ)數(shù)據(jù)復(fù)制技術(shù)在容災(zāi)系統(tǒng)中的應(yīng)用[D].重慶大學(xué),2008.