基于数据页预加载的数据库数据同步方法及设备.pdf

上传人:柴****2 文档编号:11721419 上传时间:2021-10-15 格式:PDF 页数:9 大小:542.16KB
收藏 版权申诉 举报 下载
基于数据页预加载的数据库数据同步方法及设备.pdf_第1页
第1页 / 共9页
基于数据页预加载的数据库数据同步方法及设备.pdf_第2页
第2页 / 共9页
基于数据页预加载的数据库数据同步方法及设备.pdf_第3页
第3页 / 共9页
文档描述:

《基于数据页预加载的数据库数据同步方法及设备.pdf》由会员分享,可在线阅读,更多相关《基于数据页预加载的数据库数据同步方法及设备.pdf(9页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910203434.4 (22)申请日 2019.03.18 (71)申请人 武汉达梦数据库有限公司 地址 430000 湖北省武汉市东湖新技术开 发区高新大道999号未来科技大厦C3 栋16-19层 (72)发明人 付铨孙峰余院兰 (74)专利代理机构 武汉智嘉联合知识产权代理 事务所(普通合伙) 42231 代理人 黄君军 (51)Int.Cl. G06F 16/27(2019.01) G06F 16/2455(2019.01) (54)发明名称 基于数据页预加载的数据。

2、库数据同步方法 及设备 (57)摘要 本发明实施例提供了一种基于数据页预加 载的数据库数据同步方法及设备。 所述方法包 括: 在目标端数据同步服务接收待同步的事务操 作, 按所述事务操作的ID进行分类缓存, 若接收 到任一所述ID所代表事务的COMMIT操作日志, 则 将事务中的UPDATE操作和/或DELETE操作, 转换 成SELECT操作, 并将转换后的SELECT操作投递至 数据页预加载线程, 所述数据页预加载线程异步 执行所述转换后的SELECT操作, 实现所述待同步 事务涉及的数据页预加载; 激活执行线程, 执行 预加载的所述待同步事务, 同步所述待同步事 务。 本发明实施例提供的。

3、基于数据页预加载的数 据库数据同步方法及设备, 可以有效提升数据库 事务同步时的同步效率。 权利要求书1页 说明书6页 附图1页 CN 109977168 A 2019.07.05 CN 109977168 A 1.一种基于数据页预加载的数据库数据同步方法, 其特征在于, 包括: 在目标端数据同步服务接收待同步的事务操作, 按所述事务操作的ID进行分类缓存, 若接收到任一所述ID所代表事务的COMMIT操作日志, 则将事务中的UPDATE操作和/或 DELETE操作, 转换成SELECT操作, 并将转换后的SELECT操作投递至数据页预加载线程, 所述 数据页预加载线程异步执行所述转换后的SE。

4、LECT操作, 实现所述待同步事务涉及的数据页 预加载; 激活执行线程, 执行预加载的所述待同步事务, 同步所述待同步事务。 2.根据权利要求1所述的基于数据页预加载的数据库数据同步方法, 其特征在于, 所述 则将事务中的UPDATE操作和/或DELETE操作, 转换成SELECT操作,包括: 遍历待同步的事务操作, 若事务中存在UPDATE操作和/或DELETE操作, 则采用UPDATE操 作和/或DELETE操作中的条件列,构造SELECT操作。 3.根据权利要求2所述的基于数据页预加载的数据库数据同步方法, 其特征在于, 所述 则采用UPDATE操作和/或DELETE操作中的条件列,构造。

5、SELECT操作, 包括: 若UPDATE操作和/或DELETE操作出现连续批量操作, 则将所述连续批量操作上下预设 距离范围内的UPDATE操作和/或DELETE操作, 转换为SELECT操作。 4.根据权利要求1所述的基于数据页预加载的数据库数据同步方法, 其特征在于, 还包 括: 若目标端数据同步服务启动, 则初始化若干个数据页预加载线程, 所述若干个数据页 预加载线程, 用于执行转换后的SELECT操作。 5.根据权利要求1所述的基于数据页预加载的数据库数据同步方法, 其特征在于, 还包 括: 若目标端数据同步服务启动, 则初始化若干个事务执行线程, 所述若干个事务执行线 程, 用于执。

6、行所述待同步的事务操作。 6.一种基于数据页预加载的数据库数据同步装置, 其特征在于, 包括: 数据页预加载模块, 用于在目标端数据同步服务接收待同步的事务操作, 按所述事务 操作的ID进行分类缓存, 若接收到任一所述ID所代表事务的COMMIT操作日志, 则将事务中 的UPDATE操作和/或DELETE操作, 转换成SELECT操作, 并将转换后的SELECT操作投递至数据 页预加载线程, 所述数据页预加载线程异步执行所述转换后的SELECT操作, 实现所述待同 步事务涉及的数据页预加载; 事务同步模块, 用于激活执行线程, 执行预加载的所述待同步事务, 同步所述待同步事 务。 7.一种电子。

7、设备, 其特征在于, 包括: 至少一个处理器、 至少一个存储器、 通信接口和总线; 其中, 所述处理器、 存储器、 通信接口通过所述总线完成相互间的通信; 所述存储器存储有可被所述处理器执行的程序指令, 所述处理器调用所述程序指令, 以执行如权利要求1至5任一项所述的方法。 8.一种非暂态计算机可读存储介质, 其特征在于, 所述非暂态计算机可读存储介质存 储计算机指令, 所述计算机指令使所述计算机执行如权利要求1至5中任一项所述的方法。 权利要求书 1/1 页 2 CN 109977168 A 2 基于数据页预加载的数据库数据同步方法及设备 技术领域 0001 本发明实施例涉及数据库数据处理技。

8、术领域, 尤其涉及一种基于数据页预加载的 数据库数据同步方法及设备。 背景技术 0002 传统的基于数据库自身的主备机制实现数据库数据的实时复制, 是进行数据容灾 备份, 保障数据安全的重要的解决方案。 数据库主备机制下, 一般备机作为备份节点, 通常 只提供只读访问, 可以在备机上做一些报表分析、 数据挖掘等只读访问的应用, 而不能像主 机一样提供读写访问。 另外, 数据库主备机制要求备机数据库系统和主机一致, 对于异构数 据库系统环境, 则不能利用数据库自身的主备机制实现有效的数据实时复制。 针对数据库 主备机制实现数据复制的不足, 目前基于软件的异构数据库复制技术应用广泛。 这种技术 在。

9、源端捕获出数据库的增量数据, 然后发送到目标端, 在目标端通过通用的数据库访问接 口, 将增量数据应用到目标数据库, 实现数据复制。 这种技术因为使用到通用数据库接口, 因此支持异构数据库系统复制, 支持异构操作系统环境, 并且目标端备机数据库系统可读 写, 是一种 “双活” 系统。 0003 有多种技术方式实现获取源端数据库的增量数据, 其中基于数据库日志捕获分析 的数据实时同步技术, 因其对源数据库侵入性小, 捕获分析性能高, 得到较大发展及研究。 这种技术通过分析源数据库归档或联机日志, 捕获出数据库的INSERT、 UPDATE、 DELETE操作 日志, 然后发送到目标端, 目标端对。

10、日志信息进行逆向生成, 恢复成SQL语句方式, 然后使用 数据库通用接口, 应用到目标数据库, 实现数据复制。 因此, 在数据库实时复制过程中, 目标 端的执行效率是影响数据同步性能的重要因素。 0004 目标端数据库上执行同步事务时, 如果同步事务中操作相关数据页都已经加载, 那么事务执行的效率将会较为高效; 否则, 如果同步事务中操作相关的数据页还在数据库 磁盘文件中, 访问这些页时则需要等待IO线程从磁盘上加载该页, 事务执行的效率将会变 得非常缓慢, 影响数据同步的效率。 因此, 如何提高事务同步时操作访问数据页的命中率就 可以提升目标端数据复制的执行效率, 就成为业界亟待解决的重要技。

11、术问题。 发明内容 0005 针对现有技术存在的上述问题, 本发明实施例提供了一种基于数据页预加载的数 据库数据同步方法及设备。 0006 第一方面, 本发明的实施例提供了一种基于数据页预加载的数据库数据同步方 法, 包括: 在目标端数据同步服务接收待同步的事务操作, 按所述事务操作的ID进行分类缓 存, 若接收到任一所述ID所代表事务的COMMIT操作日志, 则将事务中的UPDATE操作和/或 DELETE操作, 转换成SELECT操作, 并将转换后的SELECT操作投递至数据页预加载线程, 所述 数据页预加载线程异步执行所述转换后的SELECT操作, 实现所述待同步事务涉及的数据页 预加载。

12、; 激活执行线程, 执行预加载的所述待同步事务, 同步所述待同步事务。 说明书 1/6 页 3 CN 109977168 A 3 0007 进一步地, 所述则将事务中的UPDATE操作和/或DELETE操作, 转换成SELECT操作, 包括: 遍历待同步的事务操作, 若事务中存在UPDATE操作和/或DELETE操作, 则采用UPDATE 操作和/或DELETE操作中的条件列,构造SELECT操作。 0008 进一步地, 所述则采用UPDATE操作和/或DELETE操作中的条件列,构造SELECT操 作, 包括: 若UPDATE操作和/或DELETE操作出现连续批量操作, 则将所述连续批量操作。

13、上下 预设距离范围内的UPDATE操作和/或DELETE操作, 转换为SELECT操作。 0009 进一步地, 所述的基于数据页预加载的数据库数据同步方法, 还包括: 若目标端数 据同步服务启动, 则初始化若干个数据页预加载线程, 所述若干个数据页预加载线程, 用于 执行转换后的SELECT操作。 0010 进一步地, 所述的基于数据页预加载的数据库数据同步方法, 还包括: 若目标端数 据同步服务启动, 则初始化若干个事务执行线程, 所述若干个事务执行线程, 用于执行所述 待同步的事务操作。 0011 第二方面, 本发明的实施例提供了一种基于数据页预加载的数据库数据同步装 置, 包括: 001。

14、2 数据页预加载模块, 用于在目标端数据同步服务接收待同步的事务操作, 按所述 事务操作的ID进行分类缓存, 若接收到任一所述ID所代表事务的COMMIT操作日志, 则将事 务中的UPDATE操作和/或DELETE操作, 转换成SELECT操作, 并将转换后的SELECT操作投递至 数据页预加载线程, 所述数据页预加载线程异步执行所述转换后的SELECT操作, 实现所述 待同步事务涉及的数据页预加载; 0013 事务同步模块, 用于激活执行线程, 执行预加载的所述待同步事务, 同步所述待同 步事务。 0014 第三方面, 本发明的实施例提供了一种电子设备, 包括: 0015 至少一个处理器; 。

15、以及 0016 与处理器通信连接的至少一个存储器, 其中: 0017 存储器存储有可被处理器执行的程序指令, 处理器调用程序指令能够执行第一方 面的各种可能的实现方式中任一种可能的实现方式所提供的基于数据页预加载的数据库 数据同步方法。 0018 第四方面, 本发明的实施例提供了一种非暂态计算机可读存储介质, 非暂态计算 机可读存储介质存储计算机指令, 计算机指令使计算机执行第一方面的各种可能的实现方 式中任一种可能的实现方式所提供的基于数据页预加载的数据库数据同步方法。 0019 本发明实施例提供的基于数据页预加载的数据库数据同步方法及设备, 通过将事 务中的操作转化为相应的处理程序较为快速。

16、简洁的SELECT操作, 并投递至数据页预加载线 程执行, 可以实现事务执行之前对事务中的操作进行预热, 从而有效提升数据库事务同步 时的同步效率。 附图说明 0020 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图做一简单的介绍, 显而易见地, 下面描述中的附图是本发 明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根 说明书 2/6 页 4 CN 109977168 A 4 据这些附图获得其他的附图。 0021 图1为本发明实施例提供的基于数据页预加载的数据库数据同步方法流程图; 0022 图2为本。

17、发明实施例提供的基于数据页预加载的数据库数据同步装置结构示意 图; 0023 图3为本发明实施例提供的电子设备的实体结构示意图。 具体实施方式 0024 为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发明实施例 中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是 本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员 在没有做出创造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。 另外, 本发明提供的各个实施例或单个实施例中的技术特征可以相互任意结合, 以形成可行的技 术方案, 但是必须是以本。

18、领域普通技术人员能够实现为基础, 当技术方案的结合出现相互 矛盾或无法实现时, 应当认为这种技术方案的结合不存在, 也不在本发明要求的保护范围 之内。 0025 本发明实施例提供了一种基于数据页预加载的数据库数据同步方法, 参见图1, 该 方法包括: 0026 101、 在目标端数据同步服务接收待同步的事务操作, 按所述事务操作的ID进行分 类缓存, 若接收到任一所述ID所代表事务的COMMIT操作日志, 则将事务中的UPDATE操作和/ 或DELETE操作, 转换成SELECT操作, 并将转换后的SELECT操作投递至数据页预加载线程, 所 述数据页预加载线程异步执行所述转换后的SELECT。

19、操作, 实现所述待同步事务涉及的数据 页预加载; 0027 102、 激活执行线程, 执行预加载的所述待同步事务, 同步所述待同步事务。 0028 在上述实施例的基础上, 本发明实施例中提供的基于数据页预加载的数据库数据 同步方法, 所述则将事务中的UPDATE操作和/或DELETE操作, 转换成SELECT操作,包括: 遍历 待同步的事务操作, 若事务中存在UPDATE操作和/或DELETE操作, 则采用UPDATE操作和/或 DELETE操作中的条件列,构造SELECT操作。 这就可以实现事务中的UPDATE或DELETE操作涉 及的数据页在数据库中预热, 防止事务执行线程在执行UPDAT。

20、E或DELETE操作时访问到冷数 据, 冷数据则需要等待从磁盘上加载, 从而影响到执行的性能。 0029 具体地, 假设同步事务中存在UPDATE操作: UPDATE T SET C11, C21, C31, C4 1, C51, , Cn1, WHERE ID1; 0030 上述操作在执行时, 可以先把UPDATE转换成SELECT操作先执行, 以便预热UPDATE 需要访问的数据, 转换为: SELECT 1FROM T WHERE ID1; 0031 假设同步事务中存在DELETE操作: DELETE FROM T WHERE ID1; 0032 上述操作在执行时, 可以先把DELETE。

21、转换成SELECT操作先执行, 以便预热DELETE 需要访问的数据, 转换为: SELECT 1FROM T WHERE ID1; 0033 在上述实施例的基础上, 本发明实施例中提供的基于数据页预加载的数据库数据 同步方法, 所述则采用UPDATE操作和/或DELETE操作中的条件列,构造SELECT操作, 包括: 若 UPDATE操作和/或DELETE操作出现连续批量操作, 则将所述连续批量操作上下预设距离范 说明书 3/6 页 5 CN 109977168 A 5 围内的UPDATE操作和/或DELETE操作, 转换为SELECT操作。 0034 需要说明的是, 当UPDATE操作或D。

22、ELETE操作出现连续批量的操作时, 把这些操作 都转换为SELECT操作会造成多个SELECT操作要预加载的数据页属于同一页, 造成无意义的 执行, 浪费目的端数据库的资源。 当批量操作出现时, 可以采用跳跃式转换, 按N为跳跃基数 (N即为上下预设距离范围), 只转换该批量操作中上下间隔为N的操作为SELECT操作。 0035 在上述实施例的基础上, 本发明实施例中提供的基于数据页预加载的数据库数据 同步方法, 还包括: 若目标端数据同步服务启动, 则初始化若干个数据页预加载线程, 所述 若干个数据页预加载线程, 用于执行转换后的SELECT操作。 0036 在上述实施例的基础上, 本发明。

23、实施例中提供的基于数据页预加载的数据库数据 同步方法, 还包括: 若目标端数据同步服务启动, 则初始化若干个事务执行线程, 所述若干 个事务执行线程, 用于执行所述待同步的事务操作。 0037 具体地, 将事务按事务ID分类为事务1至事务N, 转换后的SELECT操作由数据页预 加载线程1到数据页预加载线程N顺序抽取SELECT操作执行, 提交事务则分别由事务执行线 程1到事务执行线程N执行。 有关UPDATE操作、 DELETE操作和SELECT操作的具体内容可以参 见表1。 0038 表1 0039 0040 相对于转换成UPDATE和DELETE操作, SELECT操作具有最小的系统侵入。

24、性, SELECT 操作不会对目的表上锁; SELECT操作也不会触发目的表上的触发器; SELECT操作不会触发 目的表的约束检查; SELECT操作在目的端数据库不产生任何操作日志。 0041 本发明实施例提供的基于数据页预加载的数据库数据同步方法, 通过将事务中的 操作转化为相应的处理程序较为快速简洁的SELECT操作, 并投递至数据页预加载线程执 行, 可以实现事务执行之前对事务中的操作进行预热, 从而有效提升数据库事务同步时的 同步效率。 0042 本发明各个实施例的实现基础是通过具有处理器功能的设备进行程序化的处理 说明书 4/6 页 6 CN 109977168 A 6 实现的。。

25、 因此在工程实际中, 可以将本发明各个实施例的技术方案及其功能封装成各种模 块。 基于这种现实情况, 在上述各实施例的基础上, 本发明的实施例提供了一种基于数据页 预加载的数据库数据同步装置, 该装置用于执行上述方法实施例中的基于数据页预加载的 数据库数据同步方法。 参见图2, 该装置包括: 0043 数据页预加载模块201, 用于在目标端数据同步服务接收待同步的事务操作, 按所 述事务操作的ID进行分类缓存, 若接收到任一所述ID所代表事务的COMMIT操作日志, 则将 事务中的UPDATE操作和/或DELETE操作, 转换成SELECT操作, 并将转换后的SELECT操作投递 至数据页预加。

26、载线程, 所述数据页预加载线程异步执行所述转换后的SELECT操作, 实现所 述待同步事务涉及的数据页预加载; 0044 事务同步模块202, 用于激活执行线程, 执行预加载的所述待同步事务, 同步所述 待同步事务。 0045 本发明实施例提供的基于数据页预加载的数据库数据同步装置, 采用数据页预加 载模块和事务同步模块, 通过将事务中的操作转化为相应的处理程序较为快速简洁的 SELECT操作, 并投递至数据页预加载线程执行, 可以实现事务执行之前对事务中的操作进 行预热, 从而有效提升数据库事务同步时的同步效率。 0046 本发明实施例的方法是依托电子设备实现的, 因此对相关的电子设备有必要。

27、做一 下介绍。 基于此目的, 本发明的实施例提供了一种电子设备, 如图3所示, 该电子设备包括: 至少一个处理器(processor)301、 通信接口(Communications Interface)304、 至少一个存 储器(memory)302和通信总线303, 其中, 至少一个处理器301, 通信接口304, 至少一个存储 器302通过通信总线303完成相互间的通信。 至少一个处理器301可以调用至少一个存储器 302中的逻辑指令, 以执行如下方法: 在目标端数据同步服务接收待同步的事务操作, 按所 述事务操作的ID进行分类缓存, 若接收到任一所述ID所代表事务的COMMIT操作日志。

28、, 则将 事务中的UPDATE操作和/或DELETE操作, 转换成SELECT操作, 并将转换后的SELECT操作投递 至数据页预加载线程, 所述数据页预加载线程异步执行所述转换后的SELECT操作, 实现所 述待同步事务涉及的数据页预加载; 激活执行线程, 执行预加载的所述待同步事务, 同步所 述待同步事务。 0047 此外, 上述的至少一个存储器302中的逻辑指令可以通过软件功能单元的形式实 现并作为独立的产品销售或使用时, 可以存储在一个计算机可读取存储介质中。 基于这样 的理解, 本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部 分可以以软件产品的形式体现出来, 。

29、该计算机软件产品存储在一个存储介质中, 包括若干 指令用以使得一台计算机设备(可以是个人计算机, 服务器, 或者网络设备等)执行本发明 各个实施例所述方法的全部或部分步骤。 例如包括: 在目标端数据同步服务接收待同步的 事务操作, 按所述事务操作的ID进行分类缓存, 若接收到任一所述ID所代表事务的COMMIT 操作日志, 则将事务中的UPDATE操作和/或DELETE操作, 转换成SELECT操作, 并将转换后的 SELECT操作投递至数据页预加载线程, 所述数据页预加载线程异步执行所述转换后的 SELECT操作, 实现所述待同步事务涉及的数据页预加载; 激活执行线程, 执行预加载的所述 待。

30、同步事务, 同步所述待同步事务。 而前述的存储介质包括: U盘、 移动硬盘、 只读存储器 (ROM, Read-Only Memory)、 随机存取存储器(RAM, Random Access Memory)、 磁碟或者光盘 等各种可以存储程序代码的介质。 说明书 5/6 页 7 CN 109977168 A 7 0048 以上所描述的装置实施例仅仅是示意性的, 其中所述作为分离部件说明的单元可 以是或者也可以不是物理上分开的, 作为单元显示的部件可以是或者也可以不是物理单 元, 即可以位于一个地方, 或者也可以分布到多个网络单元上。 可以根据实际的需要选择其 中的部分或者全部模块来实现本实施。

31、例方案的目的。 本领域普通技术人员在不付出创造性 的劳动的情况下, 即可以理解并实施。 0049 通过以上的实施方式的描述, 本领域的技术人员可以清楚地了解到各实施方式可 借助软件加必需的通用硬件平台的方式来实现, 当然也可以通过硬件。 基于这样的理解, 上 述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来, 该 计算机软件产品可以存储在计算机可读存储介质中, 如ROM/RAM、 磁碟、 光盘等, 包括若干指 令用以使得一台计算机设备(可以是个人计算机, 服务器, 或者网络设备等)执行各个实施 例或者实施例的某些部分所述的方法。 0050 最后应说明的是: 以上实施例仅用以说明本发明的技术方案, 而非对其限制; 尽管 参照前述实施例对本发明进行了详细的说明, 本领域的普通技术人员应当理解: 其依然可 以对前述各实施例所记载的技术方案进行修改, 或者对其中部分技术特征进行等同替换; 而这些修改或者替换, 并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和 范围。 说明书 6/6 页 8 CN 109977168 A 8 图1 图2 图3 说明书附图 1/1 页 9 CN 109977168 A 9 。

展开阅读全文
内容关键字: 基于 数据 加载 数据库 同步 方法 设备
关于本文
本文标题:基于数据页预加载的数据库数据同步方法及设备.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/11721419.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1