[发明专利]数据同步的方法、装置、设备和存储介质有效
申请号: | 202110191407.7 | 申请日: | 2021-02-20 |
公开(公告)号: | CN112559638B | 公开(公告)日: | 2021-05-07 |
发明(设计)人: | 张君华;许欣芃 | 申请(专利权)人: | 恒生电子股份有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/23;G06F9/54 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 李慧引 |
地址: | 310053 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 同步 方法 装置 设备 存储 介质 | ||
本申请提供一种数据同步的方法、装置、设备和存储介质,该方法包括,接收业务端提供的数据库指令;解析数据库指令,以确定数据库指令的类型;若数据库指令的类型为数据操纵指令或者数据定义指令,在当前运行线程的线程上下文中设置捕获上下文;调用当前运行线程执行数据库指令;根据捕获上下文,保存数据库指令被执行后数据库的更新结果;将更新结果发送至数据库的消费端,使消费端基于更新结果实现数据同步。本方案直接捕获并向消费端发送数据库的更新结果,使得消费端在数据同步时不需要处理与更新结果无关的日志数据,提高了消费端数据同步的效率。
技术领域
本发明涉及数据库技术领域,特别涉及一种数据同步的方法、装置、设备和存储介质。
背景技术
在业务端对一个数据库进行操作时,经常需要将对这个数据库的操作同步至这个数据库的消费端,这一过程称为数据同步,消费端可以是指需要使用该数据库的数据的程序,具体可以是其他数据库,也可以是其他的应用程序。
例如,对该数据库中添加或删除部分数据之后,消费端需要在本地添加或删除同样的数据,通过这种方式确保消费端使用的是该数据库最新的数据。
现有的一种数据库同步技术是,数据库定时将自身的重做日志(Redo Log)发送给数据库的消费端,Redo Log中包含数据库近期的所有操作记录,通过解析Redo Log并重复其中记录的操作(这一过程称为Redo Log的重放)。
但是,数据库常常会收到批处理指令(如删除或更新符合特定条件的一批数据的指令),数据库需要将批处理指令解析为对具体的操作指令,解析过程同样会记录在RedoLog,而消费端实现数据同步时并不需要重复该解析过程,因此现有技术中消费端需要浪费较多时间解析Redo Log,导致数据同步的效率较低。
发明内容
针对上述现有技术存在的缺点,本申请提供一种数据同步的方法、装置、设备和存储介质,以提供一种高效的数据同步方案。
本申请第一方面提供一种数据同步的方法,包括:
接收业务端发送的数据库指令;
解析所述数据库指令,得到所述数据库指令的类型;
若所述数据库指令的类型为数据操纵指令或者数据定义指令,在当前运行线程的线程上下文中设置捕获上下文;其中,所述数据操纵指令指代用于更新所述数据库的数据的指令;所述数据定义指令指代用于更新所述数据库的结构的指令;
调用所述当前运行线程执行所述数据库指令;
向所述业务端反馈所述数据库指令的执行结果,并根据所述当前运行线程的线程上下文中的捕获上下文,保存所述数据库指令被执行后所述数据库的更新结果;
响应所述业务端针对所述执行结果反馈的提交命令,将所述更新结果发送至所述数据库的消费端,使所述消费端基于所述更新结果实现数据同步。
可选的,所述保存所述数据库指令被执行后所述数据库的更新结果,包括:
若所述数据库指令属于数据操纵指令,保存所述数据库中被更新的数据;其中,所述被更新的数据由预先添加至所述数据库指令的返回指令反馈;
若所述数据库指令属于数据定义指令,保存所述数据库中被更新的结构。
可选的,所述在当前运行线程的线程上下文中设置捕获上下文之前,还包括:
若所述数据库指令属于数据操纵指令,判断目标数据是否属于预先指定的待同步数据表;其中,所述目标数据指代所述数据库指令所要更新的数据;
若所述目标数据属于所述待同步数据表,执行所述在当前运行线程的线程上下文中设置捕获上下文步骤;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于恒生电子股份有限公司,未经恒生电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110191407.7/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置