亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

Mysql數(shù)據(jù)庫同步方法與流程

文檔序號(hào):40466805發(fā)布日期:2024-12-27 09:32閱讀:3來源:國知局
Mysql數(shù)據(jù)庫同步方法與流程

本發(fā)明屬于計(jì)算機(jī),具體涉及一種mysql數(shù)據(jù)庫同步方法。


背景技術(shù):

1、目前數(shù)據(jù)庫同步都是采用數(shù)據(jù)庫主備復(fù)制的方式進(jìn)行數(shù)據(jù)同步,同時(shí)大部分同步軟件都會(huì)以主備中的一臺(tái)作為同步源,很難實(shí)現(xiàn)雙向同步。

2、針對(duì)雙向數(shù)據(jù)同步的過程中數(shù)據(jù)定向修正,循環(huán)同步,主鍵沖突等問題沒有很好的解決方案。


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

1、鑒于以上存在的問題,本發(fā)明提供一種mysql數(shù)據(jù)庫同步方法。

2、為解決上述技術(shù)問題,本發(fā)明采用如下的技術(shù)方案:

3、一種mysql數(shù)據(jù)庫同步方法,應(yīng)用于mysql數(shù)據(jù)庫同步系統(tǒng),所述mysql數(shù)據(jù)庫同步系統(tǒng)包括主設(shè)備和從設(shè)備,所述主設(shè)備進(jìn)一步包括本地?cái)?shù)據(jù)庫、消息產(chǎn)生模塊、消息接收模塊、業(yè)務(wù)處理模塊和執(zhí)行模塊,所述業(yè)務(wù)處理模塊進(jìn)一步包括中斷單元和數(shù)據(jù)清洗單元,所述從設(shè)備進(jìn)一步包括目標(biāo)數(shù)據(jù)庫,包括以下步驟:

4、s1,所述消息產(chǎn)生模塊中的datasync程序獲取本地?cái)?shù)據(jù)庫中的sql變動(dòng),將獲取到的變動(dòng)數(shù)據(jù)庫sql以“transaction_message”事務(wù)消息的形式發(fā)送出去;

5、s2,所述消息接收模塊進(jìn)入loop循環(huán),監(jiān)聽并接收“transaction_message”事務(wù)消息;

6、s3,當(dāng)接收到事務(wù)消息后,中斷單元對(duì)數(shù)據(jù)體進(jìn)行是否本地已執(zhí)行進(jìn)行判斷,若已執(zhí)行,則執(zhí)行中斷操作并退出;若未執(zhí)行,對(duì)數(shù)據(jù)體進(jìn)行處理;

7、s4,數(shù)據(jù)清洗單元它從中斷單元獲取到已經(jīng)處理完畢的“transaction-message”,進(jìn)行拆解,使其轉(zhuǎn)化為具體可執(zhí)行的sql語句集合;數(shù)據(jù)清洗單元檢查用戶是否進(jìn)行了清洗規(guī)則的配置,若用戶配置了清洗規(guī)則,數(shù)據(jù)清洗單元將這些語句與規(guī)則逐一進(jìn)行對(duì)照,進(jìn)行相應(yīng)的內(nèi)容替換和修改;

8、s5,執(zhí)行模塊與目標(biāo)數(shù)據(jù)庫建立穩(wěn)定的連接,將清洗完成的可執(zhí)行sql語句準(zhǔn)確地執(zhí)行到目標(biāo)數(shù)據(jù)庫中,進(jìn)而完成數(shù)據(jù)同步動(dòng)作。

9、一種可能的實(shí)施方式中,s1中所述消息產(chǎn)生模塊中的datasync程序獲取本地?cái)?shù)據(jù)庫中的sql變動(dòng),將獲取到的變動(dòng)數(shù)據(jù)庫sql以“transaction_message”事務(wù)消息的形式發(fā)送出去具體包括:獲取基于開源數(shù)據(jù)同步框架canal以及消息隊(duì)列rabbitmq實(shí)現(xiàn),當(dāng)mysql配置主備后canal將自己偽裝為從庫mysqlslave,本地?cái)?shù)據(jù)庫作為主庫mysql?master,向mysql?master發(fā)送dump協(xié)議請(qǐng)求,mysqlmaster收到dump協(xié)議請(qǐng)求后,開始推送binary?log給canal,canal接收并解析binlog日志,得到變更的數(shù)據(jù),將獲取到的變動(dòng)數(shù)據(jù)庫sql以“transaction_message”事務(wù)消息的形式發(fā)送到rabbitmg消息隊(duì)列中。

10、一種可能的實(shí)施方式中,s2中所述監(jiān)聽并接收“transaction_message”事務(wù)消息包括:

11、消息接收模塊接收rabbitmq中產(chǎn)生的數(shù)據(jù)變更“transaction_message”事務(wù)消息,并將原始消息體進(jìn)行解析轉(zhuǎn)換成業(yè)務(wù)可用的sql語句,再進(jìn)行封裝為可用數(shù)據(jù)體交由業(yè)務(wù)處理模塊處理。

12、一種可能的實(shí)施方式中,s3中所述當(dāng)接收到事務(wù)消息后,中斷單元對(duì)數(shù)據(jù)體進(jìn)行是否本地已執(zhí)行進(jìn)行判斷,若已執(zhí)行,則執(zhí)行中斷操作并退出;若未執(zhí)行,對(duì)數(shù)據(jù)體進(jìn)行處理包括:通過表記錄標(biāo)記的方式對(duì)該數(shù)據(jù)體進(jìn)行標(biāo)號(hào)并記錄數(shù)據(jù)庫表sync-sql中,若在本地?cái)?shù)據(jù)庫中,發(fā)現(xiàn)該數(shù)據(jù)體的標(biāo)記已然存在于表中,則執(zhí)行中斷操作并退出;反之,如果未找到該數(shù)據(jù)體的標(biāo)記,將“transaction-message”拆分具體內(nèi)部sql,把其中的id替換成分布式,并生成一條“sync-sql”記錄,將生成的“sync-sql”記錄合并到“transaction-message”的頭部,然后插入“sync-sql記錄”到本地?cái)?shù)據(jù)庫中。

13、一種可能的實(shí)施方式中,s5,執(zhí)行模塊與目標(biāo)數(shù)據(jù)庫建立穩(wěn)定的連接,將清洗完成的可執(zhí)行sql語句準(zhǔn)確地執(zhí)行到目標(biāo)數(shù)據(jù)庫中,進(jìn)而完成數(shù)據(jù)同步動(dòng)作中包括確定數(shù)據(jù)庫類型和版本。

14、一種可能的實(shí)施方式中,s5,執(zhí)行模塊與目標(biāo)數(shù)據(jù)庫建立穩(wěn)定的連接,將清洗完成的可執(zhí)行sql語句準(zhǔn)確地執(zhí)行到目標(biāo)數(shù)據(jù)庫中,進(jìn)而完成數(shù)據(jù)同步動(dòng)作中包括配置連接參數(shù)。

15、一種可能的實(shí)施方式中,s5,執(zhí)行模塊與目標(biāo)數(shù)據(jù)庫建立穩(wěn)定的連接,將清洗完成的可執(zhí)行sql語句準(zhǔn)確地執(zhí)行到目標(biāo)數(shù)據(jù)庫中,進(jìn)而完成數(shù)據(jù)同步動(dòng)作中包括進(jìn)行連接池管理。

16、采用本發(fā)明具有如下的有益效果:可以有效的接收到數(shù)據(jù)庫數(shù)據(jù)變動(dòng)消息,將數(shù)據(jù)消息進(jìn)行sql解析、數(shù)據(jù)過濾、數(shù)據(jù)修正等處理后執(zhí)行到目標(biāo)數(shù)據(jù)庫中完成數(shù)據(jù)同步,且該系統(tǒng)內(nèi)部業(yè)務(wù)處理模塊會(huì)進(jìn)行循環(huán)中斷判斷防止數(shù)據(jù)循環(huán)同步。



技術(shù)特征:

1.一種mysql數(shù)據(jù)庫同步方法,其特征在于,應(yīng)用于mysql數(shù)據(jù)庫同步系統(tǒng),所述mysql數(shù)據(jù)庫同步系統(tǒng)包括主設(shè)備和從設(shè)備,所述主設(shè)備進(jìn)一步包括本地?cái)?shù)據(jù)庫、消息產(chǎn)生模塊、消息接收模塊、業(yè)務(wù)處理模塊和執(zhí)行模塊,所述業(yè)務(wù)處理模塊進(jìn)一步包括中斷單元和數(shù)據(jù)清洗單元,所述從設(shè)備進(jìn)一步包括目標(biāo)數(shù)據(jù)庫,包括以下步驟:

2.如權(quán)利要求1所述的mysql數(shù)據(jù)庫同步方法,其特征在于,s1中所述消息產(chǎn)生模塊中的datasync程序獲取本地?cái)?shù)據(jù)庫中的sql變動(dòng),將獲取到的變動(dòng)數(shù)據(jù)庫sql以“transaction_message”事務(wù)消息的形式發(fā)送出去具體包括:獲取基于開源數(shù)據(jù)同步框架canal以及消息隊(duì)列rabbitmq實(shí)現(xiàn),當(dāng)mysql配置主備后canal將自己偽裝為從庫mysqlslave,本地?cái)?shù)據(jù)庫作為主庫mysql?master,向mysql?master發(fā)送dump協(xié)議請(qǐng)求,mysqlmaster收到dump協(xié)議請(qǐng)求后,開始推送binary?log給canal,canal接收并解析binlog日志,得到變更的數(shù)據(jù),將獲取到的變動(dòng)數(shù)據(jù)庫sql以“transaction_message”事務(wù)消息的形式發(fā)送到rabbitmg消息隊(duì)列中。

3.如權(quán)利要求2所述的mysql數(shù)據(jù)庫同步方法,其特征在于,s2中所述監(jiān)聽并接收“transaction_message”事務(wù)消息包括:

4.如權(quán)利要求1所述的mysql數(shù)據(jù)庫同步方法,其特征在于,s3中所述當(dāng)接收到事務(wù)消息后,中斷單元對(duì)數(shù)據(jù)體進(jìn)行是否本地已執(zhí)行進(jìn)行判斷,若已執(zhí)行,則執(zhí)行中斷操作并退出;若未執(zhí)行,對(duì)數(shù)據(jù)體進(jìn)行處理包括:通過表記錄標(biāo)記的方式對(duì)該數(shù)據(jù)體進(jìn)行標(biāo)號(hào)并記錄數(shù)據(jù)庫表sync-sql中,若在本地?cái)?shù)據(jù)庫中,發(fā)現(xiàn)該數(shù)據(jù)體的標(biāo)記已然存在于表中,則執(zhí)行中斷操作并退出;反之,如果未找到該數(shù)據(jù)體的標(biāo)記,將“transaction-message”拆分具體內(nèi)部sql,把其中的id替換成分布式,并生成一條“sync-sql”記錄,將生成的“sync-sql”記錄合并到“transaction-message”的頭部,然后插入“sync-sql記錄”到本地?cái)?shù)據(jù)庫中。

5.如權(quán)利要求1所述的mysql數(shù)據(jù)庫同步方法,其特征在于,s5,執(zhí)行模塊與目標(biāo)數(shù)據(jù)庫建立穩(wěn)定的連接,將清洗完成的可執(zhí)行sql語句準(zhǔn)確地執(zhí)行到目標(biāo)數(shù)據(jù)庫中,進(jìn)而完成數(shù)據(jù)同步動(dòng)作中包括確定數(shù)據(jù)庫類型和版本。

6.如權(quán)利要求1所述的mysql數(shù)據(jù)庫同步方法,其特征在于,s5,執(zhí)行模塊與目標(biāo)數(shù)據(jù)庫建立穩(wěn)定的連接,將清洗完成的可執(zhí)行sql語句準(zhǔn)確地執(zhí)行到目標(biāo)數(shù)據(jù)庫中,進(jìn)而完成數(shù)據(jù)同步動(dòng)作中包括配置連接參數(shù)。

7.如權(quán)利要求1所述的mysql數(shù)據(jù)庫同步方法,其特征在于,s5,執(zhí)行模塊與目標(biāo)數(shù)據(jù)庫建立穩(wěn)定的連接,將清洗完成的可執(zhí)行sql語句準(zhǔn)確地執(zhí)行到目標(biāo)數(shù)據(jù)庫中,進(jìn)而完成數(shù)據(jù)同步動(dòng)作中包括進(jìn)行連接池管理。


技術(shù)總結(jié)
本發(fā)明公開了一種Mysql數(shù)據(jù)庫同步方法,包括以下步驟:S1,所述消息產(chǎn)生模塊中的DataSync程序獲取本地?cái)?shù)據(jù)庫中的sql變動(dòng),將獲取到的變動(dòng)數(shù)據(jù)庫sql以“Transaction_message”事務(wù)消息的形式發(fā)送出去;S2,所述消息接收模塊進(jìn)入loop循環(huán),監(jiān)聽并接收“Transaction_message”事務(wù)消息;S3,當(dāng)接收到事務(wù)消息后,中斷單元對(duì)數(shù)據(jù)體進(jìn)行是否本地已執(zhí)行進(jìn)行判斷,若已執(zhí)行,則執(zhí)行中斷操作并退出;若未執(zhí)行,對(duì)數(shù)據(jù)體進(jìn)行處理;S4,數(shù)據(jù)清洗單元檢查用戶是否進(jìn)行了清洗規(guī)則的配置,若用戶配置了清洗規(guī)則,數(shù)據(jù)清洗單元將這些語句與規(guī)則逐一進(jìn)行對(duì)照,進(jìn)行相應(yīng)的內(nèi)容替換和修改;S5,執(zhí)行模塊與目標(biāo)數(shù)據(jù)庫建立穩(wěn)定的連接,將清洗完成的可執(zhí)行sql語句準(zhǔn)確地執(zhí)行到目標(biāo)數(shù)據(jù)庫中,進(jìn)而完成數(shù)據(jù)同步動(dòng)作。

技術(shù)研發(fā)人員:劉雪健,劉東方,關(guān)穎軍
受保護(hù)的技術(shù)使用者:杭州當(dāng)虹科技股份有限公司
技術(shù)研發(fā)日:
技術(shù)公布日:2024/12/26
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1