(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211313441.8
(22)申请日 2022.10.25
(71)申请人 以萨技术股份有限公司
地址 266000 山东省青岛市黄岛区灵山 卫
街道办事处灵岩路7 7号
(72)发明人 刘鹏 李凡平 王堃
(74)专利代理 机构 北京锺维联合知识产权代理
有限公司 1 1579
专利代理师 周利星
(51)Int.Cl.
G06F 16/27(2019.01)
G06F 9/54(2006.01)
(54)发明名称
一种基于canal的数据库双向同步方法、 介
质及设备
(57)摘要
本发明公开了一种基于canal的数据库双向
同步方法、 介质及设备, 包括: 当目标数据库发生
变更操作时, 根据操作日志生成同步数据。 将同
步数据发送至对应的专属存储空间中。 按照第一
预设周期获取同步存储空间中新增的同步数据。
将新增的同步数据对应的匹配标识与 目标数据
库中的每一条数据对应的匹配标识进行匹配处
理。 以确定新增的同步数据是否为目标同步数
据。 将目标同步数据同步至目标数据库中。 本申
请通过中间服务作为桥梁实现两个异构网络的
通信连接。 另外, 每一目标服务器既具有同步数
据发送者的角色, 同时还具有同步数据接收者的
角色。 并且会对数据进行匹配处理, 以保证双向
同步的正常进行, 进而提高数据的一致性及完整
性。
权利要求书2页 说明书7页 附图1页
CN 115470302 A
2022.12.13
CN 115470302 A
1.一种基于canal的数据库双向同步方法, 其特征在于, 应用于第一系 统, 所述第一系
统包括两个目标服务器及一个中间服务, 两个所述目标服务器之间无法进行直接通信连
接, 所述中间服务中配置有每一所述 目标服务器对应的消息存储空间, 每一所述 目标服务
器均与专属存储空间及同步存储空间通信连接; 所述专属存储空间为所述目标服务器对应
配置的消息存储空间; 所述同步存储空间为与所述目标服务器进 行数据同步的目标服务器
对应的消息存 储空间;
每一所述目标服 务器用于实现下述方法:
当目标数据库发生变更操作时, 根据操作 日志生成同步数据; 所述同步数据包括数据
主键、 操作标识及变更后的数据本体; 所述 目标数据库为所述 目标服务器中需要进行数据
同步的数据库; 所述操作标识包括对目标数据库的删除操作标识、 增加操作标识及修改操
作标识;
将所述同步数据发送至对应的所述专属存 储空间中;
按照第一预设周期获取 所述同步存 储空间中新增的同步数据;
将所述新增的同步数据对应的匹配标识与所述目标数据库中的每一条数据对应的匹
配标识进行匹配处理; 以确定所述新增的同步数据是否为 目标同步数据; 所述匹配标识包
括所述新增的同步数据的数据主键及变更后的数据本体;
根据所述目标同步数据中对应的所述操作标识, 将所述目标同步数据中对应的数据主
键及变更后的数据本体同步至所述目标 数据库中;
所述匹配处 理包括如下步骤:
当所述新增的同步数据的操作 标识为删除操作 标识, 且存在所述同步数据的匹配标识
与所述目标数据库中的一条数据的匹配标识相同时, 将所述新增的同步数据确定为目标同
步数据;
当所述同步数据的操作 标识为修改操作 标识或增加操作标识, 且所述同步数据的匹配
标识与所述目标数据库中的每一条数据的匹配标识均不相同时, 将所述新增的同步数据确
定为目标同步数据。
2.根据权利要求1所述的方法, 其特 征在于, 所述匹配处 理还包括如下步骤:
当所述同步数据的操作 标识为删除操作 标识, 且所述同步数据的匹配标识与 所述目标
数据库中的每一条 数据的匹配标识均不相同时, 将所述目标同步数据确定为空集;
当所述同步数据的操作 标识为修改操作 标识或增加操作标识, 且所述匹配标识与 所述
目标数据库中的任一条 数据的匹配标识相同时, 将所述目标同步数据确定为空集。
3.根据权利 要求1所述的方法, 其特征在于, 所述目标数据库 为MySQL数据库, 所述目标
服务器配置有同步消息队列及Canal模块; 所述Canal模块分别与所述MySQL数据库及同步
消息队列通信连接;
当目标数据库发生变更操作时, 根据操作日志生成同步数据, 包括:
当所述MySQL数据库发生变更操作时, 生成对应的操作日志; 所述MySQL数据库已开启
binlog写入功能;
所述Canal模块将所述操作日志转化为同步数据, 并将所述同步数据发送至所述同步
消息队列中。
4.根据权利要求3所述的方法, 其特征在于, 所述目标服务器还配置有Zookeeper模块,权 利 要 求 书 1/2 页
2
CN 115470302 A
2所述同步消息队列为kafka消息队列; 所述Zookeeper模块用于为所述kafka消息队列提供
集群管理服 务。
5.根据权利要求1所述的方法, 其特征在于, 第 一目标服务器与第 二目标服务器为任意
两个进行 数据同步的所述目标服 务器;
在根据操作日志生成同步数据之前, 所述方法还 包括:
获取第一目标服务器的数据主键集A=(A1,A2,…,Ai,…,Az); 其中, Ai为所述第一目标
服务器的目标数据库中第i条数据对应的数据主键; i=1,2, …,i,…,z; z为所述第一目标
服务器的目标 数据库中数据的总条 数;
其中, Ai满足下述条件:
Ai=Ai‑1+2k, 且A1为奇数; 其中, k 为任意正整数;
获取第二目标服务器的数据主键集B=(B1,B2,…,Bn,…,By); 其中, Bn为所述第二目标
服务器的目标数据库中第n条数据对应的数据主键; n=1,2, …,i,…,y; y为所述第二目标
服务器的目标 数据库中数据的总条 数;
其中, Bn满足下述条件:
Bn=Bn‑1+2k, 且B1为偶数。
6.根据权利要求1所述的方法, 其特征在于, 在将所述同步数据发送至对应的所述专属
存储空间中之前, 所述方法还 包括:
当所述同步数据中包括图像同步数据时, 对所述同步数据进行第一转化处理; 所述图
像同步数据包括图像存放路径;
所述第一 转化处理包括如下步骤:
根据所述图像存放路径获取待同步图像;
对所述待同步图像进行编码处 理, 得到所述待同步图像的base64编码;
将所述图像存放路径替换为所述待同步图像的base64编码。
7.根据权利要求6所述的方法, 其特征在于, 在将所述新增的同步数据对应的匹配标识
与所述目标 数据库中的每一条 数据对应的匹配标识进行匹配处 理之前, 所述方法还 包括:
当所述新增的同步数据包括所述base64编码时, 对所述新增的同步数据进行第二转化
处理;
所述第二 转化处理包括如下步骤:
对所述base64编码进行解码处 理, 得到对应的所述待同步图像;
将所述待同步图像存 储至预设空间 并生成所述待同步图像的访问路径;
将所述新增的同步数据中的所述base64编码替换为所述访问路径。
8.根据权利要求1所述的方法, 其特征在于, 所述中间服务分别与两个所述目标服务器
的光闸通信连接 。
9.一种非瞬时性计算机可读存储介质, 所述非瞬时性计算机可读存储介质存储有计算
机程序, 其特征在于, 所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的
数据库的双向同步方法。
10.一种电子设备, 包括存储器、 处理器以及存储在所述存储器中并可在所述处理器上
运行的计算机程序, 其特征在于, 所述处理器执行所述计算机程序时实现如权利要求1至8
任一项所述的数据库的双向同步方法。权 利 要 求 书 2/2 页
3
CN 115470302 A
3
专利 一种基于canal的数据库双向同步方法、介质及设备
文档预览
中文文档
11 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共11页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 00:48:34上传分享