System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本申請涉及數(shù)據(jù)處理,特別是涉及一種數(shù)據(jù)遷移方法、裝置、計(jì)算機(jī)設(shè)備、計(jì)算機(jī)可讀存儲介質(zhì)和計(jì)算機(jī)程序產(chǎn)品。
技術(shù)介紹
1、隨著大數(shù)據(jù)技術(shù)的發(fā)展,對于數(shù)據(jù)庫的穩(wěn)定性和可用性需求與日俱增,出現(xiàn)了數(shù)據(jù)遷移技術(shù),通過數(shù)據(jù)遷移,以滿足上下云、備份容災(zāi)、擴(kuò)縮容、歸檔、數(shù)據(jù)分析等場景。
2、傳統(tǒng)技術(shù)中,通過傳統(tǒng)的導(dǎo)出導(dǎo)入工具,如mongoexport、mongoimport,mongodump、mongostore進(jìn)行數(shù)據(jù)遷移。
3、然而,由于服務(wù)器的性能參數(shù)是固定的,在大規(guī)模數(shù)據(jù)量的情況下,導(dǎo)致發(fā)生存儲空間不足或者文件系統(tǒng)性能受限異常退出等性能問題。
技術(shù)實(shí)現(xiàn)思路
1、基于此,有必要針對上述技術(shù)問題,提供一種能夠避免出現(xiàn)存儲空間不足或異常退出等性能問題,提高數(shù)據(jù)遷移程序健壯性的數(shù)據(jù)遷移方法、裝置、計(jì)算機(jī)設(shè)備、計(jì)算機(jī)可讀存儲介質(zhì)和計(jì)算機(jī)程序產(chǎn)品。
2、第一方面,本申請?zhí)峁┝艘环N數(shù)據(jù)遷移方法,所述方法,包括:
3、獲取源端數(shù)據(jù)庫的各數(shù)據(jù)庫表,查詢所述數(shù)據(jù)庫表的目標(biāo)切片大小;所述目標(biāo)切片大小是根據(jù)所述數(shù)據(jù)庫表的平均切片大小、數(shù)據(jù)遷移配置參數(shù)以及服務(wù)器的可用內(nèi)存確定;
4、根據(jù)所述目標(biāo)切片大小,對各所述數(shù)據(jù)庫表進(jìn)行切片,得到切片信息;
5、根據(jù)所述切片信息得到目標(biāo)遷移數(shù)據(jù),將所述目標(biāo)遷移數(shù)據(jù)寫入目標(biāo)端數(shù)據(jù)庫。
6、在其中一個(gè)實(shí)施例中,所述數(shù)據(jù)遷移配置參數(shù)包括滿線程數(shù)、拷貝數(shù)、數(shù)據(jù)膨脹系數(shù),其中,拷貝數(shù)包括源端拷貝數(shù)和目標(biāo)端
7、根據(jù)所述源端拷貝數(shù)和所述目標(biāo)端拷貝數(shù),確定拷貝總數(shù);
8、基于所述服務(wù)器的可用內(nèi)存、所述滿線程數(shù)、所述數(shù)據(jù)膨脹系數(shù)和所述拷貝總數(shù),確定最大切片大小;
9、根據(jù)所述平均切片大小和所述最大切片大小,確定目標(biāo)切片大小。
10、在其中一個(gè)實(shí)施例中,所述根據(jù)所述切片信息得到目標(biāo)遷移數(shù)據(jù),將所述目標(biāo)遷移數(shù)據(jù)寫入目標(biāo)端數(shù)據(jù)庫,包括:
11、根據(jù)所述切片信息,得到切片序列化數(shù)據(jù),并將所述切片序列化數(shù)據(jù)存儲至中間存儲;
12、根據(jù)所述目標(biāo)切片大小,從所述中間存儲中獲取各所述切片序列化數(shù)據(jù);
13、根據(jù)所述切片序列化數(shù)據(jù),得到目標(biāo)遷移數(shù)據(jù),將所述目標(biāo)遷移數(shù)據(jù)寫入目標(biāo)端數(shù)據(jù)庫。
14、在其中一個(gè)實(shí)施例中,所述數(shù)據(jù)庫表攜帶有待遷移數(shù)據(jù);所述根據(jù)所述切片信息,得到切片序列化數(shù)據(jù),并將所述切片序列化數(shù)據(jù)存儲至中間存儲,包括:
15、根據(jù)所述切片信息從所述數(shù)據(jù)庫中讀取對應(yīng)的待遷移數(shù)據(jù);
16、將所述待遷移數(shù)據(jù)進(jìn)行序列化操作,得到切片序列化數(shù)據(jù);
17、按照順序?qū)⒚恳凰銮衅蛄谢瘮?shù)據(jù)存儲至所述中間存儲。
18、在其中一個(gè)實(shí)施例中,所述切片信息包括數(shù)據(jù)庫表的范圍信息;所述根據(jù)所述切片信息從所述數(shù)據(jù)庫中讀取對應(yīng)的待遷移數(shù)據(jù),包括:
19、通過多個(gè)源端線程中各所述源端線程根據(jù)各自對應(yīng)的數(shù)據(jù)庫表的范圍信息,從各所述數(shù)據(jù)庫表中讀取對應(yīng)的待遷移數(shù)據(jù);
20、所述將所述待遷移數(shù)據(jù)進(jìn)行序列化操作,得到切片序列化數(shù)據(jù),包括:
21、通過各所述源端線程將所述待遷移數(shù)據(jù)進(jìn)行序列化操作,得到每一所述源端線程對應(yīng)的切片序列化數(shù)據(jù);
22、所述中間存儲包括多個(gè)隊(duì)列;所述隊(duì)列與所述源端線程一一對應(yīng);所述按照順序?qū)⒚恳凰銮衅蛄谢瘮?shù)據(jù)存儲至所述中間存儲,包括:
23、按照各數(shù)據(jù)庫表的順序,通過各所述源端線程將各自對應(yīng)的所述切片序列化數(shù)據(jù)存儲至所述源端線程對應(yīng)的隊(duì)列中。
24、在其中一個(gè)實(shí)施例中,所述根據(jù)所述目標(biāo)切片大小,從所述中間存儲中獲取各所述切片序列化數(shù)據(jù),包括:
25、通過多個(gè)目標(biāo)端線程中各目標(biāo)端線程從目標(biāo)隊(duì)列中獲取各所述切片序列化數(shù)據(jù);其中,所述源端線程與所述目標(biāo)端線程一一對應(yīng),所述目標(biāo)隊(duì)列表征所述源端線程和所述目標(biāo)端線程對應(yīng)的隊(duì)列;
26、所述根據(jù)所述切片序列化數(shù)據(jù),得到目標(biāo)遷移數(shù)據(jù),將所述目標(biāo)遷移數(shù)據(jù)寫入目標(biāo)端數(shù)據(jù)庫,包括:
27、通過各所述目標(biāo)端線程對各所述切片序列化數(shù)據(jù)進(jìn)行反序列化操作,得到每一所述目標(biāo)端線程對應(yīng)的所述目標(biāo)遷移數(shù)據(jù),通過各所述目標(biāo)端線程將所述目標(biāo)遷移數(shù)據(jù)寫入所述目標(biāo)端數(shù)據(jù)庫。
28、第二方面,本申請還提供了一種數(shù)據(jù)遷移裝置,所述裝置包括:
29、源端讀取模塊,用于獲取源端數(shù)據(jù)庫的各數(shù)據(jù)庫表,查詢所述數(shù)據(jù)庫表的目標(biāo)切片大小;所述目標(biāo)切片大小是根據(jù)所述數(shù)據(jù)庫表的平均切片大小、數(shù)據(jù)遷移配置參數(shù)以及服務(wù)器的可用內(nèi)存確定;
30、還用于根據(jù)所述目標(biāo)切片大小,對各所述數(shù)據(jù)庫表進(jìn)行切片,得到切片信息;
31、還用于根據(jù)所述切片信息得到目標(biāo)遷移數(shù)據(jù);
32、目標(biāo)端寫入模塊,用于將所述目標(biāo)遷移數(shù)據(jù)寫入目標(biāo)端數(shù)據(jù)庫。
33、第三方面,本申請還提供了一種計(jì)算機(jī)設(shè)備,包括存儲器和處理器,所述存儲器存儲有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述的方法的步驟。
34、第四方面,本申請還提供了一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述的方法的步驟。
35、第五方面,本申請還提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述的方法的步驟。
36、上述數(shù)據(jù)遷移方法、裝置、計(jì)算機(jī)設(shè)備、計(jì)算機(jī)可讀存儲介質(zhì)和計(jì)算機(jī)程序產(chǎn)品,在進(jìn)行數(shù)據(jù)遷移之前,根據(jù)數(shù)據(jù)庫表的平均切片大小、數(shù)據(jù)遷移配置參數(shù)以及服務(wù)器的可用內(nèi)存確定目標(biāo)切片大小,也即通過服務(wù)器性能參數(shù)確定了進(jìn)行數(shù)據(jù)遷移時(shí)的目標(biāo)切片大小。通過查詢數(shù)據(jù)庫表的目標(biāo)切片大小,按照目標(biāo)切片大小對各數(shù)據(jù)庫表進(jìn)行切分,根據(jù)切片信息得到目標(biāo)遷移數(shù)據(jù),將目標(biāo)遷移數(shù)據(jù)寫入目標(biāo)端數(shù)據(jù)庫。在對各數(shù)據(jù)庫表進(jìn)行切片時(shí)已經(jīng)考慮了服務(wù)器的性能參數(shù),從而避免了在進(jìn)行數(shù)據(jù)遷移過程中因服務(wù)器性能參數(shù)不夠?qū)е碌漠惓V袛唷?/p>本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
1.一種數(shù)據(jù)遷移方法,其特征在于,所述方法,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)遷移配置參數(shù)包括滿線程數(shù)、拷貝數(shù)、數(shù)據(jù)膨脹系數(shù),其中,拷貝數(shù)包括源端拷貝數(shù)和目標(biāo)端拷貝數(shù);所述目標(biāo)切片大小的確定方式,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述切片信息得到目標(biāo)遷移數(shù)據(jù),將所述目標(biāo)遷移數(shù)據(jù)寫入目標(biāo)端數(shù)據(jù)庫,包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述數(shù)據(jù)庫表攜帶有待遷移數(shù)據(jù);所述根據(jù)所述切片信息,得到切片序列化數(shù)據(jù),并將所述切片序列化數(shù)據(jù)存儲至中間存儲,包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述切片信息包括數(shù)據(jù)庫表的范圍信息;所述根據(jù)所述切片信息從所述數(shù)據(jù)庫中讀取對應(yīng)的待遷移數(shù)據(jù),包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述根據(jù)所述目標(biāo)切片大小,從所述中間存儲中獲取各所述切片序列化數(shù)據(jù),包括:
7.一種數(shù)據(jù)遷移裝置,其特征在于,所述裝置包括:
8.一種計(jì)算機(jī)設(shè)備,包括存儲器和處理器,所述存儲器存儲有計(jì)算機(jī)程序,其特征在于,所述處理
9.一種計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至6中任一項(xiàng)所述的方法的步驟。
10.一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至6中任一項(xiàng)所述的方法的步驟。
...【技術(shù)特征摘要】
1.一種數(shù)據(jù)遷移方法,其特征在于,所述方法,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)遷移配置參數(shù)包括滿線程數(shù)、拷貝數(shù)、數(shù)據(jù)膨脹系數(shù),其中,拷貝數(shù)包括源端拷貝數(shù)和目標(biāo)端拷貝數(shù);所述目標(biāo)切片大小的確定方式,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述切片信息得到目標(biāo)遷移數(shù)據(jù),將所述目標(biāo)遷移數(shù)據(jù)寫入目標(biāo)端數(shù)據(jù)庫,包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述數(shù)據(jù)庫表攜帶有待遷移數(shù)據(jù);所述根據(jù)所述切片信息,得到切片序列化數(shù)據(jù),并將所述切片序列化數(shù)據(jù)存儲至中間存儲,包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述切片信息包括數(shù)據(jù)庫表的范圍信息;所述根據(jù)所述切片信息從所述數(shù)據(jù)庫中讀...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:胡立亮,
申請(專利權(quán))人:天翼云科技有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。