欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

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

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


背景技術(shù):

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
丁青县| 西和县| 高雄市| 海伦市| 枣庄市| 陆河县| 祁门县| 大冶市| 颍上县| 镇原县| 象州县| 通化市| 澄城县| 新野县| 开原市| 桐柏县| 吉安县| 北流市| 沙田区| 隆尧县| 乐亭县| 炎陵县| 介休市| 清涧县| 昌乐县| 凤庆县| 华安县| 兴海县| 洞口县| 新安县| 玛纳斯县| 册亨县| 嘉定区| 济源市| 济阳县| 博乐市| 芮城县| 襄汾县| 芒康县| 古交市| 宜昌市|