[發明專利]一種基于canal的數據庫雙向同步方法、介質及設備有效
| 申請號: | 202211313441.8 | 申請日: | 2022-10-25 |
| 公開(公告)號: | CN115470302B | 公開(公告)日: | 2023-05-09 |
| 發明(設計)人: | 劉鵬;李凡平;王堃 | 申請(專利權)人: | 以薩技術股份有限公司 |
| 主分類號: | G06F16/27 | 分類號: | G06F16/27;G06F9/54 |
| 代理公司: | 北京鍾維聯合知識產權代理有限公司 11579 | 代理人: | 周利星 |
| 地址: | 266000 山東省青島*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 canal 數據庫 雙向 同步 方法 介質 設備 | ||
1.一種基于canal的數據庫雙向同步方法,其特征在于,應用于第一系統,所述第一系統包括兩個目標服務器及一個中間服務,兩個所述目標服務器之間無法進行直接通信連接,所述中間服務中配置有每一所述目標服務器對應的消息存儲空間,每一所述目標服務器均與專屬存儲空間及同步存儲空間通信連接;所述專屬存儲空間為所述目標服務器對應配置的消息存儲空間;所述同步存儲空間為與所述目標服務器進行數據同步的目標服務器對應的消息存儲空間;
每一所述目標服務器用于實現下述方法:
當目標數據庫發生變更操作時,根據操作日志生成同步數據;所述同步數據包括數據主鍵、操作標識及變更后的數據本體;所述目標數據庫為所述目標服務器中需要進行數據同步的數據庫;所述操作標識包括對目標數據庫的刪除操作標識、增加操作標識及修改操作標識;
將所述同步數據發送至對應的所述專屬存儲空間中;
按照第一預設周期獲取所述同步存儲空間中新增的同步數據;
將所述新增的同步數據對應的匹配標識與所述目標數據庫中的每一條數據對應的匹配標識進行匹配處理;以確定所述新增的同步數據是否為目標同步數據;所述匹配標識包括所述新增的同步數據的數據主鍵及變更后的數據本體;
根據所述目標同步數據中對應的所述操作標識,將所述目標同步數據中對應的數據主鍵及變更后的數據本體同步至所述目標數據庫中;
所述匹配處理包括如下步驟:
當所述新增的同步數據的操作標識為刪除操作標識,且存在所述同步數據的匹配標識與所述目標數據庫中的一條數據的匹配標識相同時,將所述新增的同步數據確定為目標同步數據;
當所述同步數據的操作標識為修改操作標識或增加操作標識,且所述同步數據的匹配標識與所述目標數據庫中的每一條數據的匹配標識均不相同時,將所述新增的同步數據確定為目標同步數據;
所述匹配處理還包括如下步驟:
當所述同步數據的操作標識為刪除操作標識,且所述同步數據的匹配標識與所述目標數據庫中的每一條數據的匹配標識均不相同時,將所述目標同步數據確定為空集;
當所述同步數據的操作標識為修改操作標識或增加操作標識,且所述匹配標識與所述目標數據庫中的任一條數據的匹配標識相同時,將所述目標同步數據確定為空集;
所述目標數據庫為MySQL數據庫,所述目標服務器配置有同步消息隊列及Canal模塊;所述Canal模塊分別與所述MySQL數據庫及同步消息隊列通信連接;
當目標數據庫發生變更操作時,根據操作日志生成同步數據,包括:
當所述MySQL數據庫發生變更操作時,生成對應的操作日志;所述MySQL數據庫已開啟binlog寫入功能;
所述Canal模塊將所述操作日志轉化為同步數據,并將所述同步數據發送至所述同步消息隊列中。
2.根據權利要求1所述的方法,其特征在于,所述目標服務器還配置有Zookeeper模塊,所述同步消息隊列為kafka消息隊列;所述Zookeeper模塊用于為所述kafka消息隊列提供集群管理服務。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于以薩技術股份有限公司,未經以薩技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211313441.8/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種時鐘信號提純優化裝置
- 下一篇:
- 同類專利
- 專利分類





