国产精品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ù)庫同步的方法和裝置的制造方法

      文檔序號(hào):8487867閱讀:491來源:國知局
      一種數(shù)據(jù)庫同步的方法和裝置的制造方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明實(shí)施例涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)庫同步的方法和裝置。
      【背景技術(shù)】
      [0002]電子商務(wù)日益深入人心,實(shí)時(shí)交易系統(tǒng)的數(shù)據(jù)量也與日俱增,然而單一數(shù)據(jù)庫的處理能力有限,因此需要基于源數(shù)據(jù)庫,按照業(yè)務(wù)或功能建立多個(gè)目標(biāo)數(shù)據(jù)庫,從而降低對源數(shù)據(jù)庫的訪問壓力。當(dāng)源數(shù)據(jù)庫中的某個(gè)數(shù)據(jù)表發(fā)生變化時(shí),需要保證關(guān)注該數(shù)據(jù)表的目標(biāo)數(shù)據(jù)庫中的該數(shù)據(jù)表與源數(shù)據(jù)庫中的該數(shù)據(jù)表發(fā)生一致的變化,因此需要一個(gè)同步裝置來實(shí)現(xiàn)目標(biāo)數(shù)據(jù)庫與源數(shù)據(jù)庫之間數(shù)據(jù)的同步。
      [0003]在新增一目標(biāo)數(shù)據(jù)庫時(shí),需要對該目標(biāo)數(shù)據(jù)庫執(zhí)行初始化過程,以便使該目標(biāo)數(shù)據(jù)庫中儲(chǔ)存有源端數(shù)據(jù)庫某一時(shí)刻的數(shù)據(jù)表內(nèi)容?,F(xiàn)有技術(shù)中通過人工操作來實(shí)現(xiàn)目標(biāo)數(shù)據(jù)庫初始化過程,具體方式為,通過人工導(dǎo)出需要的源端數(shù)據(jù)庫中某一時(shí)刻的數(shù)據(jù)表,接著人工將該導(dǎo)出數(shù)據(jù)表導(dǎo)入至該新增目標(biāo)數(shù)據(jù)庫中。
      [0004]上述方案中,當(dāng)新增目標(biāo)數(shù)據(jù)庫數(shù)量較多,且需同步的數(shù)據(jù)表內(nèi)容較多時(shí),工作量負(fù)荷較大,且人工操作的效率較低。
      [0005]綜上所述,亟需一種數(shù)據(jù)庫同步的方法和裝置,用于提高目標(biāo)數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步過程中的初始化過程的效率。

      【發(fā)明內(nèi)容】

      [0006]本發(fā)明實(shí)施例提供一種數(shù)據(jù)庫同步的方法和裝置,用于提高目標(biāo)數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步過程中的初始化過程的效率。
      [0007]本發(fā)明實(shí)施例提供一種數(shù)據(jù)庫同步的方法,包括以下步驟:
      [0008]若目標(biāo)數(shù)據(jù)庫需執(zhí)行數(shù)據(jù)同步初始化過程時(shí),則與目標(biāo)數(shù)據(jù)庫連接的目標(biāo)端服務(wù)器向源端快照服務(wù)器發(fā)送全量數(shù)據(jù)請求消息;其中,全量數(shù)據(jù)請求消息攜帶至少一個(gè)需同步的源數(shù)據(jù)庫標(biāo)識(shí)號(hào),以及源數(shù)據(jù)庫標(biāo)識(shí)號(hào)對應(yīng)的源數(shù)據(jù)表標(biāo)識(shí)號(hào);
      [0009]源端快照服務(wù)器接收到全量數(shù)據(jù)請求消息,確定源數(shù)據(jù)庫標(biāo)識(shí)號(hào)對應(yīng)的源數(shù)據(jù)表標(biāo)識(shí)號(hà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ù)快照文件的生成時(shí)間;
      [0010]目標(biāo)端服務(wù)器根據(jù)全量數(shù)據(jù)信息獲取源數(shù)據(jù)庫標(biāo)識(shí)號(hào)對應(yīng)的源數(shù)據(jù)表標(biāo)識(shí)號(hào)對應(yīng)的全量數(shù)據(jù)快照文件,并將獲取的全量數(shù)據(jù)快照文件導(dǎo)入目標(biāo)數(shù)據(jù)庫;目標(biāo)端服務(wù)器配置有目標(biāo)數(shù)據(jù)庫的配置參數(shù);
      [0011]目標(biāo)端服務(wù)器從源端服務(wù)器獲取源數(shù)據(jù)表標(biāo)識(shí)號(hào)對應(yīng)的數(shù)據(jù)表初始化時(shí)間點(diǎn)之后的數(shù)據(jù)變更事件,并根據(jù)數(shù)據(jù)變更事件對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作;其中,初始化時(shí)間點(diǎn)早于或等于源數(shù)據(jù)表標(biāo)識(shí)號(hào)對應(yīng)的全量數(shù)據(jù)快照文件的生成時(shí)間;數(shù)據(jù)變更事件是源端服務(wù)器實(shí)時(shí)捕獲源數(shù)據(jù)庫產(chǎn)生的數(shù)據(jù)變更事件得到的。
      [0012]本發(fā)明實(shí)施例提供一種數(shù)據(jù)庫同步的裝置,包括與源數(shù)據(jù)庫連接的源端快照服務(wù)器,與源端快照服務(wù)器連接的目標(biāo)端服務(wù)器,與目標(biāo)端服務(wù)器連接的目標(biāo)數(shù)據(jù)庫,目標(biāo)端服務(wù)器包括:
      [0013]目標(biāo)端服務(wù)器,用于若與目標(biāo)端服務(wù)器連接的目標(biāo)數(shù)據(jù)庫需執(zhí)行數(shù)據(jù)同步初始化過程時(shí),則向源端快照服務(wù)器發(fā)送全量數(shù)據(jù)請求消息;其中,全量數(shù)據(jù)請求消息攜帶至少一個(gè)需同步的源數(shù)據(jù)庫標(biāo)識(shí)號(hào),以及源數(shù)據(jù)庫標(biāo)識(shí)號(hào)對應(yīng)的源數(shù)據(jù)表標(biāo)識(shí)號(hào);
      [0014]目標(biāo)端服務(wù)器根據(jù)全量數(shù)據(jù)信息獲取源數(shù)據(jù)庫標(biāo)識(shí)號(hào)對應(yīng)的源數(shù)據(jù)表標(biāo)識(shí)號(hào)對應(yīng)的全量數(shù)據(jù)快照文件,并將獲取的全量數(shù)據(jù)快照文件導(dǎo)入目標(biāo)數(shù)據(jù)庫;目標(biāo)端服務(wù)器配置有目標(biāo)數(shù)據(jù)庫的配置參數(shù);
      [0015]目標(biāo)端服務(wù)器從源端服務(wù)器獲取源數(shù)據(jù)表標(biāo)識(shí)號(hào)對應(yīng)的數(shù)據(jù)表初始化時(shí)間點(diǎn)之后的數(shù)據(jù)變更事件,并根據(jù)數(shù)據(jù)變更事件對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作;其中,初始化時(shí)間點(diǎn)早于或等于源數(shù)據(jù)表標(biāo)識(shí)號(hào)對應(yīng)的全量數(shù)據(jù)快照文件的生成時(shí)間;數(shù)據(jù)變更事件是源端服務(wù)器實(shí)時(shí)捕獲源數(shù)據(jù)庫產(chǎn)生的數(shù)據(jù)變更事件得到的;
      [0016]源端快照服務(wù)器,用于接收到目標(biāo)端服務(wù)器發(fā)送的全量數(shù)據(jù)請求消息,確定源數(shù)據(jù)庫標(biāo)識(shí)號(hào)對應(yīng)的源數(shù)據(jù)表標(biāo)識(shí)號(hà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ù)快照文件的生成時(shí)間。
      [0017]本發(fā)明實(shí)施例中,目標(biāo)端服務(wù)器執(zhí)行初始化過程,向源端快照服務(wù)器發(fā)送全量數(shù)據(jù)請求消息,全量數(shù)據(jù)請求消息中至少攜帶一個(gè)需同步的源數(shù)據(jù)庫標(biāo)識(shí)號(hào),以及所述源數(shù)據(jù)庫標(biāo)識(shí)號(hào)對應(yīng)的源數(shù)據(jù)表標(biāo)識(shí)號(hào);源端快照服務(wù)器根據(jù)全量數(shù)據(jù)請求消息,確定出源數(shù)據(jù)表標(biāo)識(shí)號(hào)對應(yīng)的全量數(shù)據(jù)信息,并向目標(biāo)端服務(wù)器發(fā)送全量數(shù)據(jù)信息;目標(biāo)端服務(wù)器根據(jù)所述全量數(shù)據(jù)信息獲取源數(shù)據(jù)表標(biāo)識(shí)號(hào)對應(yīng)的全量數(shù)據(jù)快照文件,并將全量數(shù)據(jù)快照文件導(dǎo)入目標(biāo)數(shù)據(jù)庫,之后目標(biāo)端服務(wù)器從源端服務(wù)器獲取初始化時(shí)間點(diǎn)之后的數(shù)據(jù)變更事件,并根據(jù)數(shù)據(jù)變更事件對目標(biāo)數(shù)據(jù)庫執(zhí)行同步操作;所述初始化時(shí)間點(diǎn)早于或等于所述源數(shù)據(jù)表標(biāo)識(shí)號(hào)對應(yīng)的全量數(shù)據(jù)快照文件的生成時(shí)間。
      [0018]由于目標(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ā)明實(shí)施例實(shí)現(xiàn)了目標(biāo)數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步過程中的初始化過程的自動(dòng)化控制,從而避免了由于人工操作所造成的效率較低的問題,提高了目標(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í)間的初始化時(shí)間點(diǎn)之后的數(shù)據(jù)變更事件,可見,目標(biāo)數(shù)據(jù)庫在自動(dòng)化執(zhí)行完初始化過程之后,自動(dòng)開始數(shù)據(jù)同步過程,即本發(fā)明實(shí)施例中目標(biāo)數(shù)據(jù)庫從執(zhí)行初始化過程至后期的同步過程,實(shí)現(xiàn)了全過程的自動(dòng)化控制,從而,提高了目標(biāo)數(shù)據(jù)庫與源數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步的效率。
      [0019]進(jìn)一步由于目標(biāo)端服務(wù)器連接目標(biāo)數(shù)據(jù)庫,且目標(biāo)端服務(wù)器配置有目標(biāo)數(shù)據(jù)庫的配置參數(shù),因此,當(dāng)某個(gè)目標(biāo)數(shù)據(jù)庫發(fā)生變動(dòng),如新增一個(gè)目標(biāo)數(shù)據(jù)庫時(shí),僅需要修改該新增的目標(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ù)同步過程也不會(huì)中斷,從而實(shí)現(xiàn)多個(gè)目標(biāo)數(shù)據(jù)庫與源數(shù)據(jù)庫之間的數(shù)據(jù)同步,且當(dāng)某個(gè)目標(biāo)數(shù)據(jù)庫發(fā)生變化時(shí),其它目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)同步過程不受影響。
      【附圖說明】
      [0020]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      [0021]圖1a為本發(fā)明實(shí)施例提供的方法或裝置適用的系統(tǒng)架構(gòu)示意圖;
      [0022]圖1b為本發(fā)明實(shí)施例提供的方法或裝置適用的系統(tǒng)架構(gòu)示意圖;
      [0023]圖1c為本發(fā)明實(shí)施例所提供的方法或裝置適用的系統(tǒng)架構(gòu)示意圖;
      [0024]圖2為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)庫同步的方法流程示意圖;
      [0025]圖3為本發(fā)明實(shí)施例還提供一種數(shù)據(jù)庫同步的裝置的結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      [0026]為了使本發(fā)明的目的、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
      [0027]本發(fā)明的實(shí)施例所應(yīng)用的場景有多種,為更好的理解本方案,此處僅示例性列舉以下幾種:
      [0028]場景一:源數(shù)據(jù)庫為一個(gè),目標(biāo)數(shù)據(jù)庫為多個(gè),該源數(shù)據(jù)庫為“寫庫”,支持相關(guān)寫操作的事務(wù)處理,目標(biāo)數(shù)據(jù)庫為“讀庫”,支持業(yè)務(wù)查詢、數(shù)據(jù)分析等查詢操作。實(shí)際應(yīng)用中,需保證該為“寫庫”的源數(shù)據(jù)庫內(nèi)容與多個(gè)為“讀庫”的目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)內(nèi)容一致,并需保證目標(biāo)數(shù)據(jù)庫的內(nèi)容和源數(shù)據(jù)庫內(nèi)容同步的及時(shí)性和正確性,此時(shí),即可通過本發(fā)明實(shí)施例所提供的方法或裝置實(shí)現(xiàn)。
      [0029]場景二:源數(shù)據(jù)庫為多個(gè),目標(biāo)數(shù)據(jù)庫為一個(gè),該多個(gè)源數(shù)據(jù)庫為“寫庫”,且多個(gè)源數(shù)據(jù)庫中儲(chǔ)存的數(shù)據(jù)表均為“訂單表”,此時(shí),可將一部分用戶的交易寫到某個(gè)源數(shù)據(jù)庫的“訂單表”中,而將另一部分用戶的交易寫入到另一個(gè)源數(shù)據(jù)庫的“訂單表”中,此時(shí),BP多個(gè)源數(shù)據(jù)庫中存儲(chǔ)同一個(gè)數(shù)據(jù)表“訂單表”,而不同源數(shù)據(jù)庫中儲(chǔ)存的數(shù)據(jù)內(nèi)容不同。目標(biāo)數(shù)據(jù)庫為“讀庫”。實(shí)際應(yīng)用中需實(shí)現(xiàn)將多個(gè)源數(shù)據(jù)庫中的“訂單表”的不同數(shù)據(jù)內(nèi)容整合至一個(gè)目標(biāo)數(shù)據(jù)庫中,以便于通過該目標(biāo)數(shù)據(jù)庫可讀取所有“訂單表”的數(shù)據(jù)內(nèi)容,此時(shí),即可通過本發(fā)明實(shí)施例所提供的方法或裝置實(shí)現(xiàn)。
      [0030]較佳的,場景二中,也可設(shè)置多個(gè)目標(biāo)數(shù)據(jù)庫,分別將多個(gè)源數(shù)據(jù)庫中的“訂單表”同步至多個(gè)目標(biāo)數(shù)據(jù)庫中,以減少單個(gè)目標(biāo)數(shù)據(jù)庫的查詢負(fù)荷量。
      [0031]場景三:源數(shù)據(jù)庫為多個(gè),目標(biāo)數(shù)據(jù)庫為多個(gè),該多個(gè)源數(shù)據(jù)庫為“寫庫”,且多個(gè)源數(shù)據(jù)庫中儲(chǔ)存的數(shù)據(jù)表均為同一個(gè)數(shù)據(jù)表,例如“訂單表”,多個(gè)源數(shù)據(jù)庫中存儲(chǔ)同一個(gè)數(shù)據(jù)表“訂單表”,而不同源數(shù)據(jù)庫中儲(chǔ)存的數(shù)據(jù)內(nèi)容不同。具體可為,源數(shù)據(jù)庫按商戶維度來區(qū)分,商戶一的訂單表信息通過一個(gè)源數(shù)據(jù)庫儲(chǔ)存,而商戶二的訂單表信息通過另一個(gè)源數(shù)據(jù)庫儲(chǔ)存。多個(gè)目標(biāo)數(shù)據(jù)庫均為“讀庫”。實(shí)際應(yīng)用中可將以商戶為維度區(qū)分的多個(gè)源數(shù)據(jù)庫中的“訂單表”的不同數(shù)據(jù)內(nèi)容整合至以時(shí)間為維度的多個(gè)目標(biāo)數(shù)據(jù)庫中,即,可將一月份的所有商戶的訂單表整合至一個(gè)目標(biāo)數(shù)據(jù)庫中,將二月份的所有商戶的訂單表整合至另一個(gè)目標(biāo)數(shù)據(jù)庫中,以便于通過該目標(biāo)數(shù)據(jù)庫可讀取所有“訂單表”的數(shù)據(jù)內(nèi)容,此時(shí),即可通過本發(fā)明實(shí)施例所提供的方法或裝置實(shí)現(xiàn)。
      [0032]場景四:本發(fā)明實(shí)施例中的至少一個(gè)目標(biāo)數(shù)據(jù)庫儲(chǔ)存單個(gè)源數(shù)據(jù)庫儲(chǔ)存的全部數(shù)據(jù)表中的部分?jǐn)?shù)據(jù)表。該單個(gè)目標(biāo)數(shù)據(jù)庫中也可儲(chǔ)存有多個(gè)源數(shù)據(jù)庫中每個(gè)源數(shù)據(jù)庫中儲(chǔ)存的部分?jǐn)?shù)據(jù)表。舉個(gè)例子,源數(shù)據(jù)庫一中儲(chǔ)存有數(shù)據(jù)表“一月份統(tǒng)計(jì)表、二月份統(tǒng)計(jì)表”,源數(shù)據(jù)庫二中儲(chǔ)存有數(shù)據(jù)表“三月份統(tǒng)計(jì)表、四月份統(tǒng)計(jì)表”,目標(biāo)數(shù)據(jù)庫中可僅存儲(chǔ)源數(shù)據(jù)庫一中的數(shù)據(jù)表“一月份統(tǒng)計(jì)表”,也可僅存儲(chǔ)有源數(shù)據(jù)庫一中的“一月份統(tǒng)計(jì)表”和源數(shù)據(jù)庫二中的“三月份統(tǒng)計(jì)表”。
      [0033]場景五:新增一目標(biāo)數(shù)據(jù)庫,或某個(gè)目標(biāo)數(shù)據(jù)庫在數(shù)據(jù)同步過程中中斷了,而中斷時(shí)間點(diǎn)相距當(dāng)前時(shí)間點(diǎn)較遠(yuǎn),此時(shí)需要對該目標(biāo)數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步的初始化過程的設(shè)置,即需要使該目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)表內(nèi)容與源數(shù)據(jù)庫的某一時(shí)刻的數(shù)據(jù)表內(nèi)容保持一致。
      [0034]場景六:目標(biāo)數(shù)據(jù)庫在數(shù)據(jù)同步過程中中斷了,而中斷時(shí)間點(diǎn)相距當(dāng)前時(shí)間點(diǎn)較遠(yuǎn),此時(shí)需要使該目標(biāo)數(shù)據(jù)庫從中斷狀態(tài)恢復(fù)至正常數(shù)據(jù)同步的工作狀態(tài)。
      [0035]圖1a示例性示出了一種本發(fā)明實(shí)施例提供的方法或裝置適用的系統(tǒng)架構(gòu)示意圖;圖1b示例性示出了一種本發(fā)明實(shí)施例提供的方法或裝置適用的系統(tǒng)架構(gòu)示意圖;圖1c示例性示出了一種本發(fā)明實(shí)施例所提供的方法或裝置適用的系統(tǒng)架構(gòu)示意圖。
      [0036]如圖la、圖lb、圖1c所示,本發(fā)明實(shí)施例所提供的方法或裝置適用的系統(tǒng)架構(gòu)中可包括多個(gè)源數(shù)據(jù)庫101、與源數(shù)據(jù)庫101連接的源端服務(wù)器107,較佳的,源端服務(wù)器107包括源端中繼服務(wù)器102和源端歷史服務(wù)器105。源端中繼服務(wù)器102與源數(shù)據(jù)庫101連接、源端中繼服務(wù)器102與目標(biāo)端服務(wù)器103連接、目標(biāo)端服務(wù)器103連接的多個(gè)目標(biāo)數(shù)據(jù)庫104。較佳的,本發(fā)明實(shí)施例中目標(biāo)端服務(wù)器103也可連接非數(shù)據(jù)庫類型的系統(tǒng)108,如聯(lián)機(jī)系統(tǒng)、或文檔類需獲取源數(shù)據(jù)庫中的數(shù)據(jù)內(nèi)容的文件均可。
      [0037]較佳的,本發(fā)明實(shí)施例所提供的方法或裝置適用的系統(tǒng)架構(gòu)還包括與源端中繼服務(wù)器102連接的源端歷史服務(wù)器105、源端歷史服務(wù)器105與目標(biāo)端服務(wù)器103連接、與源數(shù)據(jù)庫101連接的源端快照服務(wù)器106、源端快照服務(wù)器106與目標(biāo)端服務(wù)器103連接,較佳的,源端服務(wù)器107包括源端中繼服務(wù)器102和源端歷史服務(wù)器105。
      [0038]本發(fā)明實(shí)施例用于實(shí)現(xiàn)目標(biāo)數(shù)據(jù)庫在數(shù)據(jù)同步之前的初始化過程,以及源數(shù)據(jù)庫101與目標(biāo)數(shù)據(jù)庫104之間的數(shù)據(jù)同步。較佳的,本發(fā)明實(shí)施例中為了保證目標(biāo)數(shù)據(jù)庫與源數(shù)據(jù)庫的常規(guī)數(shù)據(jù)同步操作的效率較高,將源端中繼服務(wù)器設(shè)置為非持久化保存數(shù)據(jù)變更事件的服務(wù)器,將源端歷史服務(wù)器設(shè)置為可持久化保存數(shù)據(jù)變更事件的服務(wù)器。源端中繼服務(wù)器將捕獲的數(shù)據(jù)變更事件緩存至內(nèi)存中,常規(guī)數(shù)據(jù)同步操作中,目標(biāo)數(shù)據(jù)庫通過目標(biāo)端服務(wù)器從源端中繼服務(wù)器中獲取數(shù)據(jù)變更事件,由于源端中繼服務(wù)器將數(shù)據(jù)變更事件緩存至內(nèi)存中,因此通過源端中繼服務(wù)器寫入或讀出數(shù)據(jù)變更事件的效率也較高。但是由于內(nèi)存的空間有限,僅能存儲(chǔ)最新的少量的數(shù)據(jù)變更事件,時(shí)間較遠(yuǎn)的數(shù)據(jù)變更事件在源端中繼服務(wù)器中可能會(huì)被丟棄,因此,較佳的,提供一源端歷史服務(wù)器,通過該源端歷史服務(wù)器定期從源端中繼服務(wù)器中獲取數(shù)據(jù)變更事件,再持久化保持至源端歷史服務(wù)器中,即保持至源端歷史服務(wù)器的硬盤或磁盤中,此時(shí)一旦目標(biāo)數(shù)據(jù)庫需同步的數(shù)據(jù)變更事件不在源端中繼服務(wù)器中時(shí),目標(biāo)數(shù)據(jù)庫可從源端歷史服務(wù)器中獲取時(shí)間較遠(yuǎn)的數(shù)據(jù)變更事件。
      [0039]本發(fā)明實(shí)施例中當(dāng)新增一個(gè)目標(biāo)數(shù)據(jù)庫時(shí),該目標(biāo)數(shù)據(jù)庫通過本發(fā)明實(shí)施例中的源端快照服務(wù)器和目標(biāo)端服務(wù)器自動(dòng)實(shí)現(xiàn)初始化過程,同時(shí),目標(biāo)端服務(wù)器獲得目標(biāo)數(shù)據(jù)庫執(zhí)行初始化過程中的全量數(shù)據(jù)快照文件的生成時(shí)間,該目標(biāo)端服務(wù)器依據(jù)該生成時(shí)間從源端服務(wù)器中接著獲取后續(xù)數(shù)據(jù)變更事件,從而實(shí)現(xiàn)與源數(shù)據(jù)庫之間的同步。
      [0040]具體來說,與該目標(biāo)數(shù)據(jù)庫連接的目標(biāo)端服務(wù)器經(jīng)判斷,確定當(dāng)前全量數(shù)據(jù)快照文件的生成時(shí)間對應(yīng)的數(shù)據(jù)變更事件不在源端中繼服務(wù)器時(shí),則從源端歷史服務(wù)器中獲取初始化時(shí)間點(diǎn)至當(dāng)前時(shí)間點(diǎn)內(nèi)的數(shù)據(jù)變更事件,所述初始化時(shí)間點(diǎn)早于或等于所述源數(shù)據(jù)表標(biāo)識(shí)號(hào)對應(yīng)的全量數(shù)據(jù)快照文件的生成時(shí)間,并在獲取到數(shù)據(jù)變更事件之后對目標(biāo)數(shù)據(jù)庫執(zhí)行數(shù)據(jù)同步操作;之后,目標(biāo)端服務(wù)器接著去源端歷史服務(wù)器中獲取上次同步操作執(zhí)行完成后,最新的已同步的日期最新的數(shù)據(jù)變更事件之后的數(shù)據(jù)變更事件,并再次執(zhí)行數(shù)據(jù)同步操作,直至目標(biāo)端服務(wù)器判斷出目標(biāo)數(shù)據(jù)庫中已同步的日期最新的數(shù)據(jù)變更事件的生成時(shí)間與當(dāng)前時(shí)間的時(shí)間差小于第一中斷時(shí)長時(shí),目標(biāo)數(shù)據(jù)端服務(wù)器則從源端中繼服務(wù)器中獲取目標(biāo)數(shù)據(jù)庫中已同步的日期最新的數(shù)據(jù)變更事件之后的數(shù)據(jù)變更事件。
      [0041]較佳的,在目標(biāo)數(shù)據(jù)庫與源端數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步的常規(guī)過程中,若目標(biāo)數(shù)據(jù)庫因某種原因,如目標(biāo)數(shù)據(jù)庫故障,或與該目標(biāo)數(shù)據(jù)庫連接的目標(biāo)端服務(wù)器發(fā)生故障,因而目標(biāo)數(shù)據(jù)庫中斷了一斷時(shí)間,若目標(biāo)端服務(wù)器經(jīng)判斷,目標(biāo)數(shù)據(jù)庫中已同步的日期最新的數(shù)據(jù)變更事件的生成時(shí)間與當(dāng)前時(shí)間不小于第一中斷時(shí)長時(shí),則目標(biāo)端服務(wù)器先從源端歷史服務(wù)器中獲取已同步的日期最新的數(shù)據(jù)變更事件之后的數(shù)據(jù)變更事件;直至目標(biāo)端服務(wù)器判斷出目標(biāo)數(shù)據(jù)庫中已同步的日期最新的數(shù)據(jù)變更事件的生成時(shí)間與當(dāng)前時(shí)間的時(shí)間差小于第一中斷時(shí)長時(shí),目標(biāo)數(shù)據(jù)端服務(wù)器則從源端中繼服務(wù)器中獲取目標(biāo)數(shù)據(jù)庫中已同步的日期最新的數(shù)據(jù)變更事件之后的數(shù)據(jù)變更事件。
      [0042]較佳的,在目標(biāo)數(shù)據(jù)庫與源端數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步的常規(guī)過程中,若目標(biāo)數(shù)據(jù)庫因某種原因,中斷了一斷時(shí)間,若目標(biāo)端數(shù)據(jù)庫經(jīng)判斷,目標(biāo)數(shù)據(jù)庫中已同步的日期最新的數(shù)據(jù)變更事件的生成時(shí)間與當(dāng)前時(shí)間不小于第二時(shí)長時(shí),則目標(biāo)端服務(wù)器先從源端快照服務(wù)器中獲取全量數(shù)據(jù)快照文件,接著從源端歷史服務(wù)器或源端中繼服務(wù)器中獲取全量數(shù)據(jù)快照文件的生成時(shí)間或生成時(shí)間之前的某一時(shí)間之后的數(shù)據(jù)變更事件。
      [0043]從上述過程中可看出,本發(fā)明實(shí)施例中,若新增一目標(biāo)數(shù)據(jù)庫,則目標(biāo)端服務(wù)器自動(dòng)從源端快照服務(wù)器中獲取全量快照文件,并將其導(dǎo)入目標(biāo)數(shù)據(jù)庫中,從而自動(dòng)實(shí)現(xiàn)初始化過程;接著,經(jīng)判斷,可自動(dòng)從源端歷史服務(wù)器或源端中繼服務(wù)器獲取后續(xù)數(shù)據(jù)變更事件,以便實(shí)現(xiàn)數(shù)據(jù)同步的自動(dòng)化;且進(jìn)一步在數(shù)據(jù)同步操作過程中若出現(xiàn)中斷,則目標(biāo)端服務(wù)器也可自動(dòng)從源端歷史服務(wù)器或源端中繼服務(wù)器獲取中斷后的數(shù)據(jù)變更事件,整個(gè)過程不需人工操作,提高了數(shù)據(jù)同步效率。
      [0044]較佳的,本發(fā)明實(shí)施例中源端服務(wù)器可連接一個(gè)源數(shù)據(jù)庫,也可連接多個(gè)源數(shù)據(jù)庫,多個(gè)源數(shù)據(jù)庫中可存儲(chǔ)同一個(gè)數(shù)據(jù)表中的不同數(shù)據(jù)內(nèi)容。較佳的,源端服務(wù)器可連接一個(gè)目標(biāo)端服務(wù)器,也可連接多個(gè)目標(biāo)端服務(wù)器,每個(gè)目標(biāo)端服務(wù)器可連接多個(gè)目標(biāo)數(shù)據(jù)庫,也可每個(gè)目標(biāo)端服務(wù)器僅連接一個(gè)目標(biāo)數(shù)據(jù)庫。
      [0045]較佳的,本發(fā)明實(shí)施例中的源端服務(wù)器包括源端中繼服務(wù)器和源端歷史服務(wù)器,因此,具體來說,本發(fā)明實(shí)施例中源端中繼服務(wù)器可連接一個(gè)源數(shù)據(jù)庫,也可連接多個(gè)源數(shù)據(jù)庫。較佳的,源端中繼服務(wù)器可連接一個(gè)目標(biāo)端服務(wù)器,也可連接多個(gè)目標(biāo)端服務(wù)器。較佳的,本發(fā)明實(shí)施例中的源端歷史服務(wù)器,可連接一個(gè)源端中繼服務(wù)器,也可連接多個(gè)源端中繼服務(wù)器。
      [0046]較佳的,本發(fā)明實(shí)施例中源端快照服務(wù)器可連接一個(gè)源數(shù)據(jù)庫,也可連接多個(gè)源數(shù)據(jù)庫。較佳的,源端快照服務(wù)器可連接一個(gè)目標(biāo)端服務(wù)器,也可連接多個(gè)目標(biāo)端服務(wù)器。
      [0047]較佳的,本發(fā)明實(shí)施例中的針對相同的源數(shù)據(jù)庫連接的源端中繼服務(wù)器也可布置多個(gè),一方面提高系統(tǒng)的可用性,避免單個(gè)源端中繼服務(wù)器出現(xiàn)故障時(shí),整個(gè)系統(tǒng)不可用的現(xiàn)象;另一方面,提高系統(tǒng)的擴(kuò)
      當(dāng)前第1頁1 2 3 4 5 6 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1