国产精品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ù)遷移方法、代理節(jié)點(diǎn)及數(shù)據(jù)庫實(shí)例的制作方法

      文檔序號:10687195閱讀:400來源:國知局
      數(shù)據(jù)遷移方法、代理節(jié)點(diǎn)及數(shù)據(jù)庫實(shí)例的制作方法
      【專利摘要】本發(fā)明實(shí)施例公開了一種數(shù)據(jù)遷移方法、代理節(jié)點(diǎn)及數(shù)據(jù)庫實(shí)例。所述數(shù)據(jù)遷移方法包括:向源數(shù)據(jù)庫實(shí)例發(fā)送同步命令;接收所述源數(shù)據(jù)庫實(shí)例發(fā)送的備份數(shù)據(jù);根據(jù)對所述備份數(shù)據(jù)的解析,將所述備份數(shù)據(jù)發(fā)送至所述目標(biāo)數(shù)據(jù)庫實(shí)例。本發(fā)明實(shí)施例提供的數(shù)據(jù)遷移方法、代理節(jié)點(diǎn)及數(shù)據(jù)庫實(shí)例實(shí)現(xiàn)了對Redis集群上數(shù)據(jù)的在線遷移。
      【專利說明】
      數(shù)據(jù)遷移方法、代理節(jié)點(diǎn)及數(shù)據(jù)庫實(shí)例
      技術(shù)領(lǐng)域
      [0001]本發(fā)明實(shí)施例涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)迀移方法、代理服務(wù)器及數(shù)據(jù)庫服務(wù)器。
      【背景技術(shù)】
      [0002]NoSQL數(shù)據(jù)庫是Not Only SQL的簡稱,即不僅僅是SQL,是對SQL應(yīng)用不足的一種補(bǔ)充,中文翻譯過來也稱為非關(guān)系型數(shù)據(jù)庫。它是一類通常強(qiáng)調(diào)非關(guān)系型、分布式、開源和并行性的數(shù)據(jù)庫。NoSQL數(shù)據(jù)存儲無固定的表結(jié)構(gòu),通常也不存在連接操作關(guān)系,因此在針對大數(shù)據(jù)量的數(shù)據(jù)時具有高讀寫性能、易擴(kuò)展、高可用的優(yōu)勢,并且還有多樣靈活的數(shù)據(jù)結(jié)構(gòu)可供根據(jù)實(shí)際需求進(jìn)行選擇。
      [0003]Redis(Remote Dict1nary Server)是用C語言實(shí)現(xiàn)的一種高性能的key-value類型的內(nèi)存持久性數(shù)據(jù)庫。Redis定位于一個內(nèi)存數(shù)據(jù)庫。為了保證讀寫效率,Redis的數(shù)據(jù)都保存在內(nèi)存中,但是Redis會周期性的吧更新的數(shù)據(jù)寫入磁盤或把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了master-slave同步。因?yàn)槭羌儍?nèi)存操作,Redis的性能非常出色,每秒可以處理超10萬次讀寫操作,是已知性能最快的Key-Value數(shù)據(jù)庫。
      [0004]Twemproxy是一個輕量級的Redi s代理,主要用來減少對后端緩存服務(wù)器的連接數(shù)。由Twitter開源出來的緩存服務(wù)器集群管理工具,主要用來彌補(bǔ)Redis集群管理的不足。
      [0005]在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)上述技術(shù)至少存在以下問題:在應(yīng)用Twemproxy執(zhí)行對Redis的代理的過程中,由于分片策略在集群創(chuàng)建時已經(jīng)確定,無法實(shí)現(xiàn)Redis實(shí)例的動態(tài)添加和刪除。一旦用戶需要將正在提供服務(wù)的Redis實(shí)例上的數(shù)據(jù)進(jìn)行迀移,需要將整個Redis集群下線,進(jìn)行線下的數(shù)據(jù)迀移。這明顯有悖于Redis集群高可用、高并發(fā)的設(shè)計初衷。

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

      [0006]針對上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)迀移方法、代理節(jié)點(diǎn)及數(shù)據(jù)庫實(shí)例,以實(shí)現(xiàn)數(shù)據(jù)庫集群的在線迀移。
      [0007]第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)迀移方法,應(yīng)用于代理節(jié)點(diǎn),所述方法包括:
      [0008]向源數(shù)據(jù)庫實(shí)例發(fā)送同步命令;
      [0009]接收所述源數(shù)據(jù)庫實(shí)例發(fā)送的備份數(shù)據(jù);
      [0010]根據(jù)對所述備份數(shù)據(jù)的解析,將所述備份數(shù)據(jù)發(fā)送至所述目標(biāo)數(shù)據(jù)庫實(shí)例。
      [0011]第二方面,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)迀移方法,應(yīng)用于源數(shù)據(jù)庫實(shí)例,所述方法包括:
      [0012I接收代理節(jié)點(diǎn)發(fā)送的同步命令;
      [0013]根據(jù)所述同步命令向所述代理節(jié)點(diǎn)發(fā)送備份數(shù)據(jù)。
      [0014]第三方面,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)迀移方法,應(yīng)用于目標(biāo)數(shù)據(jù)庫實(shí)例,所述方法包括:
      [0015]接收所述代理節(jié)點(diǎn)發(fā)送的備份數(shù)據(jù);
      [0016]存儲所述備份數(shù)據(jù);
      [0017]基于存儲的所述備份數(shù)據(jù)向客戶節(jié)點(diǎn)提供數(shù)據(jù)訪問服務(wù)。
      [0018]第四方面,本發(fā)明實(shí)施例還提供了一種代理節(jié)點(diǎn),所述代理節(jié)點(diǎn)包括:
      [0019]命令轉(zhuǎn)發(fā)模塊,用于向源數(shù)據(jù)庫實(shí)例發(fā)送同步命令;
      [0020]備份接收模塊,用于接收所述源數(shù)據(jù)庫實(shí)例發(fā)送的備份數(shù)據(jù);
      [0021 ]備份轉(zhuǎn)發(fā)模塊,用于根據(jù)對所述備份數(shù)據(jù)的解析,將所述備份數(shù)據(jù)發(fā)送至所述目標(biāo)數(shù)據(jù)庫實(shí)例。
      [0022]第五方面,本發(fā)明實(shí)施例還提供了一種源數(shù)據(jù)庫實(shí)例,所述源數(shù)據(jù)庫實(shí)例包括:
      [0023]命令接收模塊,用于接收代理節(jié)點(diǎn)發(fā)送的同步命令;
      [0024]備份發(fā)送模塊,用于根據(jù)所述同步命令向所述代理節(jié)點(diǎn)發(fā)送備份數(shù)據(jù)。
      [0025]第六方面,本發(fā)明實(shí)施例還提供了一種目標(biāo)數(shù)據(jù)庫實(shí)例,所述目標(biāo)數(shù)據(jù)庫實(shí)例包括:
      [0026]備份數(shù)據(jù)接收模塊,用于接收所述代理節(jié)點(diǎn)發(fā)送的備份數(shù)據(jù);
      [0027]備份存儲模塊,用于存儲所述備份數(shù)據(jù);
      [0028]服務(wù)重啟模塊,用于基于存儲的所述備份數(shù)據(jù)向客戶節(jié)點(diǎn)提供數(shù)據(jù)訪問服務(wù)。
      [0029]本發(fā)明實(shí)施例提供的數(shù)據(jù)迀移方法、代理節(jié)點(diǎn)及數(shù)據(jù)庫實(shí)例,通過向源數(shù)據(jù)庫實(shí)例發(fā)送同步命令,接收所述源數(shù)據(jù)庫實(shí)例發(fā)送的備份數(shù)據(jù),根據(jù)對所述備份數(shù)據(jù)的解析,將所述備份數(shù)據(jù)發(fā)送至所述目標(biāo)數(shù)據(jù)庫實(shí)例,從而實(shí)現(xiàn)了對Redis集群的在線數(shù)據(jù)迀移。
      【附圖說明】
      [0030]通過閱讀參照以下附圖所作的對非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會變得更明顯:
      [0031 ]圖1是本發(fā)明提供的數(shù)據(jù)迀移方法的應(yīng)用網(wǎng)絡(luò)的拓?fù)鋱D;
      [0032]圖2是本發(fā)明第一實(shí)施例提供的數(shù)據(jù)迀移方法的流程圖;
      [0033]圖3是本發(fā)明第二實(shí)施例提供的數(shù)據(jù)迀移方法中備份轉(zhuǎn)發(fā)的流程圖;
      [0034]圖4是本發(fā)明第三實(shí)施例提供的數(shù)據(jù)迀移方法的流程圖;
      [0035]圖5是本發(fā)明第三實(shí)施例提供的數(shù)據(jù)迀移方法中客戶的訪問請求處理的流程圖;
      [0036]圖6是本發(fā)明第四實(shí)施例提供的數(shù)據(jù)迀移方法的流程圖;
      [0037]圖7是本發(fā)明第五實(shí)施例提供的代理節(jié)點(diǎn)的結(jié)構(gòu)圖;
      [0038]圖8是本發(fā)明第六實(shí)施例提供的源數(shù)據(jù)庫實(shí)例的結(jié)構(gòu)圖;
      [0039]圖9是本發(fā)明第七實(shí)施例提供的目標(biāo)數(shù)據(jù)庫實(shí)例的結(jié)構(gòu)圖。
      【具體實(shí)施方式】
      [0040]下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)說明。可以理解的是,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
      [0041]圖1示出了本發(fā)明提供的數(shù)據(jù)迀移方法所應(yīng)用的網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。參見圖1,所述網(wǎng)絡(luò)包括:用戶側(cè)的客戶節(jié)點(diǎn)11,網(wǎng)絡(luò)側(cè)的源服務(wù)集群13及目標(biāo)服務(wù)集群15。所述源服務(wù)集群13由多個源數(shù)據(jù)庫實(shí)例131組成,是執(zhí)行數(shù)據(jù)迀移之前對客戶節(jié)點(diǎn)11提供數(shù)據(jù)服務(wù)的集群。所述目標(biāo)服務(wù)集群15由多個目標(biāo)數(shù)據(jù)庫實(shí)例151組成,是執(zhí)行數(shù)據(jù)迀移之后對客戶節(jié)點(diǎn)11提供數(shù)據(jù)服務(wù)的集群。所述源服務(wù)集群13通過客戶代理節(jié)點(diǎn)12與用于測的客戶節(jié)點(diǎn)11連接。并且,所述源服務(wù)集群13與所述目標(biāo)服務(wù)集群15通過代理節(jié)點(diǎn)14連接。
      [0042]具體的,在圖1示出的拓?fù)浣Y(jié)構(gòu)中,所述源數(shù)據(jù)實(shí)例131及所述目標(biāo)數(shù)據(jù)庫實(shí)例151都是Redis實(shí)例。所述客戶代理節(jié)點(diǎn)12及所述代理節(jié)點(diǎn)14都是twemproxy節(jié)點(diǎn)。
      [0043]第一實(shí)施例
      [0044]本實(shí)施例提供了數(shù)據(jù)迀移方法的一種技術(shù)方案。在該技術(shù)方案中,所述數(shù)據(jù)迀移方法由數(shù)據(jù)迀移裝置執(zhí)行,并且,所述數(shù)據(jù)迀移裝置集成在圖1示出的代理節(jié)點(diǎn)中。更進(jìn)一步的,所述代理節(jié)點(diǎn)是twemproxy節(jié)點(diǎn)。
      [0045]參見圖2,所述數(shù)據(jù)迀移方法包括:
      [0046]S21,向源數(shù)據(jù)庫實(shí)例發(fā)送同步命令。
      [0047]所述同步命令又被稱為SYNC命令,是在數(shù)據(jù)迀移的開始階段,由數(shù)據(jù)迀移的目標(biāo)數(shù)據(jù)庫實(shí)例發(fā)送給源數(shù)據(jù)庫實(shí)例的命令。由于所述代理節(jié)點(diǎn)與所述源數(shù)據(jù)庫實(shí)例相連接,所述同步命令是由所述代理節(jié)點(diǎn)接收并轉(zhuǎn)發(fā)至所述源數(shù)據(jù)庫實(shí)例的。
      [0048]具體的,所述代理節(jié)點(diǎn)根據(jù)所述原數(shù)據(jù)庫實(shí)例的地址將所述同步命令轉(zhuǎn)發(fā)給所述源服務(wù)集群中的源數(shù)據(jù)庫實(shí)例,以啟動對源服務(wù)集群的數(shù)據(jù)迀移。
      [0049]S22,接收所述源數(shù)據(jù)庫實(shí)例發(fā)送的備份數(shù)據(jù)。
      [0050]所述源數(shù)據(jù)庫實(shí)例在接收到由所述代理節(jié)點(diǎn)發(fā)起的同步命令之后,會向所述目標(biāo)數(shù)據(jù)庫實(shí)例發(fā)送備份數(shù)據(jù)。由于所述代理節(jié)點(diǎn)是源服務(wù)集群與目標(biāo)服務(wù)集群之間的唯一中繼節(jié)點(diǎn),所以所述代理節(jié)點(diǎn)需要對上述備份數(shù)據(jù)進(jìn)行接收。
      [0051 ]具體的,所述備份數(shù)據(jù)是所述源數(shù)據(jù)庫實(shí)例存儲的RDB文件。
      [0052]S23,根據(jù)對所述備份數(shù)據(jù)的解析,將所述備份數(shù)據(jù)發(fā)送至所述目標(biāo)數(shù)據(jù)庫實(shí)例。
      [0053]在接收到所述備份數(shù)據(jù),也就是所述RDB文件之后,所述代理節(jié)點(diǎn)對所述RDB文件進(jìn)行解析。更為具體的,所述代理節(jié)點(diǎn)根據(jù)所述RDB文件記錄中的鍵(Key),對所述RDB文件進(jìn)行分片(Sharding),以完成所述RDB文件的解析。
      [0054]對所述RDB文件的解析完成之后,將所述RDB文件數(shù)據(jù)傳輸至所述目標(biāo)數(shù)據(jù)庫實(shí)例。所述目標(biāo)數(shù)據(jù)庫實(shí)例完成所述RDB文件數(shù)據(jù)的存儲之后,所述目標(biāo)服務(wù)集群上存儲的數(shù)據(jù)即與所述源服務(wù)集群上存儲的數(shù)據(jù)完全一致。此時,即完成了對Redis集群上全部數(shù)據(jù)的在線迀移。
      [0055]需要特別說明的是,同步命令發(fā)送后,源數(shù)據(jù)庫實(shí)例會對當(dāng)前內(nèi)存中的數(shù)據(jù)進(jìn)行全量備份,并存儲至RDB文件,同步過程中RDB文件將不再修改,同步過程及以后所有對于源數(shù)據(jù)庫實(shí)例的修改操作都會以命令的形式發(fā)給本代理節(jié)點(diǎn),代理節(jié)點(diǎn)會將命令中的key提取,并轉(zhuǎn)發(fā)到下游目標(biāo)數(shù)據(jù)庫實(shí)例。
      [0056]在完成了上述數(shù)據(jù)迀移過程之后,只需要對客戶代理節(jié)點(diǎn)上twemproxy的配置,將用戶的訪問請求指向目標(biāo)服務(wù)集群中的目標(biāo)數(shù)據(jù)庫實(shí)例,并重啟所述客戶代理節(jié)點(diǎn),就完成了對Redis服務(wù)集群的數(shù)據(jù)迀移。
      [0057]本實(shí)施例通過向源數(shù)據(jù)庫實(shí)例轉(zhuǎn)發(fā)由目標(biāo)數(shù)據(jù)庫實(shí)例發(fā)起的同步命令,接收所述源數(shù)據(jù)庫實(shí)例發(fā)送的備份數(shù)據(jù),以及根據(jù)對所述備份數(shù)據(jù)的解析,將所述備份數(shù)據(jù)發(fā)送至所述目標(biāo)數(shù)據(jù)庫實(shí)例,實(shí)現(xiàn)了對Redis集群數(shù)據(jù)的在線迀移。
      [0058]第二實(shí)施例
      [0059]本實(shí)施例以本發(fā)明第一實(shí)施例為基礎(chǔ),進(jìn)一步的提供了所述數(shù)據(jù)迀移方法中備份轉(zhuǎn)發(fā)的一種技術(shù)方案。在該技術(shù)方案中,根據(jù)對所述備份數(shù)據(jù)的解析,將所述備份數(shù)據(jù)發(fā)送至所述目標(biāo)數(shù)據(jù)庫實(shí)例包括:根據(jù)所述RDB備份文件數(shù)據(jù)中的鍵,對所述RDB備份文件數(shù)據(jù)進(jìn)行分片;將所述RDB備份文件數(shù)據(jù)的分片數(shù)據(jù)傳輸至其對應(yīng)的目標(biāo)數(shù)據(jù)庫實(shí)例。
      [0060]參見圖3,根據(jù)對所述備份數(shù)據(jù)的解析,將所述備份數(shù)據(jù)發(fā)送至所述目標(biāo)數(shù)據(jù)庫實(shí)例包括:
      [0061 ] S31,根據(jù)所述RDB備份文件數(shù)據(jù)中的鍵,對所述RDB備份文件數(shù)據(jù)進(jìn)行分片。
      [0062]所述RDB備份文件中每條記錄都對應(yīng)有該條記錄的鍵。在執(zhí)行的所述RDB備份文件的解析時,獲取上述記錄中的鍵的取值,并根據(jù)所述鍵的取值對所述RDB備份文件數(shù)據(jù)進(jìn)行分片。
      [0063]具體的,所述分片操作可以是哈希分片操作。更為具體的,所述哈希分片操作包括:一致性哈希分片操作,或者取模哈希分片操作。
      [0064]S32,將所述RDB備份文件數(shù)據(jù)的分片數(shù)據(jù)傳輸至其對應(yīng)的目標(biāo)數(shù)據(jù)庫實(shí)例。
      [0065]完成對所述RDB備份文件的分片之后,將各個分片內(nèi)的數(shù)據(jù)傳輸至其對應(yīng)的目標(biāo)數(shù)據(jù)庫實(shí)例。例如,可以將第一分片傳輸至第一目標(biāo)數(shù)據(jù)庫實(shí)例,將第二分片傳輸至第二目標(biāo)數(shù)據(jù)庫實(shí)例,以此類推。
      [0066]對所述RDB備份文件進(jìn)行分片,并將分片后的數(shù)據(jù)按照次序存儲于目標(biāo)服務(wù)集群中不同的目標(biāo)數(shù)據(jù)庫實(shí)例上的優(yōu)點(diǎn)在于,使得完成數(shù)據(jù)迀移之后,目標(biāo)服務(wù)集群上存儲的數(shù)據(jù)更為有序,對其上存儲的數(shù)據(jù)執(zhí)行管理更為容易。
      [0067]本實(shí)施例通過根據(jù)所述RDB備份文件數(shù)據(jù)中的鍵,對所述RDB備份文件數(shù)據(jù)進(jìn)行分片,以及將所述RDB備份文件數(shù)據(jù)的分片數(shù)據(jù)傳輸至其對應(yīng)的目標(biāo)數(shù)據(jù)庫實(shí)例,實(shí)現(xiàn)了對所述備份數(shù)據(jù)的解析及傳輸。
      [0068]第三實(shí)施例
      [0069]本實(shí)施例提供了數(shù)據(jù)迀移方法的一種技術(shù)方案。在該技術(shù)方案中,所述數(shù)據(jù)迀移方法由數(shù)據(jù)迀移裝置執(zhí)行,并且,所述數(shù)據(jù)迀移裝置集成在圖1示出的源數(shù)據(jù)庫實(shí)例中。
      [0070 ]參見圖4,所述數(shù)據(jù)迀移方法包括:
      [0071]S41,接收代理節(jié)點(diǎn)發(fā)送的同步命令。
      [0072]在數(shù)據(jù)迀移過程開始時,為了啟動所述數(shù)據(jù)迀移,數(shù)據(jù)迀移中的代理節(jié)點(diǎn)會向源數(shù)據(jù)庫實(shí)例發(fā)送同步命令。此時,所述源數(shù)據(jù)庫實(shí)例接收所述同步命令。
      [0073]S42,根據(jù)所述同步命令存儲所述備份數(shù)據(jù)。
      [0074]在接收到對端的目標(biāo)數(shù)據(jù)庫實(shí)例發(fā)送的同步命令之后,所述源數(shù)據(jù)庫實(shí)例首先需要對自身的數(shù)據(jù)進(jìn)行備份,也就是存儲所述備份數(shù)據(jù)。優(yōu)選的,所述備份數(shù)據(jù)是RDB備份文件數(shù)據(jù)。本發(fā)明中不采用AOF備份的備份數(shù)據(jù)存儲方式。
      [0075]對所述RDB備份文件數(shù)據(jù)的存儲過程類似于Redis實(shí)例接收到用戶輸入的BGSAVE命令后的處理過程,也就是將數(shù)據(jù)庫實(shí)例中存儲的數(shù)據(jù)以RDB文件的形式進(jìn)行備份存儲。
      [0076]S43,根據(jù)所述同步命令向所述代理節(jié)點(diǎn)發(fā)送備份數(shù)據(jù)。
      [0077]完成對所述RDB備份文件數(shù)據(jù)的存儲之后,所述源數(shù)據(jù)庫實(shí)例通過所述代理節(jié)點(diǎn)向所述目標(biāo)數(shù)據(jù)庫實(shí)例發(fā)送所述RDB備份文件數(shù)據(jù)。在上述的備份數(shù)據(jù)發(fā)送過程中,所述代理節(jié)點(diǎn)是上述發(fā)送數(shù)據(jù)的中繼,承擔(dān)了將所述發(fā)送數(shù)據(jù)轉(zhuǎn)發(fā)至其目的地,也就是所述目標(biāo)數(shù)據(jù)庫實(shí)例的任務(wù)。
      [0078]需要說明的是,在上述接收命令、存儲數(shù)據(jù)及發(fā)送數(shù)據(jù)的同時,所述源數(shù)據(jù)庫實(shí)例能夠正常的接收和處理來自客戶節(jié)點(diǎn)的數(shù)據(jù)訪問請求。所述數(shù)據(jù)訪問請求可以是對所述源數(shù)據(jù)庫實(shí)例中存儲的數(shù)據(jù)的查詢請求、添加請求,或者其他類型的請求。
      [0079]具體的,圖5示出了對客戶請求的處理過程。參見圖5,客戶的訪問請求處理流程包括:
      [0080]S51,接收客戶代理節(jié)點(diǎn)轉(zhuǎn)發(fā)的由客戶節(jié)點(diǎn)發(fā)起的訪問請求。
      [0081 ] S52,根據(jù)所述訪問請求進(jìn)行數(shù)據(jù)處理。
      [0082]S53,根據(jù)所述數(shù)據(jù)處理的處理結(jié)果,向所述客戶節(jié)點(diǎn)發(fā)送訪問反饋。
      [0083]本實(shí)施例通過接收代理節(jié)點(diǎn)發(fā)送的同步命令,根據(jù)所述同步命令存儲所述備份數(shù)據(jù),以及根據(jù)所述同步命令項(xiàng)所述代理節(jié)點(diǎn)發(fā)送備份數(shù)據(jù),實(shí)現(xiàn)了對Redis集群數(shù)據(jù)的在線迀移。
      [0084]第四實(shí)施例
      [0085]本實(shí)施例提供了數(shù)據(jù)迀移方法的一種技術(shù)方案。在該技術(shù)方案中,所述數(shù)據(jù)迀移方法由數(shù)據(jù)迀移裝置執(zhí)行,并且,所述數(shù)據(jù)迀移裝置集成在圖1示出的目標(biāo)數(shù)據(jù)庫實(shí)例中。
      [0086]參見圖6,所述數(shù)據(jù)迀移方法包括:
      [0087]S61,接收所述代理節(jié)點(diǎn)發(fā)送的備份數(shù)據(jù)。
      [0088]所述源數(shù)據(jù)庫實(shí)例接收到所述同步命令之后,會將自身存儲的數(shù)據(jù)存儲為備份數(shù)據(jù),并將上述備份數(shù)據(jù)發(fā)送至所述目標(biāo)數(shù)據(jù)庫實(shí)例。并且,上述備份數(shù)據(jù)是通過所述代理節(jié)點(diǎn)的中繼以后發(fā)送至所述目標(biāo)數(shù)據(jù)庫實(shí)例的。
      [0089]還需要說明的是,所述目標(biāo)數(shù)據(jù)庫實(shí)例接收到的所述備份數(shù)據(jù)是經(jīng)過所述代理節(jié)點(diǎn)分片以后的RDB備份文件數(shù)據(jù)。而且,所述分片可以是哈希分片。進(jìn)一步的,所述哈希分片包括一致性哈希分片,或者取模哈希分片。
      [0090]S62,存儲所述備份數(shù)據(jù)。
      [0091]由于所述備份數(shù)據(jù)是經(jīng)過分片處理以后的備份數(shù)據(jù),并且所述目標(biāo)數(shù)據(jù)庫實(shí)例以目標(biāo)服務(wù)集群的形式存在,所以上述備份數(shù)據(jù)存儲的過程對于具體的一個目標(biāo)數(shù)據(jù)庫實(shí)例來講,僅是存儲全部備份數(shù)據(jù)中的一部分分片數(shù)據(jù)。
      [0092]S63,基于存儲的所述備份數(shù)據(jù)向客戶節(jié)點(diǎn)提供數(shù)據(jù)訪問服務(wù)。
      [0093]完成了對于備份數(shù)據(jù)的存儲之后,所述目標(biāo)服務(wù)集群中的目標(biāo)數(shù)據(jù)庫實(shí)例即可依據(jù)自身存儲的備份數(shù)據(jù),對客戶節(jié)點(diǎn)提供數(shù)據(jù)訪問服務(wù)。
      [0094]本實(shí)施例通過向所述代理節(jié)點(diǎn)發(fā)送目的為源數(shù)據(jù)庫實(shí)例的同步命令,接收所述代理節(jié)點(diǎn)發(fā)送的備份數(shù)據(jù),存儲所述備份數(shù)據(jù),以及基于存儲的所述備份數(shù)據(jù)向客戶節(jié)點(diǎn)提供數(shù)據(jù)訪問服務(wù),實(shí)現(xiàn)了對Redi s集群數(shù)據(jù)的在線迀移。
      [0095]第五實(shí)施例
      [0096]本實(shí)施例提供了代理節(jié)點(diǎn)的一種技術(shù)方案。參見圖7,所述代理節(jié)點(diǎn)包括:命令轉(zhuǎn)發(fā)模塊71、備份接收模塊72以及備份轉(zhuǎn)發(fā)模塊73。
      [0097]所述命令轉(zhuǎn)發(fā)模塊71用于向源數(shù)據(jù)庫實(shí)例發(fā)送同步命令。
      [0098]所述備份接收模塊72用于接收所述源數(shù)據(jù)庫實(shí)例發(fā)送的備份數(shù)據(jù)。
      [0099]所述備份轉(zhuǎn)發(fā)模塊73用于根據(jù)對所述備份數(shù)據(jù)的解析,將所述備份數(shù)據(jù)發(fā)送至所述目標(biāo)數(shù)據(jù)庫實(shí)例。
      [0100]可選的,所述備份數(shù)據(jù)為RDB備份文件數(shù)據(jù)。
      [0101]可選的,所述備份轉(zhuǎn)發(fā)模塊73包括:分片單元及分片傳輸單元。
      [0102]所述分片單元用于根據(jù)所述RDB備份文件數(shù)據(jù)中的鍵,對所述RDB備份文件數(shù)據(jù)進(jìn)行分片。
      [0103]所述分片傳輸單元用于將所述RDB備份文件數(shù)據(jù)的分片數(shù)據(jù)傳輸至其對應(yīng)的目標(biāo)數(shù)據(jù)庫實(shí)例。
      [0104]可選的,所述分片包括:哈希分片。
      [0105]第六實(shí)施例
      [0106]本實(shí)施例提供了源數(shù)據(jù)庫實(shí)例的一種技術(shù)方案。參見圖8,所述源數(shù)據(jù)庫實(shí)例包括:命令接收模塊81及備份發(fā)送模塊83。
      [0107]所述命令接收模塊81用于接收代理節(jié)點(diǎn)發(fā)送的同步命令。
      [0108]所述備份發(fā)送模塊83用于根據(jù)所述同步命令向所述代理節(jié)點(diǎn)發(fā)送備份數(shù)據(jù)。
      [0109]可選的,所述源數(shù)據(jù)庫實(shí)例還包括:備份模塊82。
      [0110]所述備份模塊82用于在根據(jù)所述同步命令向所述代理節(jié)點(diǎn)發(fā)送備份數(shù)據(jù)之前,根據(jù)所述同步命令存儲所述備份數(shù)據(jù)。
      [0111]可選的,所述源數(shù)據(jù)庫實(shí)例還包括:請求接收模塊84、請求處理模塊85及請求反饋模塊86。
      [0112]所述請求接收模塊84用于接收客戶代理節(jié)點(diǎn)轉(zhuǎn)發(fā)的由客戶節(jié)點(diǎn)發(fā)起的訪問請求。
      [0113]所述請求處理模塊85用于根據(jù)所述訪問請求進(jìn)行數(shù)據(jù)處理。
      [0114]所述請求反饋模塊86用于根據(jù)所述數(shù)據(jù)處理的處理結(jié)果,向所述客戶節(jié)點(diǎn)發(fā)送訪問反饋。
      [0115]可選的,所述源數(shù)據(jù)庫實(shí)例為Redis實(shí)例。
      [0116]第七實(shí)施例
      [0117]本實(shí)施例提供了目標(biāo)數(shù)據(jù)庫實(shí)例的一種技術(shù)方案,參見圖9,所述目標(biāo)數(shù)據(jù)庫實(shí)例包括:備份數(shù)據(jù)接收模塊91、備份存儲模塊92及服務(wù)重啟模塊93。
      [0118]所述備份數(shù)據(jù)接收模塊91用于接收所述代理節(jié)點(diǎn)發(fā)送的備份數(shù)據(jù)。
      [0119]所述備份存儲模塊92用于存儲所述備份數(shù)據(jù)。
      [0120]所述服務(wù)重啟模塊93用于基于存儲的所述備份數(shù)據(jù)向客戶節(jié)點(diǎn)提供數(shù)據(jù)訪問服務(wù)。
      [0121]可選的,所述備份數(shù)據(jù)是由所述代理節(jié)點(diǎn)分片后的RDB備份文件數(shù)據(jù)。
      [0122]可選的,所述目標(biāo)數(shù)據(jù)庫實(shí)例為Redis實(shí)例。
      [0123]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并不用于限制本發(fā)明,對于本領(lǐng)域技術(shù)人員而言,本發(fā)明可以有各種改動和變化。凡在本發(fā)明的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      【主權(quán)項(xiàng)】
      1.一種數(shù)據(jù)迀移方法,應(yīng)用于代理節(jié)點(diǎn),其特征在于,包括: 向源數(shù)據(jù)庫實(shí)例發(fā)送同步命令; 接收所述源數(shù)據(jù)庫實(shí)例發(fā)送的備份數(shù)據(jù); 根據(jù)對所述備份數(shù)據(jù)的解析,將所述備份數(shù)據(jù)發(fā)送至所述目標(biāo)數(shù)據(jù)庫實(shí)例。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述備份數(shù)據(jù)為RDB備份文件數(shù)據(jù)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)對所述備份數(shù)據(jù)的解析,將所述備份數(shù)據(jù)發(fā)送至所述目標(biāo)數(shù)據(jù)庫實(shí)例包括: 根據(jù)所述RDB備份文件數(shù)據(jù)中的鍵,對所述RDB備份文件數(shù)據(jù)進(jìn)行分片; 將所述RDB備份文件數(shù)據(jù)的分片數(shù)據(jù)傳輸至其對應(yīng)的目標(biāo)數(shù)據(jù)庫實(shí)例。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述分片包括:哈希分片。5.一種數(shù)據(jù)迀移方法,應(yīng)用于源數(shù)據(jù)庫實(shí)例,其特征在于,包括: 接收代理節(jié)點(diǎn)發(fā)送的同步命令; 根據(jù)所述同步命令向所述代理節(jié)點(diǎn)發(fā)送備份數(shù)據(jù)。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,還包括: 在根據(jù)所述同步命令向所述代理節(jié)點(diǎn)發(fā)送備份數(shù)據(jù)之前,根據(jù)所述同步命令存儲所述備份數(shù)據(jù)。7.根據(jù)權(quán)利要求5所述的方法,其特征在于,還包括: 接收客戶代理節(jié)點(diǎn)轉(zhuǎn)發(fā)的由客戶節(jié)點(diǎn)發(fā)起的訪問請求; 根據(jù)所述訪問請求進(jìn)行數(shù)據(jù)處理; 根據(jù)所述數(shù)據(jù)處理的處理結(jié)果,向所述客戶節(jié)點(diǎn)發(fā)送訪問反饋。8.根據(jù)權(quán)利要求5至7任一所述的方法,其特征在于,所述源數(shù)據(jù)庫實(shí)例為Redis實(shí)例。9.一種數(shù)據(jù)迀移方法,應(yīng)用于目標(biāo)數(shù)據(jù)庫實(shí)例,其特征在于,包括: 接收所述代理節(jié)點(diǎn)發(fā)送的備份數(shù)據(jù); 存儲所述備份數(shù)據(jù); 基于存儲的所述備份數(shù)據(jù)向客戶節(jié)點(diǎn)提供數(shù)據(jù)訪問服務(wù)。10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述備份數(shù)據(jù)是由所述代理節(jié)點(diǎn)分片后的RDB備份文件數(shù)據(jù)。11.根據(jù)權(quán)利要求9或10所述的方法,其特征在于,所述目標(biāo)數(shù)據(jù)庫實(shí)例為Redis實(shí)例。12.一種代理節(jié)點(diǎn),其特征在于,包括: 命令轉(zhuǎn)發(fā)模塊,用于向源數(shù)據(jù)庫實(shí)例發(fā)送同步命令; 備份接收模塊,用于接收所述源數(shù)據(jù)庫實(shí)例發(fā)送的備份數(shù)據(jù); 備份轉(zhuǎn)發(fā)模塊,用于根據(jù)對所述備份數(shù)據(jù)的解析,將所述備份數(shù)據(jù)發(fā)送至所述目標(biāo)數(shù)據(jù)庫實(shí)例。13.一種源數(shù)據(jù)庫實(shí)例,其特征在于,包括: 命令接收模塊,用于接收代理節(jié)點(diǎn)發(fā)送的同步命令; 備份發(fā)送模塊,用于根據(jù)所述同步命令向所述代理節(jié)點(diǎn)發(fā)送備份數(shù)據(jù)。14.一種目標(biāo)數(shù)據(jù)庫實(shí)例,其特征在于,包括: 備份數(shù)據(jù)接收模塊,用于接收所述代理節(jié)點(diǎn)發(fā)送的備份數(shù)據(jù); 備份存儲模塊,用于存儲所述備份數(shù)據(jù);服務(wù)重啟模塊,用于基于存儲的所述備份數(shù)據(jù)向客戶節(jié)點(diǎn)提供數(shù)據(jù)訪問服務(wù)。
      【文檔編號】G06F17/30GK106055698SQ201610416714
      【公開日】2016年10月26日
      【申請日】2016年6月14日
      【發(fā)明人】陳鵬
      【申請人】智者四海(北京)技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1