国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種數(shù)據(jù)庫同步的方法和裝置的制造方法_5

      文檔序號:8487867閱讀:來源:國知局
      數(shù)量,減少了數(shù)據(jù)傳輸過程中的負(fù)荷,進(jìn)一步提高了數(shù)據(jù)同步的效率。
      [0185]較佳的,源端中繼服務(wù)器接收目標(biāo)端服務(wù)器發(fā)送的第一請求消息,具體包括:
      [0186]源端中繼服務(wù)器通過M個數(shù)據(jù)傳輸通道接收目標(biāo)端服務(wù)器發(fā)送的N條第一請求消息;其中,M為大于等于I的正整數(shù),M小于等于N;每條數(shù)據(jù)傳輸通道至少承載一條第一請求消息;
      [0187]源端中繼服務(wù)器將第一響應(yīng)消息發(fā)送給目標(biāo)端服務(wù)器,具體包括:
      [0188]源端中繼服務(wù)器將N條第一響應(yīng)消息通過M個數(shù)據(jù)傳輸通道發(fā)送給目標(biāo)端服務(wù)器。
      [0189]基于前述相同構(gòu)思,目標(biāo)端服務(wù)器連接多個目標(biāo)數(shù)據(jù)庫時,則目標(biāo)端服務(wù)器需要同步所有與該目標(biāo)端服務(wù)器連接的目標(biāo)數(shù)據(jù)庫,目標(biāo)端服務(wù)器也需分別為每個目標(biāo)數(shù)據(jù)庫構(gòu)造一條第一請求消息,用于獲取該目標(biāo)數(shù)據(jù)庫需同步的數(shù)據(jù)變更事件。假設(shè)該目標(biāo)端服務(wù)器連接的N個目標(biāo)數(shù)據(jù)庫,目標(biāo)端服務(wù)器構(gòu)造了 N條第一請求消息。
      [0190]進(jìn)一步,較佳的,本發(fā)明實施例中,目標(biāo)端服務(wù)器向源端中繼服務(wù)器發(fā)送該N條第一請求消息時,可建立TCP連接的數(shù)據(jù)傳輸通道。較佳的,多條請求消息可共用一個數(shù)據(jù)傳輸通道,較優(yōu)的方案為,一條請求消息占用一個數(shù)據(jù)傳輸通道,即M等于N,此時,目標(biāo)端服務(wù)器可通過N條數(shù)據(jù)傳輸通道向源端中繼服務(wù)器發(fā)送N條第一請求消息,從而提高了目標(biāo)端服務(wù)器連接多個目標(biāo)數(shù)據(jù)庫時的數(shù)據(jù)傳輸效率,同時降低同步延時。較佳的,源端中繼服務(wù)器可通過該M個數(shù)據(jù)傳輸通道向該目標(biāo)端服務(wù)器返回N條第一響應(yīng)消息。
      [0191]較佳的,配置參數(shù)至少包括目標(biāo)數(shù)據(jù)庫標(biāo)識號、目標(biāo)數(shù)據(jù)庫的類型、目標(biāo)數(shù)據(jù)庫存儲的數(shù)據(jù)表的目標(biāo)數(shù)據(jù)表標(biāo)識號、目標(biāo)數(shù)據(jù)表標(biāo)識號與源數(shù)據(jù)庫中的源數(shù)據(jù)表標(biāo)識號的對應(yīng)關(guān)系;
      [0192]源端中繼服務(wù)器接收目標(biāo)服務(wù)器發(fā)送的注冊請求,其中,注冊請求是該目標(biāo)服務(wù)器啟動時,加載完與該目標(biāo)服務(wù)器連接的目標(biāo)數(shù)據(jù)庫的配置參數(shù)之后發(fā)送的;
      [0193]源端中繼服務(wù)器向該目標(biāo)服務(wù)器發(fā)送注冊響應(yīng),以使該目標(biāo)服務(wù)器與源端中繼服務(wù)器建立連接。
      [0194]具體來說,與源端中繼服務(wù)器連接的目標(biāo)端服務(wù)器配置有目標(biāo)數(shù)據(jù)庫的配置參數(shù),配置參數(shù)包括與該目標(biāo)端服務(wù)器連接的所有目標(biāo)數(shù)據(jù)庫標(biāo)識號、目標(biāo)數(shù)據(jù)庫的類型、目標(biāo)數(shù)據(jù)庫存儲的數(shù)據(jù)表的目標(biāo)數(shù)據(jù)表標(biāo)識號、目標(biāo)數(shù)據(jù)表標(biāo)識號與源數(shù)據(jù)庫中的源數(shù)據(jù)表標(biāo)識號的對應(yīng)關(guān)系等。而且源端中繼服務(wù)器至少連接兩個目標(biāo)端服務(wù)器。
      [0195]較佳的,目標(biāo)端服務(wù)器中預(yù)先配置有與該目標(biāo)端服務(wù)器對應(yīng)連接的目標(biāo)數(shù)據(jù)庫的配置參數(shù),接著目標(biāo)端服務(wù)器加載完成該配置參數(shù)之后,目標(biāo)端服務(wù)器向源端中繼服務(wù)器發(fā)送注冊請求,以便進(jìn)行登錄。本發(fā)明實施例也支持在目標(biāo)端服務(wù)器的正常運行過程對預(yù)先配置的目標(biāo)數(shù)據(jù)庫的配置參數(shù)進(jìn)行修改,修改之后需對應(yīng)的該目標(biāo)端服務(wù)器進(jìn)行設(shè)置或重啟。
      [0196]較佳的,當(dāng)目標(biāo)數(shù)據(jù)庫發(fā)生變動時,如增加、修改或升級某個目標(biāo)數(shù)據(jù)庫,則僅需對應(yīng)增加、修改或重啟與該新增目標(biāo)數(shù)據(jù)庫連接的目標(biāo)端服務(wù)器,并對應(yīng)增加或更改該目標(biāo)端服務(wù)器中的該目標(biāo)數(shù)據(jù)庫對應(yīng)的配置參數(shù),之后將該發(fā)生變動的目標(biāo)數(shù)據(jù)庫的配置參數(shù)對應(yīng)加載在與該發(fā)生變動的目標(biāo)數(shù)據(jù)庫連接的目標(biāo)端服務(wù)器中。當(dāng)該發(fā)生變動的目標(biāo)端服務(wù)器參數(shù)加載完并進(jìn)行重啟之后,該發(fā)生變動的目標(biāo)端服務(wù)器會向源端中繼服務(wù)器進(jìn)行注冊。較佳的,目標(biāo)端服務(wù)器每次重啟后,均執(zhí)行注冊過程。具體注冊過程為:
      [0197]源端中繼服務(wù)器接收目標(biāo)端服務(wù)器發(fā)送的注冊請求,其中,注冊請求是該目標(biāo)端服務(wù)器啟動時,加載完與該目標(biāo)端服務(wù)器連接的目標(biāo)數(shù)據(jù)庫的配置參數(shù)之后發(fā)送的;源端中繼服務(wù)器向該目標(biāo)端服務(wù)器發(fā)送注冊響應(yīng),以使該目標(biāo)端服務(wù)器與源端中繼服務(wù)器建立連接。
      [0198]當(dāng)發(fā)生變動的目標(biāo)端服務(wù)器在源端中繼服務(wù)器中注冊成功之后,源端中繼服務(wù)器與該目標(biāo)端服務(wù)器即建立連接,該發(fā)生變動的目標(biāo)數(shù)據(jù)庫即可與源數(shù)據(jù)庫之間進(jìn)行數(shù)據(jù)同步。該過程中源端中繼服務(wù)器以及與該源端中繼服務(wù)器連接的其它目標(biāo)端服務(wù)器均未進(jìn)行重啟。進(jìn)而與該未進(jìn)行重啟的目標(biāo)端服務(wù)器連接的目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)同步過程也不會中斷,從而實現(xiàn)多個目標(biāo)數(shù)據(jù)庫與源數(shù)據(jù)庫之間的數(shù)據(jù)同步,且當(dāng)某個目標(biāo)數(shù)據(jù)庫發(fā)生變化時,其它目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)同步過程不受影響。
      [0199]可見,由于源端中繼服務(wù)器連接目標(biāo)端服務(wù)器,目標(biāo)端服務(wù)器連接目標(biāo)數(shù)據(jù)庫,且目標(biāo)端服務(wù)器配置有目標(biāo)數(shù)據(jù)庫的配置參數(shù),因此,當(dāng)某個目標(biāo)數(shù)據(jù)庫發(fā)生變動,如新增一個目標(biāo)數(shù)據(jù)庫時,僅需要修改該新增的目標(biāo)數(shù)據(jù)庫對應(yīng)連接的目標(biāo)端服務(wù)器中的配置參數(shù),并重啟該目標(biāo)端服務(wù)器即可,而不需要重啟源端中繼服務(wù)器,因此,其它未進(jìn)行參數(shù)配置修改的目標(biāo)端服務(wù)器不需重啟,進(jìn)而與該未進(jìn)行參數(shù)配置修改的目標(biāo)端服務(wù)器連接的目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)同步過程也不會中斷,從而實現(xiàn)多個目標(biāo)數(shù)據(jù)庫與源數(shù)據(jù)庫之間的數(shù)據(jù)同步,且當(dāng)某個目標(biāo)數(shù)據(jù)庫發(fā)生變化時,其它目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)同步過程不受影響。
      [0200]較佳的,目標(biāo)端服務(wù)器對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作,具體包括:
      [0201]目標(biāo)端服務(wù)器根據(jù)對應(yīng)連接的目標(biāo)數(shù)據(jù)庫的類型,將第一響應(yīng)消息或第三響應(yīng)消息中的第一全局標(biāo)識號之后的數(shù)據(jù)變更事件轉(zhuǎn)換為目標(biāo)數(shù)據(jù)庫的操作語言所對應(yīng)的數(shù)據(jù)變更事件,并對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作。
      [0202]較佳的,目標(biāo)端服務(wù)器對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作,具體包括:
      [0203]數(shù)據(jù)變更事件為二進(jìn)制格式;
      [0204]當(dāng)該目標(biāo)端服務(wù)器對應(yīng)連接的目標(biāo)數(shù)據(jù)庫為關(guān)系型數(shù)據(jù)庫時,目標(biāo)端服務(wù)器根據(jù)對應(yīng)連接的目標(biāo)數(shù)據(jù)庫的類型,將第一響應(yīng)消息中的第一全局標(biāo)識號之后的數(shù)據(jù)變更事件轉(zhuǎn)換為結(jié)構(gòu)化查詢語句(Structured Query Language,簡稱SQL)語句,并對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作;
      [0205]當(dāng)該目標(biāo)端服務(wù)器對應(yīng)連接的目標(biāo)數(shù)據(jù)庫為非關(guān)系型數(shù)據(jù)庫時,目標(biāo)端服務(wù)器根據(jù)對應(yīng)連接的目標(biāo)數(shù)據(jù)庫的類型,將第一響應(yīng)消息中的第一全局標(biāo)識號之后的數(shù)據(jù)變更事件轉(zhuǎn)換為軟件開發(fā)工具包(Software Development Kit,簡稱SDK)語句,并對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作。
      [0206]具體來說,目標(biāo)端服務(wù)器從源端中繼服務(wù)器或源端歷史服務(wù)器獲取數(shù)據(jù)變更事件之后,較佳的,目標(biāo)端服務(wù)器根據(jù)對應(yīng)連接的目標(biāo)數(shù)據(jù)庫的類型,將第一全局標(biāo)識號之后的數(shù)據(jù)變更事件轉(zhuǎn)換為目標(biāo)數(shù)據(jù)庫的操作語言所對應(yīng)的數(shù)據(jù)變更事件,并對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作。
      [0207]由于源端中繼服務(wù)器將實時捕獲的數(shù)據(jù)變更事件解析為數(shù)據(jù)變更事件,該數(shù)據(jù)變更事件為一中立的二進(jìn)制格式,進(jìn)而通過目標(biāo)端服務(wù)器轉(zhuǎn)換為其它多種格式,如SQL語句、SDK語句等。目標(biāo)端服務(wù)器具有格式轉(zhuǎn)換功能,當(dāng)目標(biāo)端服務(wù)器接收到該二進(jìn)制格式的數(shù)據(jù)變更事件之后,可根據(jù)目標(biāo)數(shù)據(jù)庫的類型,將第一全局標(biāo)識號之后的數(shù)據(jù)變更事件轉(zhuǎn)換為目標(biāo)數(shù)據(jù)庫的操作語言所對應(yīng)的數(shù)據(jù)變更事件,并對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作。因此,目標(biāo)數(shù)據(jù)庫與源數(shù)據(jù)庫結(jié)構(gòu)或類型不一致時,如源數(shù)據(jù)庫為關(guān)系型數(shù)據(jù)庫,目標(biāo)數(shù)據(jù)庫為非關(guān)系型數(shù)據(jù)庫時,目標(biāo)端服務(wù)器可根據(jù)目標(biāo)數(shù)據(jù)庫的類型對數(shù)據(jù)變更事件進(jìn)行轉(zhuǎn)換,從而實現(xiàn)了源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫的同步,進(jìn)而實現(xiàn)了源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫結(jié)構(gòu)類型不同時的數(shù)據(jù)同步。
      [0208]較佳的,本發(fā)明實施例的源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫之間的關(guān)系可為以下幾種:
      [0209](I)源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫之間可為同類型且同版本數(shù)據(jù)庫,如源數(shù)據(jù)庫為DB2-V9,目標(biāo)數(shù)據(jù)庫為DB2-V9 ;
      [0210](2)源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫可為同類型但不同版本數(shù)據(jù)庫,如源數(shù)據(jù)庫為DB2-V9,目標(biāo)數(shù)據(jù)庫為DB2-V10 ;
      [0211](3)源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫可為不同類型,如源數(shù)據(jù)庫為DB2,目標(biāo)數(shù)據(jù)庫為MySql ;
      [0212](4)源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫可為結(jié)構(gòu)不一致的異構(gòu)數(shù)據(jù)庫,如源數(shù)據(jù)庫為關(guān)系型數(shù)據(jù)庫DB2,而目標(biāo)數(shù)據(jù)庫為非關(guān)系型數(shù)據(jù)庫,非關(guān)系型數(shù)據(jù)庫如MongoDB、Redis等;
      [0213](5)較佳的,目標(biāo)數(shù)據(jù)庫還可為一些非數(shù)據(jù)庫形式的聯(lián)機(jī)系統(tǒng),如目標(biāo)數(shù)據(jù)庫的形式可為消息隊列、索引文件更新模塊等。
      [0214]較佳的,本發(fā)明實施例中的源數(shù)據(jù)庫為關(guān)系型數(shù)據(jù)庫,通過本發(fā)明實施例所提供的方法可實現(xiàn)異構(gòu)數(shù)據(jù)庫之間的數(shù)據(jù)同步。
      [0215]較佳的,數(shù)據(jù)變更事件為二進(jìn)制格式;當(dāng)該目標(biāo)端服務(wù)器對應(yīng)連接的目標(biāo)數(shù)據(jù)庫為關(guān)系型數(shù)據(jù)庫時,目標(biāo)端服務(wù)器根據(jù)對應(yīng)連接的目標(biāo)數(shù)據(jù)庫的類型,將第一全局標(biāo)識號之后的數(shù)據(jù)變更事件轉(zhuǎn)換為SQL語句,并對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作;
      [0216]當(dāng)該目標(biāo)端服務(wù)器對應(yīng)連接的目標(biāo)數(shù)據(jù)庫為非關(guān)系型數(shù)據(jù)庫時,目標(biāo)端服務(wù)器根據(jù)對應(yīng)連接的目標(biāo)數(shù)據(jù)庫的類型,將第一全局標(biāo)識號之后的數(shù)據(jù)變更事件轉(zhuǎn)換為SDK語句,并對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作。
      [0217]具體實施中,本發(fā)明實施例中目標(biāo)端服務(wù)器至少連接兩個目標(biāo)數(shù)據(jù)庫,源端中繼服務(wù)器也可連接多個源數(shù)據(jù)庫,本發(fā)明實施例可實現(xiàn)將多個源數(shù)據(jù)庫中的數(shù)據(jù)同步至多個目標(biāo)數(shù)據(jù)庫中。
      [0218]較佳的,配置參數(shù)包括目標(biāo)數(shù)據(jù)庫標(biāo)識號、目標(biāo)數(shù)據(jù)庫的類型;目標(biāo)端服務(wù)器至少連接兩個目標(biāo)數(shù)據(jù)庫,請求消息中還攜帶該目標(biāo)數(shù)據(jù)庫標(biāo)識號;響應(yīng)消息中還攜帶該目標(biāo)數(shù)據(jù)庫標(biāo)識號,以使目標(biāo)端服務(wù)器根據(jù)該目標(biāo)數(shù)據(jù)庫標(biāo)識號確定出該目標(biāo)數(shù)據(jù)庫,并根據(jù)該目標(biāo)數(shù)據(jù)庫的類型,將第一全局標(biāo)識號之后的數(shù)據(jù)變更事件轉(zhuǎn)換為該目標(biāo)數(shù)據(jù)庫的操作語言所對應(yīng)的數(shù)據(jù)變更事件,并對該目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作。
      [0219]具體來說,當(dāng)目標(biāo)端服務(wù)器至少連接兩個目標(biāo)數(shù)據(jù)庫時,目標(biāo)端服務(wù)器中可配置與該目標(biāo)端服務(wù)器連接的所有目標(biāo)數(shù)據(jù)庫的配置參數(shù),目標(biāo)端服務(wù)器可對應(yīng)構(gòu)造一條包含所有目標(biāo)數(shù)據(jù)庫需同步的全局標(biāo)識號的請求消息,也可分別構(gòu)造多條請求消息,其中每條請求消息中均攜帶一個目標(biāo)數(shù)據(jù)庫的標(biāo)識號,以及該目標(biāo)數(shù)據(jù)庫對應(yīng)的第一全局標(biāo)識號。
      [0220]進(jìn)一步,當(dāng)同一個目標(biāo)端服務(wù)器所連接的兩個目標(biāo)數(shù)據(jù)庫的類型或結(jié)構(gòu)不同時,目標(biāo)端服務(wù)器可分別將獲取的每個目標(biāo)數(shù)據(jù)庫所對應(yīng)的待同步的數(shù)據(jù)變更事件分別轉(zhuǎn)換為該目標(biāo)數(shù)據(jù)庫的操作語言所對應(yīng)的數(shù)據(jù)變更事件,并對每個與該目標(biāo)端服務(wù)器連接的目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作。
      [0221 ] 從上述內(nèi)容可以看出:由于源端中繼服務(wù)器根據(jù)該數(shù)據(jù)變更事件的源數(shù)據(jù)表標(biāo)識號,將數(shù)據(jù)變更事件保存至源數(shù)據(jù)表標(biāo)識號對應(yīng)的事件隊列中,如此,當(dāng)目標(biāo)數(shù)據(jù)庫儲存的數(shù)據(jù)表僅為部分源數(shù)據(jù)庫儲存的數(shù)據(jù)表時,即目標(biāo)數(shù)據(jù)庫僅需同步部分源數(shù)據(jù)庫中的數(shù)據(jù)表時,源端中繼服務(wù)器則可快速從數(shù)據(jù)表對應(yīng)的事件隊列中確定出第一全局標(biāo)識號之后的數(shù)據(jù)變更事件,并發(fā)送給目標(biāo)端服務(wù)器,以使目標(biāo)端服務(wù)器對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作,可見,由于源端中繼服務(wù)器對數(shù)據(jù)變更事件進(jìn)行了歸類,因此提高了源端中繼服務(wù)器篩選數(shù)據(jù)變更事件的效率,從而提高了目標(biāo)數(shù)據(jù)庫儲存的數(shù)據(jù)表為源數(shù)據(jù)庫儲存的全部數(shù)據(jù)表的部分?jǐn)?shù)據(jù)表時的數(shù)據(jù)同步效率。
      [0222] 綜上所述,由于目標(biāo)端服務(wù)器向源端快照服務(wù)器發(fā)送全量數(shù)據(jù)請求消息,源端快照服務(wù)器將確定出的全量數(shù)據(jù)信息發(fā)送給目標(biāo)端服務(wù)器,以使目標(biāo)端服務(wù)器根據(jù)全量數(shù)據(jù)信息獲取全量數(shù)據(jù)快照文件,并將全量數(shù)據(jù)快照文件導(dǎo)入目標(biāo)數(shù)據(jù)庫,至此,目標(biāo)數(shù)據(jù)庫的初始化過程執(zhí)行完畢,可見本發(fā)明實施例實現(xiàn)了目標(biāo)數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步過程中的初始化過程的自動化控制,從而避免了由于人工操作所造成的效率較低的問題,提高了目標(biāo)數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步過程中的初始化過程的效率,進(jìn)而提高了目標(biāo)數(shù)據(jù)庫與源數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步的效率。進(jìn)一步由于目標(biāo)數(shù)據(jù)庫執(zhí)行完初始化過程之后,目標(biāo)端服務(wù)器接著從源端服務(wù)器中獲取早于或等于全量數(shù)據(jù)快照文件的生成時間的初始化時間點之后的數(shù)據(jù)變更事件,可見,目標(biāo)數(shù)據(jù)庫在自動化執(zhí)行完初始化過程之后,自動開始數(shù)據(jù)同步過程,即本發(fā)明實施例中目標(biāo)數(shù)據(jù)庫從執(zhí)行初始化過程至后期的同步過程,實現(xiàn)了全過程的自動化控制,從而,提高了目標(biāo)數(shù)據(jù)庫與源數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步的效率。
      [0223]進(jìn)一步由于目標(biāo)端服務(wù)器連接目標(biāo)數(shù)據(jù)庫,且目標(biāo)端服務(wù)器配置有目標(biāo)數(shù)據(jù)庫的配置參數(shù),因此,當(dāng)某個目標(biāo)數(shù)據(jù)庫發(fā)生變動,如新增一個目標(biāo)數(shù)據(jù)庫時,僅需要修改該新增的目標(biāo)數(shù)據(jù)庫對應(yīng)連接的目標(biāo)端服務(wù)器中的配置參數(shù),并重啟該目標(biāo)端服務(wù)器即可,因此,其它未進(jìn)行參數(shù)配置修改的目標(biāo)端服務(wù)器不需重啟,進(jìn)而與該未進(jìn)行參數(shù)配置修改的目標(biāo)端服務(wù)器連接的目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)同步過程也不會中斷,從而實現(xiàn)多個目標(biāo)數(shù)據(jù)庫與源數(shù)據(jù)庫之間的數(shù)據(jù)同步,且當(dāng)某個目標(biāo)數(shù)據(jù)庫發(fā)生變化時,其它目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)同步過程不受影響。
      [0224]圖3示例性示出本發(fā)明實施例提供一種數(shù)據(jù)庫同步的裝置的結(jié)構(gòu)示意圖。
      [0225]基于相同構(gòu)思,本發(fā)明實施例提供一種數(shù)據(jù)庫同步的裝置,如圖3所示,包括與源數(shù)據(jù)庫300連接的源端快照服務(wù)器306,與源端快照服務(wù)器306連接的目標(biāo)端服務(wù)器302,以及與源數(shù)據(jù)庫300連接的源端服務(wù)器304,與源端服務(wù)器304連接的目標(biāo)端服務(wù)器302,與目標(biāo)端服務(wù)器302連接的目標(biāo)數(shù)據(jù)庫303。較佳的,源端服務(wù)器304包括源端中繼服務(wù)器301和源端歷史服務(wù)器305,源端中繼服務(wù)器301與源數(shù)據(jù)庫300、目標(biāo)端服務(wù)器302以及源端歷史服務(wù)器305連接,源端歷史服務(wù)器305與源端中繼服務(wù)器301、目標(biāo)端服務(wù)器302連接。較佳的,目標(biāo)端服務(wù)器302也可連接非數(shù)據(jù)庫類型的系統(tǒng)307。
      [0226]目標(biāo)端服務(wù)器,用于若與目標(biāo)端服務(wù)器連接的目標(biāo)數(shù)據(jù)庫需執(zhí)行數(shù)據(jù)同步初始化過程時,則向源端快照服務(wù)器發(fā)送全量數(shù)據(jù)請求消息;其中,全量數(shù)據(jù)請求消息攜帶至少一個需同步的源數(shù)據(jù)庫標(biāo)識號,以及源數(shù)據(jù)庫標(biāo)識號對應(yīng)的源數(shù)據(jù)表標(biāo)識號;
      [0227]目標(biāo)端服務(wù)器根據(jù)全量數(shù)據(jù)信息獲取源數(shù)據(jù)庫標(biāo)識號對應(yīng)的源數(shù)據(jù)表標(biāo)識號對應(yīng)的全量數(shù)據(jù)快照文件,并將獲取的全量數(shù)據(jù)快照文件導(dǎo)入目標(biāo)數(shù)據(jù)庫;目標(biāo)端服務(wù)器配置有目標(biāo)數(shù)據(jù)庫的配置參數(shù);
      [0228]目標(biāo)端服務(wù)器從源端服務(wù)器獲取源數(shù)據(jù)表標(biāo)識號對應(yīng)的數(shù)據(jù)表初始化時間點之后的數(shù)據(jù)變更事件,并根據(jù)數(shù)據(jù)變更事件對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作;其中,初始化時間點早于或等于源數(shù)據(jù)表標(biāo)識號對應(yīng)的全量數(shù)據(jù)快照文件的生成時間;數(shù)據(jù)變更事件是源端服務(wù)器實時捕獲源數(shù)據(jù)庫產(chǎn)生的數(shù)據(jù)變更事件得到的;
      [0229]源端快照服務(wù)器,用于接收到目標(biāo)端服務(wù)器發(fā)送的全量數(shù)據(jù)請求消息,確定源數(shù)據(jù)庫標(biāo)識號對應(yīng)的源數(shù)據(jù)表標(biāo)識號所對應(yīng)的全量數(shù)據(jù)信息,并將確定出的全量數(shù)據(jù)信息攜帶于全量數(shù)據(jù)響應(yīng)消息中發(fā)送給目標(biāo)端服務(wù)器,全量數(shù)據(jù)響應(yīng)消息還包括全量數(shù)據(jù)信息對應(yīng)的全量數(shù)據(jù)快照文件的生成時間。
      [0230]較佳的,全量數(shù)據(jù)信息為全量數(shù)據(jù)快照文件。
      [0231]較佳的,全量數(shù)據(jù)信息為全量數(shù)據(jù)快照文件的URL地址;
      [0232]目標(biāo)端服務(wù)器,具體用于:
      [0233]根據(jù)全量數(shù)據(jù)信息,從URL地址處獲取全量數(shù)據(jù)快照文件。
      [0234]較佳的,源端快照服務(wù)器,具體用于:
      [0235]以第一時長為周期,定期從源數(shù)據(jù)庫中導(dǎo)出源數(shù)據(jù)庫所有數(shù)據(jù)表的全量數(shù)據(jù)快照文件;源端快照服務(wù)器接收到全量數(shù)據(jù)請求消息,并根據(jù)源數(shù)據(jù)庫標(biāo)識號對應(yīng)的源數(shù)據(jù)表標(biāo)識號所對應(yīng)的日期最新的全量數(shù)據(jù)快照文件確定全量數(shù)據(jù)快照文件對應(yīng)的全量數(shù)據(jù)信息;或者
      [0236]源端快照服務(wù)器,具體用于:
      [0237]接收到全量數(shù)據(jù)請求消息,從源數(shù)據(jù)庫標(biāo)識號對應(yīng)的源數(shù)據(jù)庫中導(dǎo)出源數(shù)據(jù)庫標(biāo)識號對應(yīng)的源數(shù)據(jù)表標(biāo)識號對應(yīng)的數(shù)據(jù)表的全量數(shù)據(jù)快照文件,并根據(jù)全量數(shù)據(jù)快照文件確定源數(shù)據(jù)庫標(biāo)識號對應(yīng)的源數(shù)據(jù)表標(biāo)識號所對應(yīng)的全量數(shù)據(jù)信息。
      [0238]較佳的,目標(biāo)端服務(wù)器,具體用于:
      [0239]通過M個數(shù)據(jù)傳輸通道向源端快照服務(wù)器發(fā)送N條全量數(shù)據(jù)請求消息;其中,M為大于等于I的正整數(shù),M小于等于N ;每條數(shù)據(jù)傳輸通道至少承載一條全量數(shù)據(jù)請求消息;
      [0240]源端快照服務(wù)器,具體用于:
      [0241]源端快照服務(wù)器將全量數(shù)據(jù)響應(yīng)消息通過M個數(shù)據(jù)傳輸通道并行發(fā)送給目標(biāo)端服務(wù)器。
      [0242]較佳的,目標(biāo)端服務(wù)器,具體用于:
      [0243]若與目標(biāo)端服務(wù)器連接的目標(biāo)數(shù)據(jù)庫為新增的目標(biāo)數(shù)據(jù)庫,或目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)同步過程中斷時長大于第二時長時,則目標(biāo)數(shù)據(jù)庫執(zhí)行數(shù)據(jù)同步初始化過程,目標(biāo)端服務(wù)器向源端快照服務(wù)器發(fā)送全量數(shù)據(jù)請求消息。
      [0244]較佳的,源端服務(wù)器包括源端中繼服務(wù)器和源端歷史服務(wù)器;
      [0245]目標(biāo)端服務(wù)器,具體用于:
      [0246]若初始化時間點與當(dāng)前時間的時間差不小于第一中斷時長,則目標(biāo)端服務(wù)器從源端歷史服務(wù)器獲取源端歷史服務(wù)器儲存的初始化時間點之后的所有數(shù)據(jù)變更事件,并根據(jù)從源端歷史服務(wù)器獲取的數(shù)據(jù)變更事件對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作;其中,每條數(shù)據(jù)變更事件包括該數(shù)據(jù)變更事件對應(yīng)的全局標(biāo)識號;
      [0247]若初始化時間點與當(dāng)前時間的時間差小于第一中斷時長,則目標(biāo)端服務(wù)器確定出已同步的日期最新的數(shù)據(jù)變更事件的第一全局標(biāo)識號,從源端中繼服務(wù)器獲取第一全局標(biāo)識號之后的數(shù)據(jù)變更事件,并根據(jù)從源端中繼服務(wù)器獲取的數(shù)據(jù)變更事件對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作。
      [0248]較佳的,每條數(shù)據(jù)變更事件還包括該數(shù)據(jù)變更事件在源數(shù)據(jù)庫中對應(yīng)的源數(shù)據(jù)表標(biāo)識號;
      [0249]源端中繼服務(wù)器,具體用于:
      [0250]實時捕
      當(dāng)前第5頁1 2 3 4 5 6 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1