本發(fā)明涉及計(jì)算機(jī),尤其涉及一種數(shù)據(jù)同步的方法和裝置。
背景技術(shù):
1、目前,在進(jìn)行mysql(關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))數(shù)據(jù)庫(kù)的數(shù)據(jù)遷移時(shí),通常采用數(shù)據(jù)遷移工具進(jìn)行存量數(shù)據(jù)和增量數(shù)據(jù)兩部分?jǐn)?shù)據(jù)的遷移。在數(shù)據(jù)遷移時(shí),在數(shù)據(jù)遷移的那一時(shí)刻開(kāi)始作為存量與增量數(shù)據(jù)的切割點(diǎn),然后先遷移全量數(shù)據(jù),待全量數(shù)據(jù)遷移完成之后,通過(guò)遷移開(kāi)始時(shí)記錄的時(shí)間點(diǎn)查找到對(duì)應(yīng)的增量數(shù)據(jù)點(diǎn)位進(jìn)行增量數(shù)據(jù)同步遷移。
2、但是在采用上述方法進(jìn)行數(shù)據(jù)遷移時(shí),若磁盤(pán)空間較小,會(huì)停止業(yè)務(wù)數(shù)據(jù)的寫(xiě)入,待數(shù)據(jù)遷移后才能進(jìn)行后續(xù)的操作,影響業(yè)務(wù)進(jìn)行。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明實(shí)施例提供一種數(shù)據(jù)同步的方法,能夠通過(guò)從庫(kù)存儲(chǔ)增量數(shù)據(jù),避免由于數(shù)據(jù)庫(kù)主庫(kù)空間不足造成的業(yè)務(wù)中斷,保障了業(yè)務(wù)的正常進(jìn)行的同時(shí)實(shí)現(xiàn)數(shù)據(jù)的遷移。
2、為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的第一方面,提供了一種數(shù)據(jù)同步的方法,包括:
3、獲取數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間數(shù)據(jù)、數(shù)據(jù)增長(zhǎng)速度和數(shù)據(jù)遷移速度數(shù)據(jù);
4、基于所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間數(shù)據(jù)、所述數(shù)據(jù)增長(zhǎng)速度和數(shù)據(jù)遷移速度數(shù)據(jù)計(jì)算增量數(shù)據(jù)存儲(chǔ)參數(shù);
5、基于所述增量數(shù)據(jù)存儲(chǔ)參數(shù)和所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間數(shù)據(jù)確定目標(biāo)從庫(kù)的數(shù)量;
6、根據(jù)所述目標(biāo)從庫(kù)的數(shù)量和預(yù)設(shè)存儲(chǔ)數(shù)據(jù)量,依次在所述目標(biāo)從庫(kù)中存儲(chǔ)遷移數(shù)據(jù),所述遷移數(shù)據(jù)包括存量數(shù)據(jù)和增量數(shù)據(jù);
7、基于所述遷移數(shù)據(jù)進(jìn)行數(shù)據(jù)同步操作。
8、可選地,所述數(shù)據(jù)遷移速度數(shù)據(jù)包括存量數(shù)據(jù)遷移速度和增量數(shù)據(jù)遷移速度;所述基于所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間數(shù)據(jù)、所述數(shù)據(jù)增長(zhǎng)速度和數(shù)據(jù)遷移速度數(shù)據(jù)計(jì)算增量數(shù)據(jù)存儲(chǔ)參數(shù),包括:
9、基于所述存量數(shù)據(jù)遷移速度計(jì)算存量數(shù)據(jù)遷移時(shí)長(zhǎng);
10、基于所述增量數(shù)據(jù)遷移速度計(jì)算增量數(shù)據(jù)遷移時(shí)長(zhǎng);
11、基于所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間數(shù)據(jù)和所述數(shù)據(jù)增長(zhǎng)速度計(jì)算數(shù)據(jù)庫(kù)空間耗盡所需時(shí)長(zhǎng);
12、基于所述存量數(shù)據(jù)遷移時(shí)長(zhǎng)、所述增量數(shù)據(jù)遷移時(shí)長(zhǎng)、所述數(shù)據(jù)增長(zhǎng)速度和所述數(shù)據(jù)庫(kù)空間耗盡所需時(shí)長(zhǎng),計(jì)算增量數(shù)據(jù)存儲(chǔ)參數(shù)。
13、可選地,所述基于所述增量數(shù)據(jù)存儲(chǔ)參數(shù)和所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間數(shù)據(jù)確定目標(biāo)從庫(kù)的數(shù)量,包括:
14、當(dāng)所述增量數(shù)據(jù)存儲(chǔ)參數(shù)小于0時(shí),確定目標(biāo)從庫(kù)的數(shù)量為1;
15、當(dāng)所述增量數(shù)據(jù)存儲(chǔ)參數(shù)大于等于0且小于等于所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間時(shí),確定目標(biāo)從庫(kù)的數(shù)量為2;
16、當(dāng)所述增量數(shù)據(jù)存儲(chǔ)參數(shù)大于所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間時(shí),計(jì)算目標(biāo)從庫(kù)的數(shù)量公式為:
17、目標(biāo)從庫(kù)的數(shù)量=(增量數(shù)據(jù)存儲(chǔ)參數(shù)/數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間)+2
18、其中,增量數(shù)據(jù)存儲(chǔ)參數(shù)/數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間的值取整數(shù)部分。
19、可選地,所述根據(jù)所述目標(biāo)從庫(kù)的數(shù)量和預(yù)設(shè)存儲(chǔ)數(shù)據(jù)量,依次在所述目標(biāo)從庫(kù)中存儲(chǔ)遷移數(shù)據(jù),所述遷移數(shù)據(jù)包括存量數(shù)據(jù)和增量數(shù)據(jù)之前,所述方法包括:
20、基于所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間和所述目標(biāo)從庫(kù)的數(shù)量計(jì)算所述預(yù)設(shè)存儲(chǔ)數(shù)據(jù)量。
21、可選地,所述根據(jù)所述目標(biāo)從庫(kù)的數(shù)量和預(yù)設(shè)存儲(chǔ)數(shù)據(jù)量,依次在所述目標(biāo)從庫(kù)中存儲(chǔ)遷移數(shù)據(jù),所述遷移數(shù)據(jù)包括存量數(shù)據(jù)和增量數(shù)據(jù),包括:
22、將所述存量數(shù)據(jù)存儲(chǔ)在所述目標(biāo)從庫(kù)中的第一個(gè)從庫(kù);
23、當(dāng)所述目標(biāo)從庫(kù)的數(shù)量為1時(shí),將所述增量數(shù)據(jù)存儲(chǔ)至所述目標(biāo)從庫(kù)中;
24、當(dāng)所述目標(biāo)從庫(kù)的數(shù)量大于等于2時(shí),按照所述預(yù)設(shè)存儲(chǔ)數(shù)據(jù)量依次在所述目標(biāo)從庫(kù)中存儲(chǔ)所述增量數(shù)據(jù)。
25、可選地,所述當(dāng)所述目標(biāo)從庫(kù)的數(shù)量大于等于2時(shí),按照所述預(yù)設(shè)存儲(chǔ)數(shù)據(jù)量依次在所述目標(biāo)從庫(kù)中存儲(chǔ)所述增量數(shù)據(jù)之后,所述方法還包括:
26、刪除所述目標(biāo)從庫(kù)中存儲(chǔ)的目標(biāo)數(shù)據(jù),所述目標(biāo)數(shù)據(jù)為所述目標(biāo)從庫(kù)的上一個(gè)從庫(kù)中已存儲(chǔ)的增量數(shù)據(jù)。
27、可選地,所述刪除所述目標(biāo)從庫(kù)中存儲(chǔ)的目標(biāo)數(shù)據(jù),包括:
28、獲取所述目標(biāo)從庫(kù)的上一個(gè)從庫(kù)的增量數(shù)據(jù)存儲(chǔ)時(shí)間戳;
29、刪除所述目標(biāo)從庫(kù)中存儲(chǔ)的所述時(shí)間戳之前的增量數(shù)據(jù)。
30、根據(jù)本發(fā)明實(shí)施例的第二方面,提供了一種數(shù)據(jù)同步的裝置,包括:
31、獲取模塊,用于獲取數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間數(shù)據(jù)、數(shù)據(jù)增長(zhǎng)速度和數(shù)據(jù)遷移速度數(shù)據(jù);
32、計(jì)算模塊,用于基于所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間數(shù)據(jù)、所述數(shù)據(jù)增長(zhǎng)速度和數(shù)據(jù)遷移速度數(shù)據(jù)計(jì)算增量數(shù)據(jù)存儲(chǔ)參數(shù);
33、確定模塊,用于基于所述增量數(shù)據(jù)存儲(chǔ)參數(shù)和所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間數(shù)據(jù)確定目標(biāo)從庫(kù)的數(shù)量;
34、存儲(chǔ)模塊,用于根據(jù)所述目標(biāo)從庫(kù)的數(shù)量和預(yù)設(shè)存儲(chǔ)數(shù)據(jù)量,依次在所述目標(biāo)從庫(kù)中存儲(chǔ)遷移數(shù)據(jù),所述遷移數(shù)據(jù)包括存量數(shù)據(jù)和增量數(shù)據(jù);
35、同步模塊,用于基于所述遷移數(shù)據(jù)進(jìn)行數(shù)據(jù)同步操作。
36、可選地,所述數(shù)據(jù)遷移速度數(shù)據(jù)包括存量數(shù)據(jù)遷移速度和增量數(shù)據(jù)遷移速度;所述計(jì)算模塊,用于基于所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間數(shù)據(jù)、所述數(shù)據(jù)增長(zhǎng)速度和數(shù)據(jù)遷移速度數(shù)據(jù)計(jì)算增量數(shù)據(jù)存儲(chǔ)參數(shù),包括:
37、所述計(jì)算模塊,用于基于所述存量數(shù)據(jù)遷移速度計(jì)算存量數(shù)據(jù)遷移時(shí)長(zhǎng);基于所述增量數(shù)據(jù)遷移速度計(jì)算增量數(shù)據(jù)遷移時(shí)長(zhǎng);基于所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間數(shù)據(jù)和所述數(shù)據(jù)增長(zhǎng)速度計(jì)算數(shù)據(jù)庫(kù)空間耗盡所需時(shí)長(zhǎng);基于所述存量數(shù)據(jù)遷移時(shí)長(zhǎng)、所述增量數(shù)據(jù)遷移時(shí)長(zhǎng)、所述數(shù)據(jù)增長(zhǎng)速度和所述數(shù)據(jù)庫(kù)空間耗盡所需時(shí)長(zhǎng),計(jì)算增量數(shù)據(jù)存儲(chǔ)參數(shù)。
38、可選地,所述確定模塊,用于基于所述增量數(shù)據(jù)存儲(chǔ)參數(shù)和所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間數(shù)據(jù)確定目標(biāo)從庫(kù)的數(shù)量,包括:
39、所述確定模塊,用于當(dāng)所述增量數(shù)據(jù)存儲(chǔ)參數(shù)小于0時(shí),確定目標(biāo)從庫(kù)的數(shù)量為1;當(dāng)所述增量數(shù)據(jù)存儲(chǔ)參數(shù)大于等于0且小于等于所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間時(shí),確定目標(biāo)從庫(kù)的數(shù)量為2;所述計(jì)算模塊,用于當(dāng)所述增量數(shù)據(jù)存儲(chǔ)參數(shù)大于所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間時(shí),計(jì)算目標(biāo)從庫(kù)的數(shù)量公式為:目標(biāo)從庫(kù)的數(shù)量=(增量數(shù)據(jù)存儲(chǔ)參數(shù)/數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間)+2;其中,增量數(shù)據(jù)存儲(chǔ)參數(shù)/數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間的值取整數(shù)部分。
40、可選地,裝置還包括:所述計(jì)算模塊,用于基于所述數(shù)據(jù)庫(kù)剩余存儲(chǔ)空間和所述目標(biāo)從庫(kù)的數(shù)量計(jì)算所述預(yù)設(shè)存儲(chǔ)數(shù)據(jù)量。
41、可選地,所述存儲(chǔ)模塊,用于根據(jù)所述目標(biāo)從庫(kù)的數(shù)量和預(yù)設(shè)存儲(chǔ)數(shù)據(jù)量,依次在所述目標(biāo)從庫(kù)中存儲(chǔ)遷移數(shù)據(jù),所述遷移數(shù)據(jù)包括存量數(shù)據(jù)和增量數(shù)據(jù),包括:
42、所述存儲(chǔ)模塊,用于將所述存量數(shù)據(jù)存儲(chǔ)在所述目標(biāo)從庫(kù)中的第一個(gè)從庫(kù);當(dāng)所述目標(biāo)從庫(kù)的數(shù)量為1時(shí),將所述增量數(shù)據(jù)存儲(chǔ)至所述目標(biāo)從庫(kù)中;當(dāng)所述目標(biāo)從庫(kù)的數(shù)量大于等于2時(shí),按照所述預(yù)設(shè)存儲(chǔ)數(shù)據(jù)量依次在所述目標(biāo)從庫(kù)中存儲(chǔ)所述增量數(shù)據(jù)。
43、可選地,所述裝置還包括:刪除模塊,用于刪除所述目標(biāo)從庫(kù)中存儲(chǔ)的目標(biāo)數(shù)據(jù),所述目標(biāo)數(shù)據(jù)為所述目標(biāo)從庫(kù)的上一個(gè)從庫(kù)中已存儲(chǔ)的增量數(shù)據(jù)。
44、可選地,所述刪除模塊,用于刪除所述目標(biāo)從庫(kù)中存儲(chǔ)的目標(biāo)數(shù)據(jù),包括:獲取模塊,用于獲取所述目標(biāo)從庫(kù)的上一個(gè)從庫(kù)的增量數(shù)據(jù)存儲(chǔ)時(shí)間戳;所述刪除模塊,用于刪除所述目標(biāo)從庫(kù)中存儲(chǔ)的所述時(shí)間戳之前的增量數(shù)據(jù)。
45、根據(jù)本發(fā)明實(shí)施例的第三方面,提供一種電子設(shè)備,包括:
46、一個(gè)或多個(gè)處理器;存儲(chǔ)裝置,用于存儲(chǔ)一個(gè)或多個(gè)程序,
47、當(dāng)所述一個(gè)或多個(gè)程序被所述一個(gè)或多個(gè)處理器執(zhí)行,使得所述一個(gè)或多個(gè)處理器實(shí)現(xiàn)本發(fā)明實(shí)施例第一方面提供的方法。
48、根據(jù)本發(fā)明實(shí)施例的第四方面,提供一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)本發(fā)明實(shí)施例第一方面提供的方法。
49、上述發(fā)明中的一個(gè)實(shí)施例具有如下優(yōu)點(diǎn)或有益效果:通過(guò)計(jì)算的增量數(shù)據(jù)存儲(chǔ)參數(shù)確定目標(biāo)從庫(kù)的數(shù)量,能夠通過(guò)目標(biāo)從庫(kù)存儲(chǔ)增量數(shù)據(jù),用于后續(xù)的數(shù)據(jù)遷移,避免了數(shù)據(jù)庫(kù)主庫(kù)存儲(chǔ)空間不足無(wú)法進(jìn)行數(shù)據(jù)遷移,不得不停止業(yè)務(wù)的情況,保障了業(yè)務(wù)的正常進(jìn)行以及數(shù)據(jù)遷移流程的正常進(jìn)行。