一种数据库迁移方法及电子设备与流程

摘要: 本技术涉及数据迁移,尤其涉及一种数据库迁移方法及电子设备。背景技术:1、随着信息技术的快速发展,企业级应用对数据库系统的依赖日益加深,数据库作为核心数据资产的生...
一种数据库迁移方法及电子设备与流程

本技术涉及数据迁移,尤其涉及一种数据库迁移方法及电子设备。

背景技术:

1、随着信息技术的快速发展,企业级应用对数据库系统的依赖日益加深,数据库作为核心数据资产的生产与存储中心,其架构升级、版本迭代及平台迁移已成为企业数字化转型过程中的关键环节。尤其在金融等对数据一致性和服务连续性要求极高的行业中,数据库移植操作的可靠性直接关系到业务系统的稳定运行与客户体验。

2、目前,主流的数据库移植方案通常采用“停机-数据迁移-切换-恢复服务”的通用流程。该类方法在操作层面较为成熟,但其核心逻辑在于通过暂停业务写入来保证数据的一致性,操作期间需中断全部或部分业务服务,难以满足企业对业务连续性的严苛要求。同时,现有方案在切换策略上多采用“一次性整体切换”模式,即所有业务流量在某一时刻统一由源数据库切换至目标数据库,若目标数据库存在性能缺陷或兼容性问题,将导致全量业务不可用,风险高度集中。可见,现有数据库移植方案存在业务连续性差、切换风险集中等问题,难以满足高可用业务场景下的平滑迁移需求。

3、上述内容仅用于辅助理解本技术的技术方案,并不代表承认上述内容是现有技术。

技术实现思路

1、本技术的主要目的在于提供一种数据库迁移方法及电子设备,旨在解决现有数据库移植方案存在业务连续性差、切换风险集中的技术问题。

2、为实现上述目的,本技术提出一种数据库迁移方法,所述的数据库迁移方法,应用于目标系统,包括:

3、将所述目标系统的源数据库中的当前存量数据同步至目标数据库;

4、获取所述同步操作后,所述目标系统路由至所述源数据库的数据请求,作为待回放数据请求;

5、获取所述待回放数据请求的请求接口,以所述请求接口为单位,回放所述待回放数据请求,以验证所述目标数据库对所述请求接口的兼容能力,得到验证结果;

6、基于所述验证结果,将所述请求接口的请求路由切换至所述目标数据库。

7、在一实施例中,所述获取所述同步操作后,所述目标系统路由至所述源数据库的数据请求,作为待回放数据请求的步骤包括:

8、在所述目标系统的数据库驱动层获取所述目标系统路由至所述源数据库的数据请求,作为候选回放数据请求;

9、获取所述候选回放数据请求所属事务在所述源数据库中的事务状态;

10、当所述事务状态为进行中时,将所述候选回放数据请求及所述候选回放数据请求的接口标识组装成回放任务暂存至回放队列;

11、当所述事务状态为提交时,从所述回放队列中取出所述回放任务,作为所述待回放数据请求。

12、在一实施例中,所述获取所述待回放数据请求的请求接口,以所述请求接口为单位,回放所述待回放数据请求,以验证所述目标数据库对所述请求接口的兼容能力,得到验证结果的步骤包括:

13、根据所述待回放数据请求的接口标识,确定所述待回放数据请求的请求接口;

14、从所述回放队列中获取属于所述请求接口的所有回放任务,作为接口回放任务;

15、在所述目标数据库执行所述接口回放任务,以将所述目标系统的源数据库中与所述请求接口相关的增量数据同步至所述目标数据库,同时监测所述接口回放任务的执行结果,得到所述目标数据库对所述请求接口的验证结果。

16、在一实施例中,所述基于所述验证结果,将所述请求接口的请求路由切换至所述目标数据库的步骤包括:

17、在目标系统的缓存中,将所述请求接口的数据源标识由所述源数据库更新为所述目标数据库;

18、当所述请求接口的后续数据请求到达时,根据所述数据源标识将所述后续数据请求路由至所述目标数据库。

19、在一实施例中,所述将所述请求接口的数据源标识由所述源数据库更新为所述目标数据库的步骤之后还包括:

20、从目标系统的回放队列中获取属于所述请求接口且尚未执行的存量回放任务;

21、维持所述存量回放任务在所述目标数据库中的继续执行。

22、在一实施例中,所述以所述请求接口为单位,回放所述待回放数据请求的步骤之前,还包括:

23、获取所述待回放数据请求对应的回放任务的版本号;

24、获取所述目标数据库的当前版本号;

25、若所述回放任务的版本号小于所述目标数据库的当前版本号,则终止所述待回放数据请求。

26、在一实施例中,所述获取所述同步操作后,所述目标系统路由至所述源数据库的数据请求,作为待回放数据请求的步骤之前,还包括:

27、将所述目标系统的请求接口作为切点构建切面,通过所述切面对所述目标系统的请求接口进行拦截;

28、在所述请求接口的方法执行前,通过反射机制获取所述请求接口的接口标识,并将所述接口标识封装至上下文容器。

29、在一实施例中,所述在所述目标系统的数据库驱动层获取所述目标系统路由至所述源数据库的数据请求,作为候选回放数据请求的步骤包括:

30、在所述目标系统的数据库驱动层获取目标系统的数据请求;

31、从所述上下文容器中获取所述数据请求的接口标识;

32、根据所述接口标识,判断所述请求接口是否已完成向所述目标数据库的数据源切换;

33、若所述请求接口未完成向所述目标数据库的数据源切换,则判断所述请求接口是否处于流量回放状态;

34、若所述请求接口处于流量回放状态,则将所述数据请求作为候选回放数据请求。

35、在一实施例中,所述将所述候选回放数据请求及所述候选回放数据请求的接口标识组装成回放任务暂存至回放队列的步骤包括:

36、对所述候选回放数据请求的入参对象进行克隆,得到克隆对象;

37、将所述克隆对象、所述候选回放数据请求及所述候选回放数据请求的接口标识组装成回放任务暂存至所述回放队列。

38、此外,为实现上述目的,本技术还提出一种电子设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的数据库迁移方法的步骤。

39、此外,为实现上述目的,本技术还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的数据库迁移方法的步骤。

40、此外,为实现上述目的,本技术还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的数据库迁移方法的步骤。

41、本技术提出的一个或多个技术方案,至少具有以下技术效果:

42、本技术实施例中,首先将目标系统的源数据库中的数据同步至目标数据库,为后续切换奠定数据基础;接着获取所述同步操作后,所述目标系统路由至所述源数据库的数据请求,作为待回放数据请求,通过在业务不中断的状态下持续捕获流量,替代了传统方案需停机迁移的模式,保障了迁移全过程的业务连续性;然后获取所述待回放数据请求的请求接口,以所述请求接口为单位,回放所述待回放数据请求,以验证所述目标数据库对所述请求接口的兼容能力,得到验证结果,通过前置回放验证机制提前识别目标数据库对请求接口的数据请求的兼容性差异、语法不支持、数据类型不匹配等潜在问题,消除了切换后才发现异常的未知风险;最后基于验证结果,将所述请求接口的请求路由切换至所述目标数据库,通过接口级别的精细化切换控制,将切换风险由全量业务不可用分散至单个或部分接口级别,实现了风险的有效隔离与可控。

43、本实施例通过全流程在线迁移保障业务零中断,通过接口粒度切换实现风险的精细化控制,通过回放验证机制前置发现并消除兼容性隐患,既解决了传统方案停机时间长、切换风险集中的问题,又实现了切换前兼容性的充分验证与修复,显著降低了数据库移植的整体风险,为高可用业务场景下的平滑迁移提供可靠支撑。