一種數(shù)據(jù)遷移的系統(tǒng)和數(shù)據(jù)遷移的方法
【專利摘要】本申請?zhí)峁┮环N數(shù)據(jù)遷移的系統(tǒng)及數(shù)據(jù)遷移的方法,用于在分布式數(shù)據(jù)庫的主集群與備集群之間進(jìn)行數(shù)據(jù)遷移,該系統(tǒng)包括:主集群以及一個(gè)或多個(gè)備集群;其中,所述主集群包括一個(gè)或多個(gè)服務(wù)器,每個(gè)服務(wù)器具有區(qū)域管理單元,每個(gè)區(qū)域管理單元生成至少一個(gè)與要遷移數(shù)據(jù)相關(guān)的日志文件;并且其中,在所述主集群或備集群中的一個(gè)或多個(gè)服務(wù)器上配置有一個(gè)或多個(gè)遷移單元;所述一個(gè)或多個(gè)遷移單元,用于通過解析與所述要遷移數(shù)據(jù)相關(guān)的日志文件從而將所述要遷移數(shù)據(jù)寫入指定的備集群中。采用本申請的技術(shù)方案,能夠減少主集群的性能壓力,不僅可以支持持續(xù)的數(shù)據(jù)遷移,還可以支持指定時(shí)間段的數(shù)據(jù)遷移,解決了指定時(shí)間段的數(shù)據(jù)補(bǔ)齊。
【專利說明】一種數(shù)據(jù)遷移的系統(tǒng)和數(shù)據(jù)遷移的方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及分布式數(shù)據(jù)庫領(lǐng)域,尤其涉及一種數(shù)據(jù)遷移的系統(tǒng)和數(shù)據(jù)遷移的方法。
【背景技術(shù)】
[0002]HBase是分布式數(shù)據(jù)庫,一般包括對外提供讀寫服務(wù)的主(Master)集群和主集群的備(Slave)集群,當(dāng)主集群出現(xiàn)問題時(shí),一般需要切換到備集群,由備集群對外提供讀寫服務(wù),主集群需要將數(shù)據(jù)拷貝(復(fù)制)到備集群中。假設(shè)有兩個(gè)集群:M集群和S集群,其中,M是主集群,S是備集群。開啟了主集群M到備集群S的復(fù)制(replicat1n)。當(dāng)M集群由于某種原因無法提供服務(wù)時(shí),會將所有讀寫請求切換到S集群上??紤]兩個(gè)場景:其一,M集群中的有一部分?jǐn)?shù)據(jù)還沒有來得及拷貝到S集群中去,那么切換到S集群之后,這部分?jǐn)?shù)據(jù)不一致,也就導(dǎo)致了這部分?jǐn)?shù)據(jù)的不可用性。其二,當(dāng)M集群恢復(fù)正常后,將所有讀寫請求切換回M集群時(shí),有部分?jǐn)?shù)據(jù)在S集群中存在而在M集群中不存在,這部分?jǐn)?shù)據(jù)不一致,也會導(dǎo)致這部分?jǐn)?shù)據(jù)的不可用性。并且,在以上兩個(gè)場景中,還需要考慮:現(xiàn)有方案的復(fù)制(replicat1n)功能是部署在M集群,而M集群是對外提供讀寫服務(wù)的主集群,這會影響主集群的讀寫性能。另外,如何實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)對賬,S卩,在數(shù)據(jù)的同步過程中怎么保證數(shù)據(jù)同步過去了,怎么確認(rèn)主、備集群中的數(shù)據(jù)是否一致?現(xiàn)有的集群間數(shù)據(jù)遷移中,并沒有能夠確認(rèn)主、備集群之間數(shù)據(jù)數(shù)據(jù)是否一致方案。
[0003]目前為止還沒有一種能夠解決以上場景出現(xiàn)時(shí)產(chǎn)生的問題,以提高集群可用性的方案。
[0004]例如,現(xiàn)有的HBase系統(tǒng),一般通過解析日志文件(Hlog)來將主集群中的數(shù)據(jù)異步地寫入備集群,每一臺主集群的機(jī)器上都有一個(gè)區(qū)域管理單元(例如,Reg1nServer,簡稱RS),負(fù)責(zé)處理用戶的讀寫請求,每一個(gè)區(qū)域管理單元對應(yīng)一個(gè)日志文件(Hlog),Hlog存放在Hadoop分布式文件系統(tǒng)(HDFS)中。HBase會將新生成的Hlog加入到相應(yīng)區(qū)域管理單元的Zooke^er路徑下,同時(shí)每個(gè)區(qū)域管理單元所生成的Hlog都有一個(gè)復(fù)制(replicat1n)線程來解析,并將解析出的數(shù)據(jù)寫入指定的Slave集群中,并且記錄已經(jīng)處理的Hlog的偏移(offset)位置。當(dāng)處理完某個(gè)Hlog之后,會在Zookeeper上刪除相應(yīng)的Hlog節(jié)點(diǎn)。當(dāng)某個(gè)區(qū)域管理單元宕機(jī)后,會有其他的區(qū)域管理單元來接著處理相應(yīng)的Hlog,主要是通過爭搶一個(gè)鎖(lock)節(jié)點(diǎn)來獲得處理這個(gè)宕機(jī)的區(qū)域管理單元的Hlog的機(jī)會,然后將宕機(jī)的區(qū)域管理單元路徑下的Hlog復(fù)制到自己的路徑下,并將宕機(jī)的區(qū)域管理單元的路徑刪除。
[0005]現(xiàn)有的HBase集群,將主集群中數(shù)據(jù)復(fù)制(implicat1n)到備集群的過程有以下缺點(diǎn):1、只支持從主集群Push (主動(dòng)將數(shù)據(jù)復(fù)制到)數(shù)據(jù)到備集群(推模式),這就決定復(fù)制的過程需要在主集群上進(jìn)行,因此,會影響主集群的性能。2、只支持持續(xù)的數(shù)據(jù)遷移這種模式,不支持指定時(shí)間段的數(shù)據(jù)遷移模式,因此,無法滿足指定時(shí)間段的數(shù)據(jù)的補(bǔ)齊,當(dāng)主集群由于某種原因無法提供服務(wù),例如,出現(xiàn)機(jī)房斷電等情況時(shí),若主集群的部分?jǐn)?shù)據(jù)還沒有來得及寫入備集群,會造成備集群的部分?jǐn)?shù)據(jù)不可用。3、區(qū)域管理單元宕機(jī)是通過Zookeeper (分布式管理協(xié)調(diào)系統(tǒng))事件通知的,所有區(qū)域管理單元得到事件通知后都來爭搶宕機(jī)的區(qū)域管理單元的鎖,這個(gè)過程中并沒有自動(dòng)均衡機(jī)制,可能會造成一個(gè)區(qū)域管理單元處理很多宕機(jī)的區(qū)域管理單元的Hlog。4、數(shù)據(jù)遷移的過程中,無法確認(rèn)數(shù)據(jù)是否同步過去了,無法確認(rèn)兩個(gè)集群數(shù)據(jù)是否一致,也就是沒有實(shí)現(xiàn)對賬功能。
[0006]針對目前的將主集群的數(shù)據(jù)復(fù)制到備集群的過程,需要能夠保證主備切換過程中數(shù)據(jù)的可用性和一致性以及支持指定時(shí)間段的數(shù)據(jù)的補(bǔ)齊的方案。
【發(fā)明內(nèi)容】
[0007]本申請的主要目的在于提供一種數(shù)據(jù)遷移的系統(tǒng)及數(shù)據(jù)遷移的方法,以解決現(xiàn)有技術(shù)存在的主集群切換到備集群過程中數(shù)據(jù)的可用性和一致性問題,其中:
[0008]本申請?zhí)峁┑囊环N數(shù)據(jù)遷移的系統(tǒng),用于在分布式數(shù)據(jù)庫的主集群與備集群之間進(jìn)行數(shù)據(jù)遷移,該系統(tǒng)包括:主集群以及一個(gè)或多個(gè)備集群;其中,所述主集群包括一個(gè)或多個(gè)服務(wù)器,每個(gè)服務(wù)器具有區(qū)域管理單元,每個(gè)區(qū)域管理單元生成至少一個(gè)與要遷移數(shù)據(jù)相關(guān)的日志文件;所述日志文件包括:所述要遷移數(shù)據(jù)的內(nèi)容、所述要遷移數(shù)據(jù)寫入所述主集群的時(shí)間信息;并且其中,在所述主集群或備集群中的一個(gè)或多個(gè)服務(wù)器上配置有一個(gè)或多個(gè)遷移單元;所述一個(gè)或多個(gè)遷移單元,用于通過解析與所述要遷移數(shù)據(jù)相關(guān)的日志文件從而將所述要遷移數(shù)據(jù)寫入指定的備集群中。
[0009]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,所述一個(gè)或多個(gè)遷移單元與所述一個(gè)或多個(gè)區(qū)域管理單元一一對應(yīng)地被配置在同一臺服務(wù)器上。
[0010]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,所述一個(gè)或多個(gè)遷移單元,其中任意一個(gè)為主遷移單元,用于將所述一個(gè)或多個(gè)區(qū)域管理單元生成的與所述要遷移數(shù)據(jù)相關(guān)的日志文件分配給所述一個(gè)或多個(gè)遷移單元進(jìn)行處理。
[0011]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,所述一個(gè)或多個(gè)遷移單元中的每一個(gè)遷移單元包括:監(jiān)控模塊,用于當(dāng)該遷移單元成為主遷移單元時(shí)監(jiān)控所述一個(gè)或多個(gè)遷移單元中每個(gè)遷移單元的運(yùn)行狀態(tài)是否正常。
[0012]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,所述遷移單元包括:獲取模塊,用于在持續(xù)的數(shù)據(jù)遷移模式下獲取相應(yīng)的區(qū)域管理單元所生成的與所述要遷移數(shù)據(jù)相關(guān)的日志文件;解析模塊,用于解析所述日志文件,以獲取所述要遷移數(shù)據(jù);以及寫入模塊,用于將所述要遷移數(shù)據(jù)寫入指定的備集群中。
[0013]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,所述獲取模塊,還用于在指定時(shí)間段的數(shù)據(jù)遷移模式下獲取相應(yīng)的區(qū)域管理單元所生成的時(shí)間信息符合指定時(shí)間段要求的與所述要遷移數(shù)據(jù)相關(guān)的日志文件;所述解析模塊,還用于解析所述時(shí)間信息符合所述指定時(shí)間段要求的日志文件,以獲取所述指定時(shí)間段的要遷移數(shù)據(jù);以及所述寫入模塊,還用于將所述指定時(shí)間段內(nèi)的要遷移數(shù)據(jù)寫入指定的備集群中。
[0014]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,所述寫入模塊,還用于將解析所述日志文件所得到的增量數(shù)據(jù)寫入對應(yīng)的增量表中。
[0015]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,所述遷移單元還包括:模式轉(zhuǎn)換模塊,用于將所述遷移單元的工作模式在所述持續(xù)的數(shù)據(jù)遷移模式與所述指定時(shí)間段的數(shù)據(jù)遷移模式之間轉(zhuǎn)換。
[0016]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,所述模式轉(zhuǎn)換模塊包括:轉(zhuǎn)換子模塊,用于暫停所述持續(xù)的數(shù)據(jù)遷移模式,并開啟所述指定時(shí)間段的數(shù)據(jù)遷移模式。
[0017]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,所述模式轉(zhuǎn)換模塊還包括:保存子模塊,用于保存當(dāng)暫停所述持續(xù)的數(shù)據(jù)遷移模式時(shí)沒有被處理完的日志文件及所述日志文件中沒有被處理完的部分在所述日志文件中對應(yīng)的位置信息;以及記錄子模塊,用于記錄當(dāng)暫停所述持續(xù)的數(shù)據(jù)遷移模式時(shí)相應(yīng)的區(qū)域管理單元最后生成的日志文件中的最小時(shí)間點(diǎn);所述轉(zhuǎn)換子模塊,進(jìn)一步用于暫停所述指定時(shí)間段的數(shù)據(jù)遷移模式,并根據(jù)所述沒有被處理完的日志文件中沒有被處理完的部分在所述日志文件中對應(yīng)的位置信息以及所述最小時(shí)間點(diǎn)開啟所述持續(xù)的數(shù)據(jù)遷移模式。
[0018]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,所述遷移單元包括:一致性對比模塊,用于對所述主集群和所述指定的備集群中數(shù)據(jù)進(jìn)行對比,以確定主、備集群數(shù)據(jù)的一致性。
[0019]根據(jù)本申請的實(shí)施例,在該系統(tǒng)中,所述遷移單元包括:動(dòng)態(tài)配置模塊,用于對所述主集群向所述指定備集群進(jìn)行數(shù)據(jù)遷移的遷移表、增量表、遷移單元集群開關(guān)、日志路徑、多備集群功能以及一致性對比開關(guān)進(jìn)行動(dòng)態(tài)配置。
[0020]根據(jù)本申請的另一方面提供了一種數(shù)據(jù)遷移的方法,用于在主集群與備集群之間進(jìn)行數(shù)據(jù)遷移,該方法包括:一個(gè)或多個(gè)遷移單元解析與要遷移數(shù)據(jù)相關(guān)的日志文件;所述一個(gè)或多個(gè)遷移單元將所述要遷移數(shù)據(jù)寫入指定的備集群中;其中,所述主集群包括一個(gè)或多個(gè)服務(wù)器,每個(gè)服務(wù)器具有區(qū)域管理單元,每個(gè)區(qū)域管理單元生成至少一個(gè)與所述要遷移數(shù)據(jù)相關(guān)的日志文件;所述日志文件包括:所述要遷移數(shù)據(jù)的內(nèi)容、所述要遷移數(shù)據(jù)寫入所述主集群的時(shí)間信息;所述一個(gè)或多個(gè)遷移單元配置在所述主集群或備集群中的一個(gè)或多個(gè)服務(wù)器上。
[0021]根據(jù)本申請的實(shí)施例,在該方法中,所述一個(gè)或多個(gè)遷移單元與所述主集群的一個(gè)或多個(gè)區(qū)域管理單元一一對應(yīng)地被配置在同一臺服務(wù)器上。
[0022]根據(jù)本申請的實(shí)施例,在該方法中,所述一個(gè)或多個(gè)遷移單元中的主遷移單元,將所述一個(gè)或多個(gè)區(qū)域管理單元生成的與所述要遷移數(shù)據(jù)相關(guān)的日志文件分配給所述一個(gè)或多個(gè)遷移單元進(jìn)行處理,其中,所述主遷移單元為所述一個(gè)或多個(gè)遷移單元中的任意一個(gè)。
[0023]根據(jù)本申請的實(shí)施例,在該方法中,還包括:所述一個(gè)或多個(gè)遷移單元中的主遷移單元監(jiān)控所述一個(gè)或多個(gè)遷移單元中每個(gè)遷移單元運(yùn)行的狀態(tài)是否正常。
[0024]根據(jù)本申請的實(shí)施例,在該方法中,所述一個(gè)或多個(gè)遷移單元解析與所述要遷移數(shù)據(jù)相關(guān)的日志文件的步驟包括:在持續(xù)的數(shù)據(jù)遷移模式下,獲取相應(yīng)的區(qū)域管理單元所生成的與所述要遷移數(shù)據(jù)相關(guān)的日志文件;解析所述日志文件,以獲取所述要遷移數(shù)據(jù);所述一個(gè)或多個(gè)遷移單元將所述要遷移數(shù)據(jù)寫入指定的備集群中的步驟進(jìn)一步包括:在持續(xù)的數(shù)據(jù)遷移模式下將所述要遷移數(shù)據(jù)寫入指定的備集群中。
[0025]根據(jù)本申請的實(shí)施例,在該方法中,所述一個(gè)或多個(gè)遷移單元解析與所述要遷移數(shù)據(jù)相關(guān)的日志文件的步驟進(jìn)一步包括:在指定時(shí)間段的數(shù)據(jù)遷移模式下,獲取相應(yīng)的區(qū)域管理單元所生成的時(shí)間信息符合指定時(shí)間段要求的與所述要遷移數(shù)據(jù)相關(guān)的日志文件;解析所述時(shí)間信息符合所述指定時(shí)間段要求的日志文件,以獲取所述指定時(shí)間段的要遷移數(shù)據(jù);以及所述一個(gè)或多個(gè)遷移單元將所述要遷移數(shù)據(jù)寫入指定的備集群中的步驟進(jìn)一步包括:在指定時(shí)間段的數(shù)據(jù)遷移模式下將所述指定時(shí)間段內(nèi)的要遷移數(shù)據(jù)寫入指定的備集群中。
[0026]根據(jù)本申請的實(shí)施例,在該方法中,還包括:所述一個(gè)或多個(gè)遷移單元將解析所述日志文件所得到的增量數(shù)據(jù)寫入對應(yīng)的增量表中。
[0027]根據(jù)本申請的實(shí)施例,在該方法中,還包括:所述一個(gè)或多個(gè)遷移單元將工作模式在所述持續(xù)的數(shù)據(jù)遷移模式與所述指定時(shí)間段的數(shù)據(jù)遷移模式之間轉(zhuǎn)換。
[0028]根據(jù)本申請的實(shí)施例,在該方法中,所述一個(gè)或多個(gè)遷移單元將工作模式在所述持續(xù)的數(shù)據(jù)遷移模式與所述指定時(shí)間段的數(shù)據(jù)遷移模式之間轉(zhuǎn)換,包括:暫停所述持續(xù)的數(shù)據(jù)遷移模式,并開啟所述指定時(shí)間段的數(shù)據(jù)遷移模式。
[0029]根據(jù)本申請的實(shí)施例,在該方法中,所述一個(gè)或多個(gè)遷移單元將工作模式在所述持續(xù)的數(shù)據(jù)遷移模式與所述指定時(shí)間段的數(shù)據(jù)遷移模式之間轉(zhuǎn)換,還包括:保存當(dāng)暫停所述持續(xù)的數(shù)據(jù)遷移模式時(shí)沒有被處理完的日志文件及所述日志文件中沒有被處理完的部分在所述日志文件中對應(yīng)的位置信息,并記錄當(dāng)暫停所述持續(xù)的數(shù)據(jù)遷移模式時(shí)相應(yīng)的區(qū)域管理單元所生成的最后生成的日志文件中的最小時(shí)間點(diǎn);暫停所述指定時(shí)間段的數(shù)據(jù)遷移模式,并根據(jù)所述沒有被處理完的日志文件中沒有被處理完的部分在所述日志文件中對應(yīng)的位置信息以及所述最小時(shí)間點(diǎn)開啟所述持續(xù)的數(shù)據(jù)遷移模式。
[0030]根據(jù)本申請的實(shí)施例,在該方法中,還包括:所述一個(gè)或多個(gè)遷移單元對所述主集群和所述指定的備集群中數(shù)據(jù)進(jìn)行對比,以確定主、備集群數(shù)據(jù)的一致性。
[0031]根據(jù)本申請的實(shí)施例,在該方法中,還包括:所述一個(gè)或多個(gè)遷移單元對所述主集群向所述指定備集群進(jìn)行數(shù)據(jù)遷移的遷移表、增量表、遷移單元集群開關(guān)、日志路徑、多備集群功能以及一致性對比開關(guān)進(jìn)行動(dòng)態(tài)配置。
[0032]與現(xiàn)有技術(shù)相比,根據(jù)本申請的技術(shù)方案,既可以支持Push方式(推模式)的數(shù)據(jù)遷移,也可以支持Pull方式(拉模式)的數(shù)據(jù)遷移,能夠減少主集群的性能壓力;不僅可以支持持續(xù)的數(shù)據(jù)遷移,也可以支持指定時(shí)間段的數(shù)據(jù)遷移,解決了指定時(shí)間段的數(shù)據(jù)補(bǔ)齊;并且,還可以實(shí)時(shí)對比主、備集群數(shù)據(jù)是否一致。
【專利附圖】
【附圖說明】
[0033]此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
[0034]圖1是本申請實(shí)施例的一種數(shù)據(jù)遷移的系統(tǒng)的遷移單元配置在主集群中的一臺或多臺服務(wù)器上的示意圖;
[0035]圖2是本申請實(shí)施例的一種數(shù)據(jù)遷移的系統(tǒng)的遷移單元配置在備集群中的一臺或多臺服務(wù)器上的示意圖;
[0036]圖3是本申請實(shí)施例的遷移單元的結(jié)構(gòu)框圖;
[0037]圖4是本申請實(shí)施例的數(shù)據(jù)遷移的方法的流程圖;
[0038]圖5是本申請實(shí)施例的圖4中的步驟S401的一種實(shí)施方式的流程圖;以及
[0039]圖6是本申請實(shí)施例的圖4中的步驟S401的另一種實(shí)施方式的流程圖。
【具體實(shí)施方式】
[0040]本申請的主要思想在于,通過數(shù)據(jù)遷移單元在主集群和備集群之間進(jìn)行數(shù)據(jù)遷移,遷移單元可以部署在主集群,也可以部署在備集群,部署在備集群可以減小主集群的性能壓力,同時(shí),實(shí)時(shí)對比主、備集群中數(shù)據(jù)的一致性,以保證數(shù)據(jù)遷移過程中的兩個(gè)集群數(shù)據(jù)一致。
[0041 ]為使本申請的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請具體實(shí)施例及相應(yīng)的附圖對本申請技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。
[0042]根據(jù)本申請的實(shí)施例,提供了一種數(shù)據(jù)遷移的系統(tǒng)。
[0043]本申請的數(shù)據(jù)遷移系統(tǒng)可以用于在分布式數(shù)據(jù)庫主集群與備集群之間進(jìn)行數(shù)據(jù)遷移,尤其可以應(yīng)用于HBase (Hadoop Database)數(shù)據(jù)庫的主集群和備集群之間的數(shù)據(jù)遷移。
[0044]根據(jù)本申請的實(shí)施例,該數(shù)據(jù)遷移系統(tǒng)可以包括:主集群以及一個(gè)或多個(gè)備集群,其中,可以在主集群或備集群中的一個(gè)或多個(gè)服務(wù)器上配置一個(gè)或多個(gè)遷移單元。
[0045]主集群可以包括一個(gè)或多個(gè)服務(wù)器,每個(gè)服務(wù)器一般可以具有一個(gè)區(qū)域管理單元,其中每個(gè)區(qū)域管理單元可以生成至少一個(gè)與要遷移數(shù)據(jù)相關(guān)的日志文件,該日志文件可以存儲在分布式文件系統(tǒng)HDFS中;日志文件包括:要遷移數(shù)據(jù)的內(nèi)容、要遷移數(shù)據(jù)寫入所述主集群的時(shí)間信息(或被更改的時(shí)間信息);當(dāng)數(shù)據(jù)被更改時(shí)(例如,要遷移數(shù)據(jù)因被進(jìn)行寫操作而被更改時(shí)),區(qū)域管理單元可以將更改后的數(shù)據(jù)及更改的時(shí)間等寫入日志文件中,所述區(qū)域管理單元,可以用于處理用戶對主集群中數(shù)據(jù)的讀寫請求。
[0046]所述一個(gè)或多個(gè)遷移單元可以用于通過解析與所述要遷移數(shù)據(jù)相關(guān)的日志文件獲取所述要遷移數(shù)據(jù),并將所述要遷移數(shù)據(jù)寫入指定的備集群中。其中,指定的備集群可以為一個(gè)也可以為多個(gè),當(dāng)指定的備集群為一個(gè)時(shí),將通過日志解析的得到的要遷移數(shù)據(jù)全部寫入該備集群中。當(dāng)指定的備集群為多個(gè)時(shí),將通過日志解析得到的所有要遷移數(shù)據(jù)分別全部寫入每個(gè)指定的備集群中,即每個(gè)指定的備集群都被寫入通過日志解析得到的全部要遷移數(shù)據(jù)。
[0047]可以在主集群或備集群中的一個(gè)或多個(gè)服務(wù)器上配置所述一個(gè)或多個(gè)遷移單元,即,所述遷移單元可以配置在所述主集群也可以配置在所述備集群中,也可以配置在不相關(guān)的集群上。應(yīng)注意,本申請中提到的備集群可以包括除所述主集群之外的任意集群,備集群可以為與所述主集群的備集群、也可以為所述主集群的備集群之外的其他集群(其他集群可以為與所述主集群不相關(guān)的任意集群)。
[0048]根據(jù)本申請的實(shí)施例,所述一個(gè)或多個(gè)遷移單元,其中任意一個(gè)為主遷移單元。例如,在HBase數(shù)據(jù)庫中,當(dāng)某個(gè)遷移單元獲得相應(yīng)的鎖,則會成為主遷移單元。所述主遷移單元,可以用于將所述一個(gè)或多個(gè)區(qū)域管理單元生成的與所述要遷移數(shù)據(jù)相關(guān)的日志文件分配給所述一個(gè)或多個(gè)遷移單元進(jìn)行處理。具體而言,所述一個(gè)或多個(gè)遷移單元可以組成遷移單元集群,主遷移單元可以將所述一個(gè)或多個(gè)區(qū)域管理單元分配給相應(yīng)的遷移單元進(jìn)行處理,即,使所述一個(gè)或多個(gè)遷移單元處理相應(yīng)的一個(gè)或多個(gè)區(qū)域管理單元生成的與要遷移數(shù)據(jù)相關(guān)的日志文件。
[0049]根據(jù)本申請的實(shí)施例,當(dāng)所述遷移單元被配置在主集群的一個(gè)或多個(gè)服務(wù)器中時(shí),即,所述遷移單元被配置在主集群中時(shí),可以實(shí)現(xiàn)Push方式的數(shù)據(jù)遷移,S卩,將數(shù)據(jù)從主集群向指定的備集群推送??蛇x地,可以將一個(gè)或多個(gè)遷移單元與主集群的一個(gè)或多個(gè)區(qū)域管理單元對應(yīng)地配置在同一臺服務(wù)器上??蓞⒖紙D1所示,圖1是本申請實(shí)施例的一種數(shù)據(jù)遷移的系統(tǒng)將一個(gè)或多個(gè)遷移單元與主集群的一個(gè)或多個(gè)區(qū)域管理單元對應(yīng)地配置在同一臺服務(wù)器上的示意圖。
[0050]如圖1所示,數(shù)據(jù)遷移系統(tǒng)100的主集群10有服務(wù)器11-1?11-N,將一個(gè)或多個(gè)遷移單元12-1?12-N與主集群10的一個(gè)或多個(gè)區(qū)域管理單元13-1?13-N對應(yīng)的配置在同一臺服務(wù)器(物理機(jī))11上,也就是每一個(gè)區(qū)域管理單元13所在的服務(wù)器11上對應(yīng)配置一個(gè)遷移單元12,每個(gè)遷移單元12通過讀取并解析對應(yīng)的區(qū)域管理單元13的日志文件,將要遷移數(shù)據(jù)寫入多個(gè)備集群(備集群20-1?20-M)中指定的備集群20-1中。其中,每個(gè)遷移單元12所對應(yīng)處理的區(qū)域管理單元13可以為與其在同一臺服務(wù)器11上的區(qū)域管理單元,也可以是別臺物理機(jī)上的區(qū)域管理單元,可以由主遷移單元為各個(gè)遷移單元12(其中可以包括該主遷移單元)指派其對應(yīng)的區(qū)域管理單元13,當(dāng)其中某個(gè)遷移單元無法正常工作(例如,宕機(jī))時(shí),主遷移單元還可以指派其他遷移單元來處理該遷移單元相應(yīng)的區(qū)域管理單元。其中,指定的備集群可以為一個(gè)也可以為多個(gè),圖1所示為指定的備集群為一個(gè)時(shí)的情況,如圖1所示,當(dāng)指定的備集群20為一個(gè)時(shí),將通過日志解析的得到的要遷移數(shù)據(jù)寫入指定的備集群20中。另外,當(dāng)指定的備集群為多個(gè)時(shí),各個(gè)遷移單元將通過日志解析得到的要遷移數(shù)據(jù)分別全部寫入每個(gè)指定的備集群中,即每個(gè)指定的備集群都被寫入通過日志解析得到的全部要遷移數(shù)據(jù)。需要說明的是,圖1所示為本申請的可選實(shí)施方式,本申請的實(shí)施方式不限于此,例如,當(dāng)主集群中有N個(gè)區(qū)域管理單元時(shí),可以在主集群上配置M個(gè)遷移單元來處理N個(gè)區(qū)域管理單元,N可以不等于M。
[0051]根據(jù)本申請的實(shí)施例,當(dāng)所述遷移單元被配置在備集群的一個(gè)或多個(gè)服務(wù)器中時(shí),即,當(dāng)遷移單元被配置在所述備集群中時(shí),可以實(shí)現(xiàn)Pull方式的數(shù)據(jù)遷移,即,從備集群將主集群的數(shù)據(jù)拉取到指定的備集群中。應(yīng)注意,本申請中提到的備集群可以包括除所述主集群之外的任意集群,備集群可以為所述主集群的備集群、也可以為所述主集群的備集群之外的其他集群(即,與所述主集群不相關(guān)的任意集群)。例如,可以將一個(gè)或多個(gè)遷移單元配置在主集群的指定的備集群的一個(gè)或多個(gè)服務(wù)器中或者可以將一個(gè)或多個(gè)遷移單元配置在所述指定的備集群之外的其他集群的一個(gè)或多個(gè)服務(wù)器中??蓞⒖紙D2所示,圖2是本申請實(shí)施例的一種數(shù)據(jù)遷移的系統(tǒng)將一個(gè)或多個(gè)遷移單元配置在主集群指定的備集群之外的其他集群的示意圖。如圖2所示,數(shù)據(jù)遷移系統(tǒng)200的主集群50有服務(wù)器51-1?51-N,在主集群50指定備集群40之外的備集群30的多個(gè)服務(wù)器31_1?31-N中設(shè)置多個(gè)遷移單元32-1?32-N,由主遷移單元為各個(gè)遷移單元32 (其中可以包括該主遷移單元)指派其對應(yīng)的區(qū)域管理單元52。多個(gè)遷移單元32通過讀取并解析主集群50中所對應(yīng)的區(qū)域管理單元52生成的要遷移數(shù)據(jù)相關(guān)的日志文件從而將要遷移數(shù)據(jù)寫入該指定的備集群40中。需要說明的是,雖然圖2所示的配置在備集群30中的遷移單元32與主集群50中區(qū)域管理單元52是數(shù)量相等,并且可以是一一對應(yīng)的,但本申請的實(shí)施方式不限于此,遷移單元與區(qū)域管理單元的數(shù)量可以不相等,可以由主遷移單元為各個(gè)遷移單元(其中可以包括該主遷移單元)指派其對應(yīng)的區(qū)域管理單元。
[0052]如圖3所示,圖3為根據(jù)本申請實(shí)施例的遷移單元的結(jié)構(gòu)框圖。根據(jù)本申請的一個(gè)實(shí)施例,所述一個(gè)或多個(gè)遷移單元中的每一個(gè)遷移單元300可以包括獲取模塊310、解析模塊320以及寫入模塊330。
[0053]本申請的數(shù)據(jù)遷移系統(tǒng)可以在持續(xù)的數(shù)據(jù)遷移模式下進(jìn)行主集群與備集群之間的數(shù)據(jù)遷移,即實(shí)現(xiàn)持續(xù)的數(shù)據(jù)遷移模式。
[0054]在持續(xù)的數(shù)據(jù)遷移模式下,所述獲取模塊310,可以用于在持續(xù)的數(shù)據(jù)遷移模式下獲取相應(yīng)的區(qū)域管理單元所生成的與所述要遷移數(shù)據(jù)相關(guān)的日志文件。
[0055]所述解析模塊320,可以用于解析所述日志文件,以獲取所述要遷移數(shù)據(jù)。
[0056]所述寫入模塊330,可以用于將所述要遷移數(shù)據(jù)寫入指定的備集群中。
[0057]當(dāng)遷移單元被配置在主集群的一個(gè)或多個(gè)服務(wù)器中時(shí),也就是被配置在主集群中時(shí),S卩,以Push方式進(jìn)行數(shù)據(jù)遷移。例如,每一個(gè)區(qū)域管理單元所在的服務(wù)器上對應(yīng)配置一個(gè)遷移單元的情況,每個(gè)遷移單元300通過讀取模塊310讀取本地的區(qū)域管理單元的日志文件,并通過解析模塊320對日志文件進(jìn)行解析,再由寫入模塊330將解析模塊320解析所述日志文件得到的要遷移數(shù)據(jù)寫入指定的備集群,其中,指定的備集群可以為指定的一個(gè)備集群,也可以為指定的多個(gè)備集群。
[0058]這種Push的數(shù)據(jù)遷移方式,可以通過讀取遷移單元本地的區(qū)域管理單元所生成的日志文件并進(jìn)行解析獲得遷移數(shù)據(jù)并寫入指定的備集群中,可以減少網(wǎng)絡(luò)的讀取壓力。
[0059]當(dāng)遷移單元被配置在備集群的一個(gè)或多個(gè)服務(wù)器中時(shí),也就是配置在備集群中時(shí),即Pull方式的數(shù)據(jù)遷移,例如,可以將一個(gè)或多個(gè)遷移單元配置在指定備集群的一個(gè)或多個(gè)服務(wù)器中,或?qū)⒁粋€(gè)或多個(gè)遷移單元配置在其他集群的一個(gè)或多個(gè)服務(wù)器中,其他集群可以為與所述主集群不相關(guān)的任意集群。
[0060]在備集群中的每個(gè)遷移單元300通過讀取模塊310讀取遠(yuǎn)程的主集群的區(qū)域管理單元所生成的與要遷移數(shù)據(jù)相關(guān)的日志文件,并通過解析模塊320對所述日志文件進(jìn)行解析,再由寫入模塊330將解析模塊320解析所述日志文件得到的要遷移數(shù)據(jù)寫入指定的備集群中,其中,指定的備集群可以為指定的一個(gè)備集群,也可以為指定的多個(gè)備集群。
[0061]這種Pull的數(shù)據(jù)遷移方式,通過讀取遠(yuǎn)程的主集群的相應(yīng)的區(qū)域管理單元所生成的日志文件并解析后按照一定的規(guī)則寫入備集群,由于是在備集群(指定的備集群或指定的備集群之外的其他備集群)中進(jìn)行數(shù)據(jù)的解析等操作,可以減小解析和處理日志文件對主集群讀寫的影響轉(zhuǎn)嫁到壓力較小的備集群中,減小主集群的性能壓力。
[0062]在上述的持續(xù)的數(shù)據(jù)遷移模式中,無論是Push方式還是Pull方式的數(shù)據(jù)遷移,都可以針對不斷生成的所述要遷移數(shù)據(jù)的日志文件進(jìn)行解析并獲取要遷移的數(shù)據(jù)寫入指定的備集群中,可以達(dá)到近實(shí)時(shí)的數(shù)據(jù)遷移的效果。
[0063]本申請的數(shù)據(jù)遷移系統(tǒng)除了可以在上述的持續(xù)的數(shù)據(jù)遷移模式下進(jìn)行主集群與備集群之間的數(shù)據(jù)遷移,還可以在指定時(shí)間段的數(shù)據(jù)遷移模式下進(jìn)行主集群與備集群之間的數(shù)據(jù)遷移,即根據(jù)所述指定時(shí)間段要求在主集群與備集群之間進(jìn)行數(shù)據(jù)遷移。下面介紹本申請的數(shù)據(jù)遷移系統(tǒng)如何實(shí)現(xiàn)在指定時(shí)間段的數(shù)據(jù)遷移模式下進(jìn)行主集群與備集群之間的數(shù)據(jù)遷移。
[0064]根據(jù)本申請的實(shí)施例,在所述指定時(shí)間段的數(shù)據(jù)遷移模式下,所述獲取模塊310,還可以用于在指定時(shí)間段的數(shù)據(jù)遷移模式下,獲取相應(yīng)的區(qū)域管理單元所生成的時(shí)間信息符合指定時(shí)間段要求的與所述要遷移數(shù)據(jù)相關(guān)的日志文件。
[0065]所述解析模塊320,還可以用于解析所述時(shí)間信息符合所述指定時(shí)間段的日志文件,以獲取所述指定時(shí)間段的要遷移數(shù)據(jù)。
[0066]所述寫入模塊330,還可以用于將所述指定時(shí)間段內(nèi)的要遷移數(shù)據(jù)寫入指定的備集群中。
[0067]由于日志文件包括所述要遷移數(shù)據(jù)寫入主集群的時(shí)間信息或數(shù)據(jù)發(fā)生改變的時(shí)間信息,因此可以根據(jù)所述時(shí)間信息,對指定時(shí)間段內(nèi)的要遷移數(shù)據(jù)進(jìn)行數(shù)據(jù)遷移。這種指定時(shí)間段的數(shù)據(jù)遷移還可以用于主集群向備集群切換時(shí)的數(shù)據(jù)補(bǔ)齊。并且,既可用于上述的遷移單元在主集群中的情況也可用于遷移單元在備集群中的情況。即,在指定時(shí)間段的數(shù)據(jù)遷移模式下,遷移單元300的讀取模塊310根據(jù)數(shù)據(jù)遷移的指定時(shí)間段要求,讀取本地或遠(yuǎn)程的區(qū)域管理單元所生成的時(shí)間信息符合所述指定時(shí)間段要求的日志文件,解析模塊320解析所述日志文件,以獲取該指定時(shí)間段內(nèi)的要遷移數(shù)據(jù),再由寫入模塊330將解析模塊320解析日志文件得到的要遷移數(shù)據(jù)寫入指定的備集群中,這就實(shí)現(xiàn)了指定時(shí)間段的數(shù)據(jù)遷移。
[0068]根據(jù)本申請的實(shí)施例,所述一個(gè)或多個(gè)遷移單元中的每一個(gè)遷移單元還可以包括:一致性對比模塊,該模塊可以用于對所述主集群和所述指定的備集群中數(shù)據(jù)進(jìn)行對比,以確定主、備集群數(shù)據(jù)的一致性。
[0069]所述一致性對比模塊可以將解析所述日志文件獲得的要遷移數(shù)據(jù)與所述指定的備集群的數(shù)據(jù)作比較,還可以將主、備集群中的數(shù)據(jù)進(jìn)行比較。例如,在HBase集群中,當(dāng)處于插入模式的操作時(shí)(HBase中,只有插入和刪除兩種基本模式),將解析所述日志文件獲得的數(shù)據(jù)與備集群查詢的數(shù)據(jù)作比較,由于HBase中,大部分的操作都是插入模式,這樣不需要查詢主集群,減輕了主集群的性能壓力,又達(dá)到了對賬(即,主、備集群的數(shù)據(jù)一致性的對比)的目的。當(dāng)處于刪除模式的操作時(shí),則同時(shí)將主、備集群的數(shù)據(jù)作比較。一致性對比模塊可以為動(dòng)態(tài)開啟的。
[0070]根據(jù)本申請的實(shí)施例,所述一個(gè)或多個(gè)遷移單元中的每一個(gè)遷移單元還可以包括動(dòng)態(tài)配置模塊,該模塊可以用于動(dòng)態(tài)配置遷移表、增量表、遷移單元集群開關(guān)、日志路徑(Hlog Path)、多備集群功能以及一致性對比開關(guān)。其中,動(dòng)態(tài)配置遷移表可以為記錄要遷移數(shù)據(jù)的表,增量表可以為記錄增量數(shù)據(jù)的表;遷移單元集群開關(guān),可以根據(jù)實(shí)際情況的需要,開啟和關(guān)閉遷移單元集群;日志路徑(Hlog Path)為要遷移數(shù)據(jù)對應(yīng)的日志文件的存儲路徑;多備集群功能,即,增加一個(gè)或多個(gè)備集群;一致性對比開關(guān),可以為進(jìn)行一致性對比的開啟和關(guān)閉的開關(guān)。
[0071]根據(jù)本申請的實(shí)施例,所述一個(gè)或多個(gè)遷移單元中的每一個(gè)遷移單元還可以包括監(jiān)控模塊,該模塊可以用于當(dāng)該遷移單元成為主遷移單元時(shí),監(jiān)控所述一個(gè)或多個(gè)遷移單元中每個(gè)遷移單元運(yùn)行的狀態(tài)是否正常??梢酝ㄟ^收集以下指標(biāo)來監(jiān)控各個(gè)遷移單元的運(yùn)行狀態(tài)是否正常:遷移單元的個(gè)數(shù),正在遷移數(shù)據(jù)的遷移單元的個(gè)數(shù),每個(gè)遷移單元正在處理哪些區(qū)域管理單元,區(qū)域管理單元的個(gè)數(shù),還未處理的日志文件Hlog總數(shù),每個(gè)區(qū)域管理單元還未處理的日志文件Hlog的個(gè)數(shù)。
[0072]根據(jù)本申請的實(shí)施例,無論是在持續(xù)數(shù)據(jù)遷移模式下還是指定時(shí)間段數(shù)據(jù)遷移模式中,寫入模塊都可以將解析所述日志文件所得到的增量數(shù)據(jù)寫入對應(yīng)的增量表中。例如,HBase數(shù)據(jù)庫中,通過解析Hlog,可以得到相應(yīng)表的數(shù)據(jù)(HBase數(shù)據(jù)庫中,一般以表的形式存儲數(shù)據(jù),通過主鍵rowkey,也稱為行健來檢索數(shù)據(jù)),從而得到所述要遷移數(shù)據(jù)寫入主集群的時(shí)間戳(timestamp),可以在數(shù)據(jù)的原主鍵rowkey前面增加寫入主集群的時(shí)間戳(timestamp)組成新的主鍵rowkey,因此,可以由寫入模塊330將這些新生成的主鍵和對應(yīng)的數(shù)據(jù)寫到按照預(yù)定命名規(guī)則生成的新表中,即增量表中,增量表可以用來查詢?nèi)我鈺r(shí)段原表寫入了哪些數(shù)據(jù),即增量數(shù)據(jù)。
[0073]本申請既支持持續(xù)的數(shù)據(jù)遷移的模式,也支持指定時(shí)間段的數(shù)據(jù)遷移的模式,還能夠?qū)崿F(xiàn)持續(xù)的數(shù)據(jù)遷移模式和指定時(shí)間段的數(shù)據(jù)遷移模式的轉(zhuǎn)換。
[0074]根據(jù)本申請的實(shí)施例,所述一個(gè)或多個(gè)遷移單元中的每一個(gè)遷移單元還可以包括模式轉(zhuǎn)換模塊,該模塊可以用于將所述遷移單元的工作模式在所述持續(xù)的數(shù)據(jù)遷移模式與所述指定時(shí)間段的數(shù)據(jù)遷移模式之間轉(zhuǎn)換。
[0075]所述模式轉(zhuǎn)換模塊包括:轉(zhuǎn)換子模塊,該模塊可以用于暫停所述持續(xù)的數(shù)據(jù)遷移模式,并開啟所述指定時(shí)間段的數(shù)據(jù)遷移模式。當(dāng)從所述持續(xù)數(shù)據(jù)遷移模式轉(zhuǎn)換到指定時(shí)間段數(shù)據(jù)遷移模式時(shí),暫停所述持續(xù)的數(shù)據(jù)遷移模式,并開啟所述指定時(shí)間段的數(shù)據(jù)遷移模式。
[0076]根據(jù)本申請的實(shí)施例,所述模式轉(zhuǎn)換模塊還可以包括:保存子模塊和記錄子模塊。
[0077]保存子模塊,可以用于保存當(dāng)暫停所述持續(xù)的數(shù)據(jù)遷移模式時(shí)沒有被處理完的日志文件及所述日志文件中沒有被處理完的部分在所述日志文件中對應(yīng)的位置信息。
[0078]記錄子模塊,可以用于記錄當(dāng)暫停所述持續(xù)的數(shù)據(jù)遷移模式時(shí)相應(yīng)的區(qū)域管理單元最后生成的日志文件中的最小時(shí)間點(diǎn)。
[0079]并且,所述轉(zhuǎn)換子模塊,進(jìn)一步用于暫停所述指定時(shí)間段的數(shù)據(jù)遷移模式,并根據(jù)所述最小時(shí)間點(diǎn)恢復(fù)所述持續(xù)的數(shù)據(jù)遷移模式的工作。
[0080]具體來說,當(dāng)從持續(xù)數(shù)據(jù)遷移模式向指定時(shí)間段的數(shù)據(jù)遷移模式轉(zhuǎn)換時(shí),保存子模塊保存暫停持續(xù)的數(shù)據(jù)遷移模式時(shí)沒有處理完的日志文件及所述日志文件中沒有被處理完的部分在所述日志文件中對應(yīng)的位置信息,并記錄相應(yīng)的區(qū)域管理單元最后生成的日志文件中的最小時(shí)間點(diǎn),當(dāng)遷移單元將工作模式從指定時(shí)間段的數(shù)據(jù)遷移模式恢復(fù)到持續(xù)的數(shù)據(jù)遷移模式時(shí),轉(zhuǎn)換子模塊暫停所述指定時(shí)間段的數(shù)據(jù)遷移模式,并根據(jù)所述沒有被處理完的日志文件中沒有被處理完的部分在所述日志文件中對應(yīng)的位置信息以及所述最小時(shí)間點(diǎn)恢復(fù)所述持續(xù)的數(shù)據(jù)遷移模式的工作,即,繼續(xù)處理所述沒有處理完的日志文件的沒有被處理完的部分,并根據(jù)所述最小時(shí)間點(diǎn)重新開始持續(xù)的數(shù)據(jù)遷移(從所述最小時(shí)間點(diǎn)開始還會有新生成的與所述要遷移數(shù)據(jù)相對應(yīng)的日志文件,從這個(gè)時(shí)間點(diǎn)開始繼續(xù)進(jìn)行數(shù)據(jù)遷移)。
[0081 ] 本申請還提供了一種數(shù)據(jù)遷移的方法。
[0082]圖4示意性地示出了根據(jù)本申請一個(gè)實(shí)施例的數(shù)據(jù)遷移的方法的流程圖。
[0083]根據(jù)本申請的實(shí)施例,該方法可以用于在分布式數(shù)據(jù)庫的主集群與備集群之間進(jìn)行數(shù)據(jù)遷移,尤其可以應(yīng)用于HBase (Hadoop Database)數(shù)據(jù)庫的主集群和備集群之間的數(shù)據(jù)遷移,如圖所示:
[0084]在步驟S401中,一個(gè)或多個(gè)遷移單元解析與所述要遷移數(shù)據(jù)相關(guān)的日志文件,其中,所述一個(gè)或多個(gè)遷移單元配置在所述主集群或備集群中的一個(gè)或多個(gè)服務(wù)器上。
[0085]在步驟S402中,所述一個(gè)或多個(gè)遷移單元將所述要遷移數(shù)據(jù)寫入指定的備集群中。
[0086]其中,所述主集群可以包括一個(gè)或多個(gè)服務(wù)器,每個(gè)服務(wù)器一般可以具有一個(gè)區(qū)域管理單元,每個(gè)區(qū)域管理單元可以生成至少一個(gè)與所述要遷移數(shù)據(jù)相關(guān)的日志文件;所述日志文件可以包括:所述要遷移數(shù)據(jù)的內(nèi)容、所述要遷移數(shù)據(jù)寫入所述主集群的時(shí)間信息(或被更改的時(shí)間信息);當(dāng)數(shù)據(jù)被更改時(shí)(例如,當(dāng)要遷移數(shù)據(jù)因被進(jìn)行寫操作或其他操作而被更改時(shí)),區(qū)域管理單元會將更改后的數(shù)據(jù)及更改的時(shí)間等寫入該日志文件中。
[0087]遷移單元可以配置在所述主集群的一個(gè)或多個(gè)服務(wù)器中,也可以配置在所述備集群的一個(gè)或多個(gè)服務(wù)器中。應(yīng)注意,本申請中提到的備集群可以包括除所述主集群之外的任意集群,備集群可以為所述主集群的備集群、也可以為所述主集群的備集群之外的其他集群(即,與所述主集群不相關(guān)的任意集群)。當(dāng)遷移單元被配置在所述主集群的一個(gè)或多個(gè)服務(wù)器,即,遷移單元配置在主集群中時(shí),可以實(shí)現(xiàn)Push方式的數(shù)據(jù)遷移,即將數(shù)據(jù)從主集群向指定的備集群推送??蛇x地,可以將一個(gè)或多個(gè)遷移單元與主集群的一個(gè)或多個(gè)區(qū)域管理單元對應(yīng)的配置在同一臺服務(wù)器上,即,在主集群的每個(gè)區(qū)域管理單元所在的服務(wù)器上配置一個(gè)遷移單元。當(dāng)遷移單元配置在備集群的一個(gè)或多個(gè)服務(wù)器,即遷移單元配置在備集群中時(shí),可以實(shí)現(xiàn)Pull方式的數(shù)據(jù)遷移,即從備集群將主集群的數(shù)據(jù)拉取到備集群中。例如,可以將多個(gè)遷移單元配置在主集群的指定的備集群的一個(gè)或多個(gè)服務(wù)器中或者將所述遷移單元配置在所述主集群指定的備集群之外的其他備集群(所述其他備集群,也可以稱作其他集群,是指所述要遷移數(shù)據(jù)原來所在的主集群之外的任意集群)的一個(gè)或多個(gè)服務(wù)器中。其中,指定的備集群可以為一個(gè)也可以為多個(gè),當(dāng)指定的備集群為一個(gè)時(shí),將通過日志解析的得到的要遷移數(shù)據(jù)全部寫入該備集群中。當(dāng)指定的備集群為多個(gè)時(shí),將通過日志解析得到的所有要遷移數(shù)據(jù)分別全部寫入每個(gè)指定的備集群中,即每個(gè)指定的備集群都被寫入通過日志解析得到的全部要遷移數(shù)據(jù)。
[0088]根據(jù)本申請的實(shí)施例,所述主遷移單元將所述一個(gè)或多個(gè)區(qū)域管理單元所生成的與要遷移數(shù)據(jù)相關(guān)的日志文件分配給所述一個(gè)或多個(gè)遷移單元進(jìn)行處理。具體來說,所述一個(gè)或多個(gè)遷移單元可以組成一個(gè)集群,其中任意一個(gè)遷移單元為主遷移單元,其他的遷移單元為從遷移單元,任意遷移單元都可能成為主遷移單元,例如,在HBase數(shù)據(jù)庫中,當(dāng)某個(gè)遷移單元獲得相應(yīng)的鎖,就會成為主遷移單元。主遷移單元可以將所述一個(gè)或多個(gè)區(qū)域管理單元分配給相應(yīng)的遷移單元進(jìn)行處理,即,使所述一個(gè)或多個(gè)遷移單元對應(yīng)處理所述一個(gè)或多個(gè)區(qū)域管理單元生成的與要遷移數(shù)據(jù)相關(guān)的日志文件。
[0089]根據(jù)本申請的實(shí)施例,本申請可以在持續(xù)的數(shù)據(jù)遷移模式下進(jìn)行主集群與備集群之間的數(shù)據(jù)遷移,即在主集群與備集群之間進(jìn)行持續(xù)的數(shù)據(jù)遷移。
[0090]在持續(xù)的數(shù)據(jù)遷移模式下,步驟S401可以包括步驟S501-S502。參考圖5,圖5為根據(jù)本申請一實(shí)施例的步驟S401流程圖。
[0091]如圖5所示,在步驟S501中,在持續(xù)的數(shù)據(jù)遷移模式下獲取相應(yīng)的區(qū)域管理單元所生成的與所述要遷移數(shù)據(jù)相關(guān)的日志文件。即,在持續(xù)的數(shù)據(jù)遷移模式下,讀取主遷移單元分配的對應(yīng)的區(qū)域管理單元所生成的日志文件。
[0092]在步驟S502中,通過解析所述日志文件,以獲取所述要遷移數(shù)據(jù)。即,基于日志解析的方式獲取所述要遷移數(shù)據(jù)。
[0093]并且,在步驟S402中,在所述持續(xù)的數(shù)據(jù)遷移模式下將所述要遷移數(shù)據(jù)寫入指定的備集群中。
[0094]上述的持續(xù)遷移模式,可以對于不斷生成的與所述要遷移數(shù)據(jù)相關(guān)的日志文件進(jìn)行解析獲得所述要遷移數(shù)據(jù)進(jìn)行持續(xù)的遷移,可以達(dá)到近實(shí)時(shí)的數(shù)據(jù)遷移。并且,即可用于遷移單元設(shè)置在主集群中的情況也可用于遷移單元設(shè)置在備集群中的情況,也就是說這種持續(xù)的數(shù)據(jù)遷移模式既可以用于Push方式的數(shù)據(jù)遷移,也可以用于Pull方式的數(shù)據(jù)遷移。
[0095]根據(jù)本申請的另一實(shí)施例,本申請還可以在指定時(shí)間段的數(shù)據(jù)遷移模式下進(jìn)行主集群與備集群之間的數(shù)據(jù)遷移,即在主集群與備集群之間進(jìn)行指定時(shí)間段內(nèi)的數(shù)據(jù)的遷移。
[0096]在指定時(shí)間段的數(shù)據(jù)遷移模式下,步驟S401可以包括步驟S601-S602。參考圖6,為根據(jù)本申請另一實(shí)施例的步驟S401流程圖。
[0097]如圖6所示,在步驟S601中,在指定時(shí)間段的數(shù)據(jù)遷移模式下,獲取相應(yīng)的區(qū)域管理單元所生成的時(shí)間信息符合指定時(shí)間段要求的與所述要遷移數(shù)據(jù)相關(guān)的日志文件。
[0098]由于日志文件包括要遷移數(shù)據(jù)寫入所述主集群的時(shí)間信息或數(shù)據(jù)發(fā)生改變的時(shí)間信息,因此可以根據(jù)所述時(shí)間信息,獲取符合指定時(shí)間段內(nèi)的日志文件。
[0099]在步驟S602中,解析所述時(shí)間信息符合所述指定時(shí)間段要求的日志文件,以獲取所述指定時(shí)間段的要遷移數(shù)據(jù)。
[0100]并且,在步驟S402中,在所述指定時(shí)間段的數(shù)據(jù)遷移模式下,將所述指定時(shí)間段內(nèi)的要遷移數(shù)據(jù)寫入指定的備集群中。
[0101]上述的數(shù)據(jù)遷移方式是通過解析指定時(shí)間段的日志文件獲得要遷移數(shù)據(jù)進(jìn)行的數(shù)據(jù)遷移,這種指定時(shí)間段的數(shù)據(jù)遷移還可以用于主集群向備集群切換時(shí)的數(shù)據(jù)補(bǔ)齊。并且,即可用于遷移單元設(shè)置在主集群中的情況也可用于遷移單元設(shè)置在備集群中的情況,也就是說這種指定時(shí)間段的數(shù)據(jù)遷移既可以用于Push方式的數(shù)據(jù)遷移,也可以用于Pull方式的數(shù)據(jù)遷移。
[0102]根據(jù)本申請的實(shí)施例,無論是在持續(xù)的數(shù)據(jù)遷移模式下還是指定時(shí)間段的數(shù)據(jù)遷移模式下,還可以包括所述一個(gè)或多個(gè)遷移單元將解析所述日志文件所得到的增量數(shù)據(jù)寫入對應(yīng)的增量表中的步驟。例如,HBase數(shù)據(jù)庫中,通過解析Hlog,都可以得到相應(yīng)表的數(shù)據(jù)(HBase數(shù)據(jù)庫中,一般以表的形式存儲數(shù)據(jù),通過主鍵rowkey,也稱為行健來檢索數(shù)據(jù)),從而得到所述要遷移數(shù)據(jù)寫入主集群的時(shí)間戳(timestamp),可以在數(shù)據(jù)的原主鍵rowkey前面增加寫入主集群的時(shí)間戳(timestamp)組成新的主鍵rowkey,因此,可以由寫入模塊330將這些新生成的主鍵和對應(yīng)的數(shù)據(jù)寫到按照預(yù)定命名規(guī)則生成的新表中,即增量表中,增量表可以用來查詢?nèi)我鈺r(shí)段原表寫入了哪些數(shù)據(jù),即增量數(shù)據(jù)。
[0103]根據(jù)本申請的實(shí)施例,還可以包括:所述一個(gè)或多個(gè)遷移單元將工作模式在所述持續(xù)的數(shù)據(jù)遷移模式與所述指定時(shí)間段的數(shù)據(jù)遷移模式之間轉(zhuǎn)換的步驟。當(dāng)遷移單元將工作模式從所述持續(xù)數(shù)據(jù)遷移轉(zhuǎn)換到指定時(shí)間段數(shù)據(jù)遷移時(shí),遷移單元暫停所述持續(xù)的數(shù)據(jù)遷移模式,并開啟所述指定時(shí)間段的數(shù)據(jù)遷移模式。
[0104]所述一個(gè)或多個(gè)遷移單元還可以保存當(dāng)暫停所述持續(xù)的數(shù)據(jù)遷移模式時(shí)沒有被處理完的日志文件及所述日志文件中沒有被處理完的部分在所述日志文件中對應(yīng)的位置信息,并記錄當(dāng)暫停所述持續(xù)的數(shù)據(jù)遷移模式時(shí)相應(yīng)的區(qū)域管理單元最后生成的日志文件中的最小時(shí)間點(diǎn),也就是說,當(dāng)所述遷移單元將工作模式從持續(xù)數(shù)據(jù)遷移模式向指定時(shí)間段的數(shù)據(jù)遷移模式轉(zhuǎn)換時(shí),保存暫停持續(xù)的數(shù)據(jù)遷移模式時(shí)沒有處理完的日志文件,并記錄相應(yīng)的區(qū)域管理單元最后生成的日志文件中的最小時(shí)間點(diǎn),當(dāng)遷移單元將工作模式從指定時(shí)間段的數(shù)據(jù)遷移模式恢復(fù)到持續(xù)的數(shù)據(jù)遷移模式時(shí),暫停所述指定時(shí)間段的數(shù)據(jù)遷移模式,并根據(jù)所述沒有被處理完的日志文件中沒有被處理完的部分在所述日志文件中對應(yīng)的位置信息以及所述最小時(shí)間點(diǎn)恢復(fù)所述持續(xù)的數(shù)據(jù)遷移模式的工作,即,遷移單元繼續(xù)處理所述沒有處理完的日志文件中沒有被處理完的部分,并根據(jù)所述最小時(shí)間點(diǎn)重新開始持續(xù)的數(shù)據(jù)遷移(從該最小時(shí)間點(diǎn)開始還會有新生成的與所述要遷移數(shù)據(jù)相對應(yīng)的日志文件,從這個(gè)時(shí)間點(diǎn)開始繼續(xù)進(jìn)行數(shù)據(jù)遷移)。
[0105]根據(jù)本申請的實(shí)施例,還可以包括:所述一個(gè)或多個(gè)遷移單元對所述主集群和所述指定的備集群中數(shù)據(jù)進(jìn)行對比,以確定主、備集群數(shù)據(jù)的一致性的步驟。
[0106]所述遷移單元可以將解析所述日志文件獲得的要遷移數(shù)據(jù)與所述指定的備集群的數(shù)據(jù)作比較,以確定主、備集群數(shù)據(jù)的一致性;還可以將主、備集群中的數(shù)據(jù)進(jìn)行比較。例如,在HBase集群中,當(dāng)處于插入模式的操作時(shí)(HBase中,只有插入和刪除兩種基本模式),將解析所述日志文件獲得的數(shù)據(jù)與備集群查詢的數(shù)據(jù)作比較,由于HBase中,大部分的操作都是插入模式,這樣不需要查詢主集群,減輕了主集群的性能壓力,又達(dá)到了對賬(即,主、備集群的數(shù)據(jù)一致性的對比)的目的。當(dāng)處于刪除模式的操作時(shí),則同時(shí)將主、備集群的數(shù)據(jù)作比較。一致性對比功能可以為動(dòng)態(tài)開啟的。
[0107]根據(jù)本申請的實(shí)施例,還可以包括:所述一個(gè)或多個(gè)遷移單元對所述主集群向所述指定備集群進(jìn)行數(shù)據(jù)遷移的遷移表、增量表、遷移單元集群開關(guān)、日志路徑、多備集群功能以及一致性對比開關(guān)進(jìn)行動(dòng)態(tài)配置的步驟。其中,動(dòng)態(tài)配置遷移表可以為記錄要遷移數(shù)據(jù)的表,增量表可以為記錄增量數(shù)據(jù)的表;遷移單元集群開關(guān),可以根據(jù)實(shí)際情況的需要,開啟和關(guān)閉遷移單元集群;日志路徑(Hlog Path)為要遷移數(shù)據(jù)對應(yīng)的日志文件的存儲路徑);多備集群功能,即,增加一個(gè)或多個(gè)備集群;一致性對比開關(guān),可以為進(jìn)行一致性對比的開啟和關(guān)閉的開關(guān)。
[0108]根據(jù)本申請的實(shí)施例,還可以包括:所述一個(gè)或多個(gè)遷移單元中的主遷移單元監(jiān)控所述一個(gè)或多個(gè)遷移單元中每個(gè)遷移單元運(yùn)行的狀態(tài)是否正常。主要通過收集以下指標(biāo)來進(jìn)行監(jiān)控:遷移單元的個(gè)數(shù),正在遷移數(shù)據(jù)的遷移單元的個(gè)數(shù),每個(gè)遷移單元正在處理哪些區(qū)域管理單元,區(qū)域管理單元的個(gè)數(shù),還未處理的Hlog總數(shù),每個(gè)區(qū)域管理單元還未處理的Hlog的個(gè)數(shù)。
[0109]由于本申請的方法的操作步驟與裝置的結(jié)構(gòu)特征基本對應(yīng),可以相互參照,故本實(shí)施例的描述中未詳盡之處,可以參見前述實(shí)施例中的相關(guān)說明,在此不做贅述。
[0110]在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
[0111]內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲器,隨機(jī)存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flashRAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
[0112]計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲器(DRAM)、其他類型的隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號和載波。
[0113]還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
[0114]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0115]以上所述僅為本申請的實(shí)施例而已,并不用于限制本申請,對于本領(lǐng)域的技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。
【權(quán)利要求】
1.一種數(shù)據(jù)遷移的系統(tǒng),用于在分布式數(shù)據(jù)庫的主集群與備集群之間進(jìn)行數(shù)據(jù)遷移,其特征在于,包括:主集群以及一個(gè)或多個(gè)備集群; 其中,所述主集群包括一個(gè)或多個(gè)服務(wù)器,每個(gè)服務(wù)器具有區(qū)域管理單元,每個(gè)區(qū)域管理單元生成至少一個(gè)與要遷移數(shù)據(jù)相關(guān)的日志文件;所述日志文件包括:所述要遷移數(shù)據(jù)的內(nèi)容、所述要遷移數(shù)據(jù)寫入所述主集群的時(shí)間信息;并且其中,在所述主集群或備集群中的一個(gè)或多個(gè)服務(wù)器上配置有一個(gè)或多個(gè)遷移單元; 所述一個(gè)或多個(gè)遷移單元,用于通過解析與所述要遷移數(shù)據(jù)相關(guān)的日志文件從而將所述要遷移數(shù)據(jù)寫入指定的備集群中。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述一個(gè)或多個(gè)遷移單元與所述一個(gè)或多個(gè)區(qū)域管理單元一一對應(yīng)地被配置在同一臺服務(wù)器上。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于, 所述一個(gè)或多個(gè)遷移單元,其中任意一個(gè)為主遷移單元,用于將所述一個(gè)或多個(gè)區(qū)域管理單元生成的與所述要遷移數(shù)據(jù)相關(guān)的日志文件分配給所述一個(gè)或多個(gè)遷移單元進(jìn)行處理。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,所述一個(gè)或多個(gè)遷移單元中的每一個(gè)遷移單元包括: 監(jiān)控模塊,用于當(dāng)該遷移單元成為主遷移單元時(shí)監(jiān)控所述一個(gè)或多個(gè)遷移單元中每個(gè)遷移單元的運(yùn)行狀態(tài)是否正常。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述遷移單元包括: 獲取模塊,用于在持續(xù)的數(shù)據(jù)遷移模式下獲取相應(yīng)的區(qū)域管理單元所生成的與所述要遷移數(shù)據(jù)相關(guān)的日志文件; 解析模塊,用于解析所述日志文件,以獲取所述要遷移數(shù)據(jù);以及 寫入模塊,用于將所述要遷移數(shù)據(jù)寫入指定的備集群中。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于, 所述獲取模塊,還用于在指定時(shí)間段的數(shù)據(jù)遷移模式下獲取相應(yīng)的區(qū)域管理單元所生成的時(shí)間信息符合指定時(shí)間段要求的與所述要遷移數(shù)據(jù)相關(guān)的日志文件; 所述解析模塊,還用于解析所述時(shí)間信息符合所述指定時(shí)間段要求的日志文件,以獲取所述指定時(shí)間段的要遷移數(shù)據(jù);以及 所述寫入模塊,還用于將所述指定時(shí)間段內(nèi)的要遷移數(shù)據(jù)寫入指定的備集群中。
7.根據(jù)權(quán)利要求5或6所述的系統(tǒng),其特征在于,所述寫入模塊,還用于將解析所述日志文件所得到的增量數(shù)據(jù)寫入對應(yīng)的增量表中。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述遷移單元還包括:模式轉(zhuǎn)換模塊,用于將所述遷移單元的工作模式在所述持續(xù)的數(shù)據(jù)遷移模式與所述指定時(shí)間段的數(shù)據(jù)遷移模式之間轉(zhuǎn)換。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述模式轉(zhuǎn)換模塊包括: 轉(zhuǎn)換子模塊,用于暫停所述持續(xù)的數(shù)據(jù)遷移模式,并開啟所述指定時(shí)間段的數(shù)據(jù)遷移模式。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述模式轉(zhuǎn)換模塊還包括: 保存子模塊,用于保存當(dāng)暫停所述持續(xù)的數(shù)據(jù)遷移模式時(shí)沒有被處理完的日志文件及所述日志文件中沒有被處理完的部分在所述日志文件中對應(yīng)的位置信息;以及 記錄子模塊,用于記錄當(dāng)暫停所述持續(xù)的數(shù)據(jù)遷移模式時(shí)相應(yīng)的區(qū)域管理單元最后生成的日志文件中的最小時(shí)間點(diǎn); 所述轉(zhuǎn)換子模塊,進(jìn)一步用于暫停所述指定時(shí)間段的數(shù)據(jù)遷移模式,并根據(jù)所述沒有被處理完的日志文件中沒有被處理完的部分在所述日志文件中對應(yīng)的位置信息以及所述最小時(shí)間點(diǎn)開啟所述持續(xù)的數(shù)據(jù)遷移模式。
11.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述遷移單元包括:一致性對比模塊,用于對所述主集群和所述指定的備集群中數(shù)據(jù)進(jìn)行對比,以確定主、備集群數(shù)據(jù)的一致性。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述遷移單元包括:動(dòng)態(tài)配置模塊,用于對所述主集群向所述指定備集群進(jìn)行數(shù)據(jù)遷移的遷移表、增量表、遷移單元集群開關(guān)、日志路徑、多備集群功能以及一致性對比開關(guān)進(jìn)行動(dòng)態(tài)配置。
13.一種數(shù)據(jù)遷移的方法,用于在主集群與備集群之間進(jìn)行數(shù)據(jù)遷移,其特征在于,包括: 一個(gè)或多個(gè)遷移單元解析與要遷移數(shù)據(jù)相關(guān)的日志文件; 所述一個(gè)或多個(gè)遷移單元將所述要遷移數(shù)據(jù)寫入指定的備集群中; 其中,所述主集群包括一個(gè)或多個(gè)服務(wù)器,每個(gè)服務(wù)器具有區(qū)域管理單元,每個(gè)區(qū)域管理單元生成至少一個(gè)與所述要遷移數(shù)據(jù)相關(guān)的日志文件;所述日志文件包括:所述要遷移數(shù)據(jù)的內(nèi)容、所述要遷移數(shù)據(jù)寫入所述主集群的時(shí)間信息;所述一個(gè)或多個(gè)遷移單元配置在所述主集群或備集群中的一個(gè)或多個(gè)服務(wù)器上。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述一個(gè)或多個(gè)遷移單元與所述主集群的一個(gè)或多個(gè)區(qū)域管理單元一一對應(yīng)地被配置在同一臺服務(wù)器上。
15.根據(jù)權(quán)利要求13所述的方法,其特征在于,還包括: 所述一個(gè)或多個(gè)遷移單元中的主遷移單元,將所述一個(gè)或多個(gè)區(qū)域管理單元生成的與所述要遷移數(shù)據(jù)相關(guān)的日志文件分配給所述一個(gè)或多個(gè)遷移單元進(jìn)行處理,其中,所述主遷移單元為所述一個(gè)或多個(gè)遷移單元中的任意一個(gè)。
16.根據(jù)權(quán)利要求15所述的方法,其特征在于,還包括:所述一個(gè)或多個(gè)遷移單元中的主遷移單元監(jiān)控所述一個(gè)或多個(gè)遷移單元中每個(gè)遷移單元運(yùn)行的狀態(tài)是否正常。
17.根據(jù)權(quán)利要求13所述的方法,其特征在于, 所述一個(gè)或多個(gè)遷移單元解析與所述要遷移數(shù)據(jù)相關(guān)的日志文件的步驟包括: 在持續(xù)的數(shù)據(jù)遷移模式下,獲取相應(yīng)的區(qū)域管理單元所生成的與所述要遷移數(shù)據(jù)相關(guān)的日志文件; 解析所述日志文件,以獲取所述要遷移數(shù)據(jù); 所述一個(gè)或多個(gè)遷移單元將所述要遷移數(shù)據(jù)寫入指定的備集群中的步驟進(jìn)一步包括: 在持續(xù)的數(shù)據(jù)遷移模式下將所述要遷移數(shù)據(jù)寫入指定的備集群中。
18.根據(jù)權(quán)利要求17所述的方法,其特征在于, 所述一個(gè)或多個(gè)遷移單元解析與所述要遷移數(shù)據(jù)相關(guān)的日志文件的步驟進(jìn)一步包括: 在指定時(shí)間段的數(shù)據(jù)遷移模式下,獲取相應(yīng)的區(qū)域管理單元所生成的時(shí)間信息符合指定時(shí)間段要求的與所述要遷移數(shù)據(jù)相關(guān)的日志文件; 解析所述時(shí)間信息符合所述指定時(shí)間段要求的日志文件,以獲取所述指定時(shí)間段的要遷移數(shù)據(jù);以及 所述一個(gè)或多個(gè)遷移單元將所述要遷移數(shù)據(jù)寫入指定的備集群中的步驟進(jìn)一步包括: 在指定時(shí)間段的數(shù)據(jù)遷移模式下將所述指定時(shí)間段內(nèi)的要遷移數(shù)據(jù)寫入指定的備集群中。
19.根據(jù)權(quán)利要求17或18所述的方法,其特征在于,還包括:所述一個(gè)或多個(gè)遷移單元將解析所述日志文件所得到的增量數(shù)據(jù)寫入對應(yīng)的增量表中。
20.根據(jù)權(quán)利要求18所述的方法,其特征在于,還包括:所述一個(gè)或多個(gè)遷移單元將工作模式在所述持續(xù)的數(shù)據(jù)遷移模式與所述指定時(shí)間段的數(shù)據(jù)遷移模式之間轉(zhuǎn)換。
21.根據(jù)權(quán)利要求20所述的方法,其特征在于,所述一個(gè)或多個(gè)遷移單元將工作模式在所述持續(xù)的數(shù)據(jù)遷移模式與所述指定時(shí)間段的數(shù)據(jù)遷移模式之間轉(zhuǎn)換,包括: 暫停所述持續(xù)的數(shù)據(jù)遷移模式,并開啟所述指定時(shí)間段的數(shù)據(jù)遷移模式。
22.根據(jù)權(quán)利要求21所述的方法,其特征在于,所述一個(gè)或多個(gè)遷移單元將工作模式在所述持續(xù)的數(shù)據(jù)遷移模式與所述指定時(shí)間段的數(shù)據(jù)遷移模式之間轉(zhuǎn)換,還包括: 保存當(dāng)暫停所述持續(xù)的數(shù)據(jù)遷移模式時(shí)沒有被處理完的日志文件及所述日志文件中沒有被處理完的部分在所述日志文件中對應(yīng)的位置信息,并記錄當(dāng)暫停所述持續(xù)的數(shù)據(jù)遷移模式時(shí)相應(yīng)的區(qū)域管理單元所生成的最后生成的日志文件中的最小時(shí)間點(diǎn); 暫停所述指定時(shí)間段的數(shù)據(jù)遷移模式,并根據(jù)所述沒有被處理完的日志文件中沒有被處理完的部分在所述日志文件中對應(yīng)的位置信息以及所述最小時(shí)間點(diǎn)開啟所述持續(xù)的數(shù)據(jù)遷移模式。
23.根據(jù)權(quán)利要求13所述的方法,其特征在于,還包括:所述一個(gè)或多個(gè)遷移單元對所述主集群和所述指定的備集群中數(shù)據(jù)進(jìn)行對比,以確定主、備集群數(shù)據(jù)的一致性。
24.根據(jù)權(quán)利要求23所述的方法,其特征在于,還包括:所述一個(gè)或多個(gè)遷移單元對所述主集群向所述指定備集群進(jìn)行數(shù)據(jù)遷移的遷移表、增量表、遷移單元集群開關(guān)、日志路徑、多備集群功能以及一致性對比開關(guān)進(jìn)行動(dòng)態(tài)配置。
【文檔編號】G06F17/30GK104424283SQ201310388988
【公開日】2015年3月18日 申請日期:2013年8月30日 優(yōu)先權(quán)日:2013年8月30日
【發(fā)明者】付大超 申請人:阿里巴巴集團(tuán)控股有限公司