CN117216029A - 一种数据迁移的兼容检测方法及终端 - Google Patents
一种数据迁移的兼容检测方法及终端 Download PDFInfo
- Publication number
- CN117216029A CN117216029A CN202311129857.9A CN202311129857A CN117216029A CN 117216029 A CN117216029 A CN 117216029A CN 202311129857 A CN202311129857 A CN 202311129857A CN 117216029 A CN117216029 A CN 117216029A
- Authority
- CN
- China
- Prior art keywords
- database
- statement
- database statement
- execution
- proxy server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013508 migration Methods 0.000 title claims abstract description 65
- 230000005012 migration Effects 0.000 title claims abstract description 65
- 238000001514 detection method Methods 0.000 title claims abstract description 29
- 238000000034 method Methods 0.000 claims description 21
- 230000002159 abnormal effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000010076 replication Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种数据迁移的兼容检测方法及终端,当接收到的数据库语句的访问地址是第一数据库时,将数据库语句的访问地址修改为数据库代理服务器的地址,以此方式原先访问第一数据库的数据库语句即可转移到数据库代理服务器上进行。通过数据库代理服务器将数据库语句发送至消息中间件,由消息中间件的消费者将数据库语句在第二数据库中执行,若第二数据库执行失败则将数据库语句存入数据库语句不兼容列表。因此能够经由代理服务器和消息中间件将数据库语句发往第二数据库中,根据在第二数据库中的执行情况自动生成数据库语句不兼容列表,提高迁移兼容检测的效率。
Description
技术领域
本发明涉及数据迁移技术领域,特别涉及一种数据迁移的兼容检测方法及终端。
背景技术
目前大部分的业务系统都使用数据库来进行数据的存储,通常都是采用oracle或者mysql来作为数据库,随着系统升级或者其他架构变更等功能,会要求逐步地迁移历史数据至不同的数据库中。
为了实现2种不同数据库之间的数据迁移,需要进行很多的事情,最主要的就是2种数据库所支持的SQL不兼容。为了查询出系统中哪些SQL不兼容新数据库,通常为了解决此种问题的做法:一是开发人员列出系统中所有种类的SQL,并逐一的在新数据库中执行;二是由开发人员部署一套新系统,对接新的数据库,由测试人员对于此新系统进行全功能回归验证,如果有问题的话,说明该部分的内容不支持新数据库。无论哪一种方式,都需要人工操作来查询不兼容SQL列表,耗时耗力,并且不确定是否能够查询出所有问题SQL。
发明内容
本发明所要解决的技术问题是:提供一种数据迁移的兼容检测方法及终端,能够自动获取数据迁移过程中的不兼容语句,提高迁移兼容检测的效率。
为了解决上述技术问题,本发明采用的技术方案为:
一种数据迁移的兼容检测方法,包括步骤:
接收数据库语句,若所述数据库语句的访问地址是第一数据库,则将所述数据库语句的访问地址修改为数据库代理服务器的地址;
通过所述数据库代理服务器将所述数据库语句发送至消息中间件,由消息中间件的消费者将所述数据库语句在第二数据库中执行,若所述第二数据库中存在执行失败的数据库语句,则获取所述第二数据库中由执行失败的所述数据库语句生成的数据库语句不兼容列表;
所述第一数据库为迁移前的数据库,所述第二数据库为迁移后的数据库。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种数据迁移的兼容检测终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收数据库语句,若所述数据库语句的访问地址是第一数据库,则将所述数据库语句的访问地址修改为数据库代理服务器的地址;
通过所述数据库代理服务器将所述数据库语句发送至消息中间件,由消息中间件的消费者将所述数据库语句在第二数据库中执行,若所述第二数据库中存在执行失败的数据库语句,则获取所述第二数据库中由执行失败的所述数据库语句生成的数据库语句不兼容列表;
所述第一数据库为迁移前的数据库,所述第二数据库为迁移后的数据库。
本发明的有益效果在于:当接收到的数据库语句的访问地址是第一数据库时,将数据库语句的访问地址修改为数据库代理服务器的地址,以此方式原先访问第一数据库的数据库语句即可转移到数据库代理服务器上进行。通过数据库代理服务器将数据库语句发送至消息中间件,由消息中间件的消费者将数据库语句在第二数据库中执行,若第二数据库执行失败则将数据库语句存入数据库语句不兼容列表。因此能够经由代理服务器和消息中间件将数据库语句发往第二数据库中,能够实现代理服务器和第二数据库之间的解耦,二者不会互相影响,还能够进一步提高数据库语句传输的并发量,进而根据在第二数据库中的执行情况自动生成数据库语句不兼容列表,提高迁移兼容检测的效率。
附图说明
图1为本发明实施例的一种数据迁移的兼容检测方法的流程图;
图2为本发明实施例的一种数据迁移的兼容检测终端的示意图;
标号说明:
1、一种数据迁移的兼容检测终端;2、存储器;3、处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种数据迁移的兼容检测方法,包括步骤:
接收数据库语句,若所述数据库语句的访问地址是第一数据库,则将所述数据库语句的访问地址修改为数据库代理服务器的地址;
通过所述数据库代理服务器将所述数据库语句发送至消息中间件,由消息中间件的消费者将所述数据库语句在第二数据库中执行,若所述第二数据库中存在执行失败的数据库语句,则获取所述第二数据库中由执行失败的所述数据库语句生成的数据库语句不兼容列表;
所述第一数据库为迁移前的数据库,所述第二数据库为迁移后的数据库。
从上述描述可知,本发明的有益效果在于:当接收到的数据库语句的访问地址是第一数据库时,将数据库语句的访问地址修改为数据库代理服务器的地址,以此方式原先访问第一数据库的数据库语句即可转移到数据库代理服务器上进行。通过数据库代理服务器将数据库语句发送至消息中间件,由消息中间件的消费者将数据库语句在第二数据库中执行,若第二数据库执行失败则将数据库语句存入数据库语句不兼容列表。因此能够经由代理服务器和消息中间件将数据库语句发往第二数据库中,能够实现代理服务器和第二数据库之间的解耦,二者不会互相影响,还能够进一步提高数据库语句传输的并发量,进而根据在第二数据库中的执行情况自动生成数据库语句不兼容列表,提高迁移兼容检测的效率。
进一步地,通过所述数据库代理服务器将所述数据库语句发送至消息中间件,之后还包括:
通过所述数据库代理服务器将所述数据库语句转发至第一数据库执行。
由上述描述可知,数据库代理服务器不仅将数据库语句发送给消息中间件,还需要将其发送给第一数据库执行,能够得到数据库语句在原数据库中的执行情况,便于后续进行兼容检测。
进一步地,若所述第二数据库中不存在执行失败的数据库语句,则根据数据库语句在第一数据库的执行时间和第二数据库的执行时间计算时间差异,若所述时间差异大于阈值,则将所述数据库语句添加至数据库语句不兼容列表。
由上述描述可知,针对执行时间差异比较大的语句需要进行记录处理,能够检测到在新数据库中存在未建立索引或者其他因迁移导致的异常延时问题。
进一步地,还包括:
若所述第二数据库中不存在执行失败的数据库语句,则根据数据库语句在第一数据库的执行日志和第二数据库的执行日志计算差异日志,若所述差异日志中存在异常信息,则将所述数据库语句添加至数据库语句不兼容列表。
由上述描述可知,针对差异日志中存在异常信息的对应语句也需要进行记录处理,能够进一步检测到因迁移导致的异常问题。
进一步地,获取数据库语句不兼容列表,之后还包括:
基于数据库语句不兼容列表生成数据库语句在第一数据库和第二数据库执行的对比数据报告。
由上述描述可知,能够获取多份不同维度的对比数据报告,进一步减少兼容检测的人力成本,提高工作效率。
请参照图2,本发明另一实施例提供了一种数据迁移的兼容检测终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收数据库语句,若所述数据库语句的访问地址是第一数据库,则将所述数据库语句的访问地址修改为数据库代理服务器的地址;
通过所述数据库代理服务器将所述数据库语句发送至消息中间件,由消息中间件的消费者将所述数据库语句在第二数据库中执行,若所述第二数据库中存在执行失败的数据库语句,则获取所述第二数据库中由执行失败的所述数据库语句生成的数据库语句不兼容列表;
所述第一数据库为迁移前的数据库,所述第二数据库为迁移后的数据库。
从上述描述可知,本发明的有益效果在于:当接收到的数据库语句的访问地址是第一数据库时,将数据库语句的访问地址修改为数据库代理服务器的地址,以此方式原先访问第一数据库的数据库语句即可转移到数据库代理服务器上进行。通过数据库代理服务器将数据库语句发送至消息中间件,由消息中间件的消费者将数据库语句在第二数据库中执行,若第二数据库执行失败则将数据库语句存入数据库语句不兼容列表。因此能够经由代理服务器和消息中间件将数据库语句发往第二数据库中,能够实现代理服务器和第二数据库之间的解耦,二者不会互相影响,还能够进一步提高数据库语句传输的并发量,进而根据在第二数据库中的执行情况自动生成数据库语句不兼容列表,提高迁移兼容检测的效率。
进一步地,通过所述数据库代理服务器将所述数据库语句发送至消息中间件,之后还包括:
通过所述数据库代理服务器将所述数据库语句转发至第一数据库执行。
由上述描述可知,数据库代理服务器不仅将数据库语句发送给消息中间件,还需要将其发送给第一数据库执行,能够得到数据库语句在原数据库中的执行情况,便于后续进行兼容检测。
进一步地,若所述第二数据库中不存在执行失败的数据库语句,则根据数据库语句在第一数据库的执行时间和第二数据库的执行时间计算时间差异,若所述时间差异大于阈值,则将所述数据库语句添加至数据库语句不兼容列表。
由上述描述可知,针对执行时间差异比较大的语句需要进行记录处理,能够检测到在新数据库中存在未建立索引或者其他因迁移导致的异常延时问题。
进一步地,还包括:
若所述第二数据库中不存在执行失败的数据库语句,则根据数据库语句在第一数据库的执行日志和第二数据库的执行日志计算差异日志,若所述差异日志中存在异常信息,则将所述数据库语句添加至数据库语句不兼容列表。
由上述描述可知,针对差异日志中存在异常信息的对应语句也需要进行记录处理,能够进一步检测到因迁移导致的异常问题。
进一步地,获取数据库语句不兼容列表,之后还包括:
基于数据库语句不兼容列表生成数据库语句在第一数据库和第二数据库执行的对比数据报告。
由上述描述可知,能够获取多份不同维度的对比数据报告,进一步减少兼容检测的人力成本,提高工作效率。
本发明上述的一种数据迁移的兼容检测方法及终端,适用于在数据库迁移之后,自动获取数据迁移过程中的不兼容语句,提高迁移兼容检测的效率,以下通过具体的实施方式进行说明:
实施例一
请参照图1,一种数据迁移的兼容检测方法,其特征在于,包括步骤:
S1、接收数据库语句,若所述数据库语句的访问地址是第一数据库,则将所述数据库语句的访问地址修改为数据库代理服务器的地址;所述第一数据库为迁移前的数据库。
其中,需要先进行第一数据库至第二数据库的数据迁移。在本实施例中,目前存在一个系统,采用java语言编写,使用第一数据库(mysql数据库)存储数据。当后续系统需要使用第二数据库(oracle数据库)时,该系统需要进行数据迁移,迁移操作不仅仅是数据复制,还包括了索引以及其他内容的复制转移。具体的,使用oracle数据库自带的迁移工具进行存量历史数据的迁移工作,此时,会同步历史的数据至oracle数据库中。
为进行数据迁移后的兼容检测,本实施例中新增一个数据库代理层,原先系统直接访问mysql数据库的地址,现在只需要修改系统中的数据库地址信息,修改成代理服务器的地址即可。
S2、通过所述数据库代理服务器将所述数据库语句发送至消息中间件,由消息中间件的消费者将所述数据库语句在第二数据库中执行,若所述第二数据库中存在执行失败的数据库语句,则获取所述第二数据库中由执行失败的所述数据库语句生成的数据库语句不兼容列表;所述第二数据库为迁移后的数据库。
其中,通过数据库代理服务器将数据库语句发送至消息中间件之后,还通过数据库代理服务器将数据库语句转发至第一数据库执行。
具体的,数据库代理层接收到请求后,优先向消息中间件发送一条消息,完毕后,再次转发请求至mysql数据库,进行后续的处理操作,最终,获取mysql数据库的返回数据,并返回给客户端。
本实施例中,存在一个消息中间件消费者,专门消费中间件上的消息。消息的具体内容为系统中请求的SQL信息。使用该SQL在oracle数据库中进行执行操作,此时,可以明确知晓该SQL是否兼容新的数据库。待执行一段时间之后,可以自动获取到执行失败的SQL列表。
其中,若所述第二数据库中不存在执行失败的数据库语句,则根据数据库语句在第一数据库的执行时间和第二数据库的执行时间计算时间差异,若所述时间差异大于阈值,则将所述数据库语句添加至数据库语句不兼容列表。
由于不同类型的数据库其原理不同,比如mysql与oracle的索引结构、原理以及调用函数都不同,无法完全兼容,迁移工具并不能完全解决这些问题,故迁移过程中,可能会存在索引丢失,函数不兼容等各种问题,进而导致原先在mysql正常的SQL到新数据库上会执行很久。因此,如果是执行成功的SQL,还需要记录每一条SQL的执行时间,同时,可以对比记录该SQL在mysql以及oracle数据库的执行时间,针对执行时间差异比较大的语句也需要进行记录处理,此时,可能在新数据库中存在未建立索引或者其他特殊的问题有待解决。
在一些实施例中,若所述第二数据库中不存在执行失败的数据库语句,还可以根据数据库语句在第一数据库的执行日志和第二数据库的执行日志计算差异日志,若所述差异日志中存在异常信息,则将所述数据库语句添加至数据库语句不兼容列表。
具体的,还可以通过日志数据的比对,获取到差异日志,若差异日志中存在预设的异常信息或者差异日志的数量大于预设数量,也需要进行记录处理。
之后,还可以基于数据库语句不兼容列表生成数据库语句在第一数据库和第二数据库执行的对比数据报告。
因此,本实施例中能够由原先人工操作获取不兼容SQL列表的方式,变成自动化获取,同时,还能够获取多份不同维度的对比数据报告,能够进一步减少人力成本,提高迁移兼容检测的工作效率。
实施例二
请参照图2,一种数据迁移的兼容检测终端1,包括存储器2、处理器3以及存储在所述存储器2上并可在处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例一的一种数据迁移的兼容检测方法的各个步骤。
综上所述,本发明提供的一种数据迁移的兼容检测方法及终端,当接收到的数据库语句的访问地址是第一数据库时,将数据库语句的访问地址修改为数据库代理服务器的地址,以此方式原先访问第一数据库的数据库语句即可转移到数据库代理服务器上进行。通过数据库代理服务器将数据库语句发送至消息中间件,发送完毕后数据库代理服务器将数据库语句发送至第一数据库;由消息中间件的消费者将数据库语句在第二数据库中执行,若第二数据库执行失败则将数据库语句存入数据库语句不兼容列表,若执行成功,则根据第一数据库和第二数据库的执行情况来检测是否有执行超时或者其他异常的情况,若有也需要进行对应数据库语句的记录。因此能够经由代理服务器和消息中间件将数据库语句发往第二数据库中,根据在第一数据库和第二数据库中相同数据库语句的执行情况自动生成数据库语句不兼容列表,提高迁移兼容检测的效率。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据迁移的兼容检测方法,其特征在于,包括步骤:
接收数据库语句,若所述数据库语句的访问地址是第一数据库,则将所述数据库语句的访问地址修改为数据库代理服务器的地址;
通过所述数据库代理服务器将所述数据库语句发送至消息中间件,由消息中间件的消费者将所述数据库语句在第二数据库中执行,若所述第二数据库中存在执行失败的数据库语句,则获取所述第二数据库中由执行失败的所述数据库语句生成的数据库语句不兼容列表;
所述第一数据库为迁移前的数据库,所述第二数据库为迁移后的数据库。
2.根据权利要求1所述的一种数据迁移的兼容检测方法,其特征在于,通过所述数据库代理服务器将所述数据库语句发送至消息中间件,之后还包括:
通过所述数据库代理服务器将所述数据库语句转发至第一数据库执行。
3.根据权利要求2所述的一种数据迁移的兼容检测方法,其特征在于,若所述第二数据库中不存在执行失败的数据库语句,则根据数据库语句在第一数据库的执行时间和第二数据库的执行时间计算时间差异,若所述时间差异大于阈值,则将所述数据库语句添加至数据库语句不兼容列表。
4.根据权利要求2所述的一种数据迁移的兼容检测方法,其特征在于,还包括:
若所述第二数据库中不存在执行失败的数据库语句,则根据数据库语句在第一数据库的执行日志和第二数据库的执行日志计算差异日志,若所述差异日志中存在异常信息,则将所述数据库语句添加至数据库语句不兼容列表。
5.根据权利要求3或4所述的一种数据迁移的兼容检测方法,其特征在于,获取数据库语句不兼容列表,之后还包括:
基于数据库语句不兼容列表生成数据库语句在第一数据库和第二数据库执行的对比数据报告。
6.一种数据迁移的兼容检测终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
接收数据库语句,若所述数据库语句的访问地址是第一数据库,则将所述数据库语句的访问地址修改为数据库代理服务器的地址;
通过所述数据库代理服务器将所述数据库语句发送至消息中间件,由消息中间件的消费者将所述数据库语句在第二数据库中执行,若所述第二数据库中存在执行失败的数据库语句,则获取所述第二数据库中由执行失败的所述数据库语句生成的数据库语句不兼容列表;
所述第一数据库为迁移前的数据库,所述第二数据库为迁移后的数据库。
7.根据权利要求6所述的一种数据迁移的兼容检测终端,其特征在于,通过所述数据库代理服务器将所述数据库语句发送至消息中间件,之后还包括:
通过所述数据库代理服务器将所述数据库语句转发至第一数据库执行。
8.根据权利要求7所述的一种数据迁移的兼容检测终端,其特征在于,若所述第二数据库中不存在执行失败的数据库语句,则根据数据库语句在第一数据库的执行时间和第二数据库的执行时间计算时间差异,若所述时间差异大于阈值,则将所述数据库语句添加至数据库语句不兼容列表。
9.根据权利要求7所述的一种数据迁移的兼容检测终端,其特征在于,还包括:
若所述第二数据库中不存在执行失败的数据库语句,则根据数据库语句在第一数据库的执行日志和第二数据库的执行日志计算差异日志,若所述差异日志中存在异常信息,则将所述数据库语句添加至数据库语句不兼容列表。
10.根据权利要求8或9所述的一种数据迁移的兼容检测终端,其特征在于,获取数据库语句不兼容列表,之后还包括:
基于数据库语句不兼容列表生成数据库语句在第一数据库和第二数据库执行的对比数据报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311129857.9A CN117216029A (zh) | 2023-09-04 | 2023-09-04 | 一种数据迁移的兼容检测方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311129857.9A CN117216029A (zh) | 2023-09-04 | 2023-09-04 | 一种数据迁移的兼容检测方法及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117216029A true CN117216029A (zh) | 2023-12-12 |
Family
ID=89038076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311129857.9A Pending CN117216029A (zh) | 2023-09-04 | 2023-09-04 | 一种数据迁移的兼容检测方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117216029A (zh) |
-
2023
- 2023-09-04 CN CN202311129857.9A patent/CN117216029A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11086725B2 (en) | Orchestration of heterogeneous multi-role applications | |
US11113158B2 (en) | Rolling back kubernetes applications | |
CN112131237B (zh) | 数据同步方法、装置、设备及计算机可读介质 | |
US6801914B2 (en) | Persistent client-server database sessions | |
CN101964820B (zh) | 一种保持数据一致性的方法及系统 | |
US11347684B2 (en) | Rolling back KUBERNETES applications including custom resources | |
US9189348B2 (en) | High availability database management system and database management method using same | |
CN109325016B (zh) | 数据迁移方法、装置、介质及电子设备 | |
US20220229822A1 (en) | Data processing method and device for distributed database, storage medium, and electronic device | |
US20120191655A1 (en) | Method for Backing up Terminal Data and System Thereof | |
CN110188114B (zh) | 一种数据操作的优化方法、装置、系统、设备和存储介质 | |
CN113111129A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN107612950B (zh) | 一种提供服务的方法、装置、系统、电子设备 | |
EP3786802A1 (en) | Method and device for failover in hbase system | |
JPH0628402A (ja) | アクティブなデータ辞書を維持するためのデータ辞書マネージャ | |
US20130024863A1 (en) | System and method for providing dynamic transaction optimizations | |
CN1963821A (zh) | 一种实现数据库访问的方法、系统和装置 | |
CN108460160B (zh) | 数据库实例的下线方法、装置、终端及存储介质 | |
CN116501700B (zh) | 一种app格式化文件离线存储方法、装置、设备及存储介质 | |
CN112711606A (zh) | 数据库访问方法、装置、计算机设备和存储介质 | |
CN111124370A (zh) | 一种数据处理方法及相关设备 | |
CN117216029A (zh) | 一种数据迁移的兼容检测方法及终端 | |
CN112765126B (zh) | 数据库事务的管理方法、装置、计算机设备和存储介质 | |
CN113448775B (zh) | 多源异构数据备份方法及装置 | |
CN113010229A (zh) | 一种分布式异构软件集群配置管理框架 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |