一种数据库双写方法、装置、电子设备及存储介质制造方法及图纸

技术编号:38704779 阅读:13 留言:0更新日期:2023-09-08 14:45
本申请实施例提供一种数据库双写方法、装置、电子设备及存储介质,涉及计算机技术领域。该方法包括利用文件系统监控器对Oracle日志文件进行实时监听,以获得所述Oracle日志文件的新增数据;判断所述新增数据是否含有写和/或修改操作语句;若所述新增数据中含有写和/或修改操作语句,则在相应的MySql数据库中执行对应操作。该方法采用监听oracle数据库日志的方式,当监听到oracle数据有数据库写或者修改操作时,同时对相应的Mysql数据库执行写或者修改操作,从而实现数据库的双写操作,无需修改业务代码,解决了现有方法需要修改原有的业务代码从而增加了代码异常风险和研发工作量的问题。量的问题。量的问题。

【技术实现步骤摘要】
一种数据库双写方法、装置、电子设备及存储介质


[0001]本申请涉及计算机
,具体而言,涉及一种数据库双写方法、装置、电子设备及存储介质。

技术介绍

[0002]在软件开发过程中,对数据库的增删改查是软件开发中频繁要去处理的问题,在研发过程中,由于数据安全的需要,采用安全开源的mysql数据对oracle数据进行替换是从技术底层减少对国外的依赖、实现自主可控的必要措施,但是在替换的过程中,要实现程序的兼容性、稳定性和业务的连续性。通常情况下,在项目的初始阶段要实现数据的双写,即业务数据在写入Oracle数据库时,也同时写入Mysql数据库。
[0003]现有方法是通过在DAO(数据库访问)层增加Mysql数据的写入操作,在业务数据写Oracle时同时写入mysql数据库,但是该方法需要修改原有的业务代码,需要在原有的业务代码DAO(数据库访问)层增加Mysql数据的写入操作,增加了代码异常风险和研发工作量。

技术实现思路

[0004]本申请实施例的目的在于提供一种数据库双写方法、装置、电子设备及存储介质,采用监听oracle数据库日志的方式,当监听到oracle数据有数据库写或者修改操作时,同时对相应的Mysql数据库执行写或者修改操作,从而实现数据库的双写操作,无需修改业务代码,解决了现有方法需要修改原有的业务代码从而增加了代码异常风险和研发工作量的问题。
[0005]本申请实施例提供了一种数据库双写方法,所述方法包括:
[0006]利用文件系统监控器对Oracle日志文件进行实时监听,以获得所述Oracle日志文件的新增数据;
[0007]判断所述新增数据是否含有写和/或修改操作语句;
[0008]若所述新增数据中含有写和/或修改操作语句,则在相应的MySql数据库中执行对应操作。
[0009]在上述实现过程中,采用监听oracle数据库日志的方式,当监听到oracle数据有数据库写或者修改操作时,同时对相应的Mysql数据库执行写或者修改操作,从而实现Oracale数据库与Mysql数据库的双写,实现数据在两个数据库中同时插入或更新,且无需修改业务代码,解决了现有方法需要修改原有的业务代码从而增加了代码异常风险和研发工作量的问题。
[0010]进一步地,在所述利用文件系统监控器对Oracle日志文件进行实时监听的步骤之前,所述方法还包括:
[0011]在Oracle数据库中设置用于监听的日志路径。
[0012]在上述实现过程中,设置日志路径,以便对日志路径进行监听。
[0013]进一步地,所述利用文件系统监控器对Oracle日志文件进行实时监听,以获得所
述Oracle日志文件的新增数据,包括:
[0014]利用WatchService并基于预先设置的监听模式对所述Oracle日志文件的文件路径进行监听,所述监听模式为修改事件监听;
[0015]利用预先创建的线程获取Oracle日志文件的新增数据。
[0016]在上述实现过程中,监听文件的修改事件,当日志发生变化时,可获得新增数据。
[0017]进一步地,所述若所述新增数据中含有写和/或修改操作语句,则在相应的Mysql数据库中执行对应操作,包括:
[0018]若所述新增数据中含有insert和/或update语句,则提取所述新增数据中的SQL语句;
[0019]与MySql数据库建立连接并在所述MySql数据库中执行所述SQL语句。
[0020]在上述实现过程中,如果新增数据中有insert/update语句,则提取其中的SQL语句在对应的mysql数据库中执行一次,实现Oracale数据库与Mysql数据库的双写,从而实现在不影响现有业务逻辑的情况下,实现数据在两个数据库中同时插入或者更新。
[0021]本申请实施例还提供一种数据库双写装置,所述装置包括:
[0022]监听模块,用于利用文件系统监控器对Oracle日志文件进行实时监听,以获得所述Oracle日志文件的新增数据;
[0023]判断模块,用于判断所述新增数据是否含有写和/或修改操作语句;
[0024]执行模块,用于若所述新增数据中含有写和/或修改操作语句,则在相应的MySql数据库中执行对应操作。
[0025]在上述实现过程中,采用监听oracle数据库日志的方式,当监听到oracle数据有数据库写或者修改操作时,同时对相应的Mysql数据库执行写或者修改操作,从而实现Oracale数据库与Mysql数据库的双写,实现数据在两个数据库中同时插入或更新,且无需修改业务代码,解决了现有方法需要修改原有的业务代码从而增加了代码异常风险和研发工作量的问题。
[0026]进一步地,所述装置还包括:
[0027]日志路径设置模块,用于在Oracle数据库中设置用于监听的日志路径。
[0028]在上述实现过程中,设置日志路径,以便对日志路径进行监听。
[0029]进一步地,所述监听模块包括:
[0030]监听设置模块,用于利用WatchService并基于预先设置的监听模式对所述Oracle日志文件的文件路径进行监听,所述监听模式为修改事件监听;
[0031]新增数据获取模块,用于利用预先创建的线程获取Oracle日志文件的新增数据。
[0032]在上述实现过程中,监听文件的修改事件,当日志发生变化时,可获得新增数据。
[0033]进一步地,所述执行模块包括:
[0034]SQL语句获取模块,用于若所述新增数据中含有insert和/或update语句,则提取所述新增数据中的SQL语句;
[0035]SQL语句执行模块,用于与MySql数据库建立连接并在所述MySql数据库中执行所述SQL语句。
[0036]在上述实现过程中,如果新增数据中有insert/update语句,则提取其中的SQL语句在对应的mysql数据库中执行一次,实现Oracale数据库与Mysql数据库的双写,从而实现
在不影响现有业务逻辑的情况下,实现数据在两个数据库中同时插入或者更新。
[0037]本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行计算机程序以使所述电子设备执行上述中任一项所述的数据库双写方法。
[0038]本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的数据库双写方法。
附图说明
[0039]为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0040]图本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库双写方法,其特征在于,所述方法包括:利用文件系统监控器对Oracle日志文件进行实时监听,以获得所述Oracle日志文件的新增数据;判断所述新增数据是否含有写和/或修改操作语句;若所述新增数据中含有写和/或修改操作语句,则在相应的MySql数据库中执行对应操作。2.根据权利要求1所述的数据库双写方法,其特征在于,在所述利用文件系统监控器对Oracle日志文件进行实时监听的步骤之前,所述方法还包括:在Oracle数据库中设置用于监听的日志路径。3.根据权利要求1所述的数据库双写方法,其特征在于,所述利用文件系统监控器对Oracle日志文件进行实时监听,以获得所述Oracle日志文件的新增数据,包括:利用WatchService并基于预先设置的监听模式对所述Oracle日志文件的文件路径进行监听,所述监听模式为修改事件监听;利用预先创建的线程获取Oracle日志文件的新增数据。4.根据权利要求1所述的数据库双写方法,其特征在于,所述若所述新增数据中含有写和/或修改操作语句,则在相应的Mysql数据库中执行对应操作,包括:若所述新增数据中含有insert和/或update语句,则提取所述新增数据中的SQL语句;与MySql数据库建立连接并在所述MySql数据库中执行所述SQL语句。5.一种数据库双写装置,其特征在于,所述装置包括:监听模块,用于利用文件系统监控器对Oracle日志文件进行实时监听,以获得所述Oracle日志文件...

【专利技术属性】
技术研发人员:周小亮
申请(专利权)人:平安银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1