一种oracle数据库增量数据采集方法、装置、设备及存储介质与流程

文档序号:37223655发布日期:2024-03-05 15:23阅读:15来源:国知局
一种oracle数据库增量数据采集方法、装置、设备及存储介质与流程

本发明涉及数据库数据迁移,尤其涉及oracle数据库的增量数据采集方法。


背景技术:

1、数据库(databse)是“按照数据结构来组织、存储和管理数据的仓库”,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库管理系统(database management system)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称dbms。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。数据迁移(data migration)一般是指将旧数据库管理系统的源数据转换迁移到新数据库管理系统中的过程。数据迁移工具是保证数据的完整性和一致性、有效完成数据库系统替换升级的重要辅助工具。

2、随着企业业务系统的发展,企业原有的数据库系统一般不再满足企业需求,为了保证业务数据安全和业务相应能力的提升,企业需要对数据库系统进行替换升级。目前新型的分布式数据库逐渐广泛应用,在数据库升级改造过程中,基于全量数据迁移的基础上,还需要对源端数据库中的数据进行增量数据实时同步时,自带的导入导出功能还无法满足,第三方迁移工具适配度低,也很难满足客户需求。

3、通过检索发现,公开的技术方案主要解决同构数据库数据同步和迁移场景,大都使用第三方公开的debezium和flink等迁移工具,这些工具可以满足基本的增量采集场景,但采集性能不高,且无法兼容实际生产中存在的大事务和长事务等情况,导致增量采集同步稳定性差,难以满足实际使用需要,不能较好地解决增量数据迁移问题,严重影响企业业务和用户体验。


技术实现思路

1、本发明的目的是提供一种基于事务并发解析的oracle数据库增量数据采集方法、装置、设备及存储介质 ,解决现有的增量采集工具采集性能低的问题。

2、为实现本发明目的,本申请实施例提供一种基于事务并发解析的oracle数据库增量数据采集方法,其特征在于,包括:

3、根据scn起点、终点,基于logmnr操作产生oracle日志结果集;

4、事务管理线程依次获取oracle日志结果集的每一条日志结果行,根据日志结果行的事务号xid分配到对应的事务缓存;

5、事务管理线程将事务提交给事务解析线程池并发解析;

6、各事务解析线程获取要解析的完整事务,同时自增分配事务序号;

7、当前事务的事务解析线程对当前事务进行解析,解析完成后尝试拿锁;若上一条事务尚未完成解析和数据发送,锁状态尚未释放,则等待;若上一条事务已完成解析和数据发送,锁状态已释放,则当前事务的事务解析线程拿到锁,将当前事务的数据发送到事件队列中,然后释放锁。

8、为了解决现有技术无法支持大事务解析的问题,本申请实施例进一步的技术方案是:

9、所述事务管理线程将事务提交给事务解析线程池并发解析步骤之前,还包括大事务筛选步骤,包括:

10、判断当前事务缓存是否是大事务缓存,如果是,更新记录大事务scn起点、终点和事务号xid,继续获取下一条日志结果行,等待该事务提交下发进行大事务解析;如果不是,则将该事务分配到对应的普通事务缓存;

11、判断当前普通事务缓存是否超过大事务阈值,如果没有超过阈值,则继续获取下一条日志结果行,等待该事务提交下发进行普通事务解析;如果超过阈值,则清空日志结果行记录缓存,只记录事务scn起点、终点和事务号xid,标记为大事务缓存,然后继续获取下一条日志结果行,等待该事务提交下发进行大事务解析。

12、为实现本发明目的,本申请实施例还提供一种基于事务并发解析的oracle数据库增量数据采集装置,其特征在于,包括:

13、日志结果集生成模块,用于根据scn起点、终点,基于logmnr操作产生oracle日志结果集;

14、缓存分配模块,用于事务管理线程依次获取oracle日志结果集的每一条日志结果行,根据日志结果行的事务号xid分配到事务缓存中;

15、事务提交模块,用于事务管理线程将事务提交给事务解析线程池并发解析;

16、事务序号分配模块,用于各事务解析线程获取要解析的完整事务,同时自增分配事务序号;

17、事务解析模块,用于当前事务的事务解析线程对当前事务进行解析,解析完成后尝试拿锁;若上一条事务尚未完成解析和数据发送,锁状态尚未释放,则等待;若上一条事务已完成解析和数据发送,锁状态已释放,则当前事务的事务解析线程拿到锁,将当前事务的数据发送到事件队列中,然后释放锁。

18、本申请实施例还提供一种电子设备,包括处理器和存储器,所述存储器存储有可在所述处理器上运行的程序,其特征在于,所述程序被所述处理器执行时实现上述的基于事务并发解析的oracle数据库增量数据采集方法的步骤。

19、本申请实施例还提供一种计算机可读存储介质,存储有至少一个程序,其特征在于,所述至少一个程序可被至少一个处理器执行,以实现上述的基于事务并发解析的oracle数据库增量数据采集方法的步骤。

20、本申请的基于事务并发解析的oracle数据库增量数据采集方法,引入同步锁,结合事务并发解析,在保证oracle增量事务的顺序性的基础上,有效提高采集性能。

21、针对大事务场景,本申请实施例采用子线程大事务分批解析采集,解决大事务缓存导致内存溢出的问题,提高可用性和实用性,增量迁移场景适配度高。



技术特征:

1.一种基于事务并发解析的oracle数据库增量数据采集方法,其特征在于,包括:

2.如权利要求1所述的基于事务并发解析的oracle数据库增量数据采集方法,其特征在于,所述锁包括自定义同步锁,锁的内部自定义从1开始的自增序号,与事务序号一一对应,当事务解析线程尝试拿锁时,只有当前事务序号和当前锁序号一致才可以拿到锁,独占进行数据发送,数据发送完成后锁被释放,锁序号自增1。

3.如权利要求1所述的基于事务并发解析的oracle数据库增量数据采集方法,其特征在于,所述事务管理线程将事务提交给事务解析线程池并发解析步骤之前,还包括大事务筛选步骤,包括:

4.如权利要求3所述的基于事务并发解析的oracle数据库增量数据采集方法,其特征在于,还包括大事务解析步骤,包括:

5.一种基于事务并发解析的oracle数据库增量数据采集装置,其特征在于,包括:

6.如权利要求5所述的基于事务并发解析的oracle数据库增量数据采集装置,其特征在于,还包括大事务筛选模块,所述大事务筛选模块用于:

7.如权利要求6所述的基于事务并发解析的oracle数据库增量数据采集装置,其特征在于,所述事务解析模块包括:

8.一种电子设备,包括处理器和存储器,所述存储器存储有可在所述处理器上运行的程序,其特征在于,所述程序被所述处理器执行时实现权利要求1-4任一项所述的基于事务并发解析的oracle数据库增量数据采集方法的步骤。

9.一种计算机可读存储介质,存储有至少一个程序,其特征在于,所述至少一个程序可被至少一个处理器执行,以实现权利要求1-4任一项所述的基于事务并发解析的oracle数据库增量数据采集方法的步骤。


技术总结
本发明涉及分布式数据库技术领域,公开一种oracle数据库增量数据采集方法、装置、设备及存储介质,引入同步锁,结合事务并发解析,在保证oracle增量事务的顺序性的基础上,有效提高采集性能。本发明方法针对大事务场景,采用子线程大事务分批解析采集,解决大事务缓存导致内存溢出的问题,提高可用性和实用性,增量迁移场景适配度高。

技术研发人员:王增臣,沈文宽,喻宏源,朱洪利,朱成博
受保护的技术使用者:金篆信科有限责任公司
技术研发日:
技术公布日:2024/3/4
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1