两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種MySQL主從集群的數(shù)據(jù)實(shí)時(shí)同步方法與裝置與流程

文檔序號(hào):40614111發(fā)布日期:2025-01-07 21:01閱讀:7來(lái)源:國(guó)知局
一種MySQL主從集群的數(shù)據(jù)實(shí)時(shí)同步方法與裝置與流程

本發(fā)明涉及數(shù)據(jù)同步的,特別是涉及一種mysql主從集群的數(shù)據(jù)實(shí)時(shí)同步方法與裝置。


背景技術(shù):

1、當(dāng)源端數(shù)據(jù)庫(kù)為mysql主從集群,目標(biāo)數(shù)據(jù)庫(kù)為同構(gòu)或異構(gòu)數(shù)據(jù)庫(kù)管理系統(tǒng),且使用數(shù)據(jù)實(shí)時(shí)同步軟件進(jìn)行數(shù)據(jù)實(shí)時(shí)同步時(shí),為了避免數(shù)據(jù)實(shí)時(shí)同步服務(wù)的中斷,保障實(shí)時(shí)同步的連續(xù)性,當(dāng)源端mysql數(shù)據(jù)庫(kù)集群的主節(jié)點(diǎn)發(fā)生故障時(shí),若mysql數(shù)據(jù)庫(kù)節(jié)點(diǎn)故障或者主同步服務(wù)故障,則需要進(jìn)行故障切換,在mysql數(shù)據(jù)庫(kù)集群中的可用數(shù)據(jù)庫(kù)節(jié)點(diǎn)上繼續(xù)進(jìn)行數(shù)據(jù)實(shí)時(shí)同步服務(wù),保障mysql數(shù)據(jù)庫(kù)到目標(biāo)數(shù)據(jù)庫(kù)的數(shù)據(jù)實(shí)時(shí)同步的高可用。

2、目前對(duì)于mysql數(shù)據(jù)庫(kù)主從集群,基于日志分析的數(shù)據(jù)實(shí)時(shí)同步軟件在進(jìn)行同步故障切換時(shí),常規(guī)方法為利用mysql的全局事務(wù)id,在mysql數(shù)據(jù)庫(kù)主從節(jié)點(diǎn)的本地binlog日志文件中進(jìn)行同步事務(wù)定位,獲取發(fā)生故障時(shí)的同步斷點(diǎn),然后基于斷點(diǎn)位置繼續(xù)進(jìn)行數(shù)據(jù)實(shí)時(shí)同步,保證同步的連續(xù)性和正確性。此方法要求mysql主從集群使用全局事務(wù)id(global?transaction?identifier,簡(jiǎn)稱為:gtid)同步模式,不適用于基于位點(diǎn)模式的集群。另一方面,基于gtid的事務(wù)定位,在故障恢復(fù)時(shí)需要從binlog文件頭開(kāi)始讀取,不能直接定位同步斷點(diǎn)。

3、鑒于此,克服該現(xiàn)有技術(shù)所存在的缺陷是本技術(shù)領(lǐng)域亟待解決的問(wèn)題。


技術(shù)實(shí)現(xiàn)思路

1、本發(fā)明要解決的技術(shù)問(wèn)題在于當(dāng)進(jìn)行數(shù)據(jù)實(shí)時(shí)同步的主節(jié)點(diǎn)需要和備用節(jié)點(diǎn)切換時(shí),如何在適用于位點(diǎn)模式的集群的前提下直接定位同步斷點(diǎn)。

2、本發(fā)明采用如下技術(shù)方案:

3、第一方面,提供一種mysql主從集群的數(shù)據(jù)實(shí)時(shí)同步方法,包括:

4、在源端創(chuàng)建輔助表t1,在目標(biāo)端創(chuàng)建主輔助表t2和備輔助表t3;其中,源端每隔預(yù)設(shè)時(shí)間對(duì)所述輔助表t1進(jìn)行更新操作;

5、對(duì)源端側(cè)的主節(jié)點(diǎn)的主日志進(jìn)行解析得到主體事務(wù),將從所述主日志中解析出來(lái)的針對(duì)于所述輔助表t1的更新操作作為主輔助事務(wù),通過(guò)所述主輔助表t2對(duì)所述主輔助事務(wù)以及目標(biāo)端所提交的主體事務(wù)進(jìn)行記錄;

6、將從源端側(cè)的備用節(jié)點(diǎn)的備用日志中解析出來(lái)的針對(duì)于所述輔助表t1中的更新操作作為備輔助事務(wù),通過(guò)所述備輔助表t3對(duì)所述備輔助事務(wù)進(jìn)行記錄;

7、當(dāng)主節(jié)點(diǎn)停止進(jìn)行主同步服務(wù)時(shí),根據(jù)所述主輔助表t2和所述備輔助表t3對(duì)所述備用節(jié)點(diǎn)的事務(wù)進(jìn)度進(jìn)行調(diào)整,使得所述備用節(jié)點(diǎn)的主體事務(wù)的進(jìn)度同所述主節(jié)點(diǎn)停用時(shí)的事務(wù)進(jìn)度一致;

8、將所述備用節(jié)點(diǎn)切換為新的主節(jié)點(diǎn),從調(diào)整后的事務(wù)進(jìn)度開(kāi)始進(jìn)行事務(wù)同步。

9、優(yōu)選的,所述通過(guò)所述主輔助表t2對(duì)所述主輔助事務(wù)以及目標(biāo)端所提交的主體事務(wù)進(jìn)行記錄,具體包括:

10、當(dāng)所述目標(biāo)端對(duì)主節(jié)點(diǎn)同步過(guò)來(lái)的所述主體事務(wù)進(jìn)行提交時(shí),將主體事務(wù)的起始位置、事務(wù)長(zhǎng)度以及事務(wù)編號(hào)記錄至所述主輔助表t2;

11、當(dāng)所述目標(biāo)端執(zhí)行所述主輔助事務(wù)時(shí),將主輔助事務(wù)起始位置、事務(wù)長(zhǎng)度和更新時(shí)間戳記錄至所述主輔助表t2。

12、優(yōu)選的,所述通過(guò)所述備輔助表t3對(duì)所述備輔助事務(wù)進(jìn)行記錄,具體包括:

13、將備輔助事務(wù)對(duì)應(yīng)的起始位置、事務(wù)長(zhǎng)度和更新時(shí)間戳記錄至所述主輔助表t3。

14、優(yōu)選的,所述當(dāng)主節(jié)點(diǎn)停止進(jìn)行主同步服務(wù)時(shí),根據(jù)所述主輔助表t2和所述備輔助表t3對(duì)所述備用節(jié)點(diǎn)的事務(wù)進(jìn)度進(jìn)行調(diào)整,使得所述備用節(jié)點(diǎn)的主體事務(wù)的進(jìn)度同所述主節(jié)點(diǎn)停用時(shí)的事務(wù)進(jìn)度一致,具體包括:

15、當(dāng)主節(jié)點(diǎn)停止進(jìn)行主同步服務(wù)時(shí),根據(jù)所述主輔助表t2獲取最后記錄的主輔助事務(wù)以及最后記錄的主體事務(wù),根據(jù)所述備輔助表t3獲取最后記錄的備輔助事務(wù);

16、獲取所述最后記錄的主輔助事務(wù)的更新時(shí)間戳tsa和最后記錄的備輔助事務(wù)的更新時(shí)間戳tsb之間的大小關(guān)系,根據(jù)所述大小關(guān)系對(duì)所述備用節(jié)點(diǎn)的事務(wù)進(jìn)度進(jìn)行一次調(diào)整;

17、獲取所述最后記錄的主輔助事務(wù)的起始位置和所述最后記錄的主體事務(wù)的起始位置的前后關(guān)系,根據(jù)所述前后關(guān)系對(duì)一次調(diào)整后的事務(wù)進(jìn)度進(jìn)行二次調(diào)整。

18、優(yōu)選的,所述根據(jù)所述大小關(guān)系對(duì)所述備用節(jié)點(diǎn)的事務(wù)進(jìn)度進(jìn)行一次調(diào)整,具體包括:

19、當(dāng)所述更新時(shí)間戳tsa大于所述更新時(shí)間戳tsb時(shí),將所述備用節(jié)點(diǎn)的事務(wù)進(jìn)度推進(jìn)至更新時(shí)間戳為tsa時(shí)所對(duì)應(yīng)的備輔助事務(wù)的起始位置;

20、當(dāng)所述更新時(shí)間戳tsa小于所述更新時(shí)間戳tsb時(shí),將所述備用節(jié)點(diǎn)的事務(wù)進(jìn)度回溯至更新時(shí)間戳為tsa時(shí)所對(duì)應(yīng)的備輔助事務(wù)的起始位置;

21、當(dāng)所述更新時(shí)間戳tsa等于所述更新時(shí)間戳tsb時(shí),則保持所述備用節(jié)點(diǎn)的事務(wù)進(jìn)度不變。

22、優(yōu)選的,所述根據(jù)所述前后關(guān)系對(duì)一次調(diào)整后的事務(wù)進(jìn)度進(jìn)行二次調(diào)整,具體包括:

23、當(dāng)所述最后記錄的主輔助事務(wù)的起始位置比所述最后記錄的主體事務(wù)的起始位置靠后時(shí),則保持所述一次調(diào)整后的事務(wù)進(jìn)度不變;

24、當(dāng)所述最后記錄的主體事務(wù)的起始位置比所述最后記錄的主輔助事務(wù)的起始位置靠前時(shí),在所述一次調(diào)整后的事務(wù)進(jìn)度的基礎(chǔ)上,備用節(jié)點(diǎn)對(duì)所述最后記錄的主體事務(wù)進(jìn)行過(guò)濾處理,從而將備用節(jié)點(diǎn)的事務(wù)進(jìn)度推進(jìn)至所述最后記錄的主體事務(wù)的下一個(gè)主體事務(wù)的起始位置。

25、優(yōu)選的,所述將所述備用節(jié)點(diǎn)切換為新的主節(jié)點(diǎn),從調(diào)整后的事務(wù)進(jìn)度開(kāi)始進(jìn)行事務(wù)同步,具體包括:

26、當(dāng)原主節(jié)點(diǎn)發(fā)生故障時(shí),將備用節(jié)點(diǎn)切換為新的主節(jié)點(diǎn),原主節(jié)點(diǎn)在設(shè)定時(shí)間內(nèi)停止使用。

27、優(yōu)選的,所述將所述備用節(jié)點(diǎn)切換為新的主節(jié)點(diǎn),從調(diào)整后的事務(wù)進(jìn)度開(kāi)始進(jìn)行事務(wù)同步,具體包括:

28、當(dāng)原節(jié)點(diǎn)和備用節(jié)點(diǎn)相互切換時(shí),備用節(jié)點(diǎn)切換為新的主節(jié)點(diǎn),并進(jìn)行事務(wù)同步,原主節(jié)點(diǎn)切換為新的備用節(jié)點(diǎn),對(duì)主體事務(wù)進(jìn)行過(guò)濾處理,并解析輔助表t1中的更新操作。

29、第二方面,提供一種mysql主從集群的數(shù)據(jù)實(shí)時(shí)同步裝置,包括至少一個(gè)處理器,以及,與所述至少一個(gè)處理器通信連接的存儲(chǔ)器;其中,所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)處理器執(zhí)行的指令,所述指令被所述處理器執(zhí)行,用于執(zhí)行所述的mysql主從集群的數(shù)據(jù)實(shí)時(shí)同步方法。

30、第三方面,本發(fā)明還提供了一種非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,該計(jì)算機(jī)可執(zhí)行指令被一個(gè)或多個(gè)處理器執(zhí)行,用于完成第一方面所述的方法。

31、第四方面,提供了一種芯片,包括:處理器和接口,用于從存儲(chǔ)器中調(diào)用并運(yùn)行存儲(chǔ)器中存儲(chǔ)的計(jì)算機(jī)程序,執(zhí)行如第一方面的方法。

32、第五方面,提供了一種包含指令的計(jì)算機(jī)程序產(chǎn)品,當(dāng)該指令在計(jì)算機(jī)或處理器上運(yùn)行時(shí),使得計(jì)算機(jī)或處理器執(zhí)行如第一方面的方法。

33、第六方面,提供了一種mysql主從集群的數(shù)據(jù)實(shí)時(shí)同步系統(tǒng),包括如第二方面的mysql主從集群的數(shù)據(jù)實(shí)時(shí)同步裝置,并使用如第一方面的mysql主從集群的數(shù)據(jù)實(shí)時(shí)同步方法。

34、本發(fā)明提供一種mysql主從集群的數(shù)據(jù)實(shí)時(shí)同步方法與裝置,創(chuàng)建輔助表t1、主輔助表t2和備輔助表t3;源端每隔預(yù)設(shè)時(shí)間對(duì)輔助表t1進(jìn)行更新操作;對(duì)主節(jié)點(diǎn)的主日志進(jìn)行解析得到主體事務(wù),將從主日志中解析出來(lái)的針對(duì)于輔助表t1的更新操作作為主輔助事務(wù),通過(guò)主輔助表t2對(duì)主輔助事務(wù)以及目標(biāo)端所提交的主體事務(wù)進(jìn)行記錄;將從備用節(jié)點(diǎn)的備用日志中解析出來(lái)的針對(duì)于輔助表t1中的更新操作作為備輔助事務(wù),通過(guò)備輔助表t3對(duì)備輔助事務(wù)進(jìn)行記錄;當(dāng)主節(jié)點(diǎn)停止進(jìn)行主同步服務(wù)時(shí),根據(jù)主輔助表t2和備輔助表t3對(duì)備用節(jié)點(diǎn)的事務(wù)進(jìn)度進(jìn)行調(diào)整,使得備用節(jié)點(diǎn)的主體事務(wù)的進(jìn)度同主節(jié)點(diǎn)停用時(shí)的事務(wù)進(jìn)度一致,備用節(jié)點(diǎn)以調(diào)整后的事務(wù)進(jìn)度開(kāi)始將主體事務(wù)同步至目標(biāo)端。其中,由于是單獨(dú)創(chuàng)建的輔助表t1,因此mysql主從集群無(wú)需局限于使用gtid同步模式,采用位點(diǎn)模式的mysql主從集群同樣適用,另一方面通過(guò)輔助表中所記錄的事務(wù)對(duì)應(yīng)的文件偏移,可以直接定位同步斷點(diǎn),無(wú)需在binlog日志的起始位置開(kāi)始讀取。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
渑池县| 高雄县| 蓝山县| 朝阳县| 屯昌县| 南涧| 临安市| 长春市| 安仁县| 普定县| 全椒县| 福鼎市| 铜川市| 万州区| 龙山县| 中牟县| 肃北| 板桥市| 新平| 永嘉县| 博罗县| 宁明县| 北海市| 株洲县| 海门市| 铅山县| 新野县| 岗巴县| 平果县| 马边| 怀化市| 文成县| 东乡| 灵寿县| 成都市| 阿鲁科尔沁旗| 绥芬河市| 砚山县| 山西省| 洛扎县| 翼城县|