[发明专利]一种基于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.vipzhuanli.com/pat/books/202211313441.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种时钟信号提纯优化装置
- 下一篇:一种对酰胺基苯磺酰基类化合物及其应用