本申请涉及数据迁移,尤其涉及一种数据库迁移方法、装置、设备、存储介质及程序产品。
背景技术:
1、随着项目增多相应数据库快速增长,对数据库的迁移需求也越来越频繁。复杂的数据库系统通常由企业、政府和其他大型实体(统称为客户)来维护,这些客户容忍系统离线的能力有限。
2、传统的基于双数据源的数据库迁移方案要求目标数据库和源数据库之间必须同时存在强依赖的基础配置信息支持业务逻辑在双数据源中形成闭环,且业务数据必须有分库因子以进行流量切换,方案的适用范围较窄,通用性较差。
3、上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本申请的主要目的在于提供一种数据库迁移方法、装置、设备、存储介质及程序产品,旨在解决现有的基于双数据源的数据库迁移方法通用性较差的技术问题。
2、为实现上述目的,本申请提出一种数据库迁移方法,所述方法包括:
3、接收数据库迁移请求;
4、基于预设的双写开关和执行线程,根据所述数据库迁移请求,对预设的目标数据库和源数据库进行流量调整,获得流量调整结果;
5、根据所述流量调整结果,通过所述双写开关和执行线程,获得数据库迁移结果。
6、在一实施例中,所述执行线程包括主线程和副线程,所述基于预设的双写开关和执行线程,根据所述数据库迁移请求,对预设的目标数据库和源数据库进行流量调整,获得流量调整结果的步骤包括:
7、根据所述数据库迁移请求,将所述双写开关切换为开启状态,并获取第一结构化查询语句sql集合;
8、根据第一sql集合,通过所述主线程和副线程,对所述目标数据库和源数据库进行流量验证,获得流量验证结果;
9、根据所述流量验证结果,通过所述主线程和副线程,对所述目标数据库和源数据库进行流量切换,获得所述流量调整结果。
10、在一实施例中,所述根据第一sql集合,通过所述主线程和副线程,对所述目标数据库和源数据库进行流量验证,获得流量验证结果的步骤包括:
11、将所述副线程与所述目标数据库进行绑定,并基于预设的线程局部变量机制,将所述主线程与所述源数据库进行绑定;
12、通过所述主线程,根据所述第一sql集合,对所述源数据库执行相应操作,获得第一执行结果;
13、通过所述副线程,根据所述第一sql集合,对所述目标数据库执行相应操作,获得第二执行结果;
14、对所述第一执行结果和第二执行结果进行比对,获得所述流量验证结果。
15、在一实施例中,所述根据所述流量验证结果,通过所述主线程和副线程,对所述目标数据库和源数据库进行流量切换,获得所述流量调整结果的步骤包括:
16、判断所述流量调整结果是否满足第一预设条件;
17、若是,则获取第二sql集合,并将所述副线程与所述源数据库进行绑定,并基于预设的线程局部变量机制,将所述主线程与所述目标数据库进行绑定;
18、通过所述主线程,根据所述第二sql集合,对所述目标数据库执行相应操作,获得第三执行结果;
19、通过所述副线程,根据所述第二sql集合,对所述源数据库执行相应操作,获得第四执行结果;
20、对所述第三执行结果和第四执行结果进行比对,获得所述流量调整结果。
21、在一实施例中,所述执行线程包括主线程和副线程,所述主线程为支撑应用业务的线程,所述根据所述流量调整结果,通过所述双写开关和执行线程,获得数据库迁移结果的步骤包括:
22、判断所述流量调整结果是否满足第二预设条件;
23、若是,则移除所述副线程,并将所述双写开关切换为关闭状态,生成所述数据库迁移结果。
24、在一实施例中,所述基于预设的双写开关和执行线程,根据所述数据库迁移请求,对预设的目标数据库和源数据库进行流量调整,获得流量调整结果的步骤之前还包括:
25、接收数据复制指令;
26、根据所述数据复制指令,通过预设的数据复制工具,将所述源数据库中的数据全量复制到预设的原始目标数据库中,获得所述目标数据库。
27、此外,为实现上述目的,本申请还提出一种数据库迁移装置,所述数据库迁移装置包括:
28、请求接收模块,用于接收数据库迁移请求;
29、流量调整模块,用于基于预设的双写开关和执行线程,根据所述数据库迁移请求,对预设的目标数据库和源数据库进行流量调整,获得流量调整结果;
30、数据库迁移模块,用于根据所述流量调整结果,通过所述双写开关和执行线程,获得数据库迁移结果。
31、此外,为实现上述目的,本申请还提出一种数据库迁移设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的数据库迁移方法的步骤。
32、此外,为实现上述目的,本申请还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的数据库迁移方法的步骤。
33、此外,为实现上述目的,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的数据库迁移方法的步骤。
34、本申请提供了一种数据库迁移方法,通过双写开关和执行线程,对目标数据库和源数据库在sql维度进行流量调整,双库数据实时一致,不涉及双库底层依赖数据的完整性,无需在业务数据中提取分库因子,也无需双数据源中同时存在强依赖的基础配置信息,解决了现有的基于双数据源的数据库迁移方法通用性较差的技术问题,提高了数据库迁移的可用性。
1.一种数据库迁移方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述执行线程包括主线程和副线程,所述基于预设的双写开关和执行线程,根据所述数据库迁移请求,对预设的目标数据库和源数据库进行流量调整,获得流量调整结果的步骤包括:
3.如权利要求2所述的方法,其特征在于,所述根据第一sql集合,通过所述主线程和副线程,对所述目标数据库和源数据库进行流量验证,获得流量验证结果的步骤包括:
4.如权利要求2所述的方法,其特征在于,所述根据所述流量验证结果,通过所述主线程和副线程,对所述目标数据库和源数据库进行流量切换,获得所述流量调整结果的步骤包括:
5.如权利要求1所述的方法,其特征在于,所述执行线程包括主线程和副线程,所述主线程为支撑应用业务的线程,所述根据所述流量调整结果,通过所述双写开关和执行线程,获得数据库迁移结果的步骤包括:
6.如权利要求1所述的方法,其特征在于,所述基于预设的双写开关和执行线程,根据所述数据库迁移请求,对预设的目标数据库和源数据库进行流量调整,获得流量调整结果的步骤之前还包括:
7.一种数据库迁移装置,其特征在于,所述装置包括:
8.一种数据库迁移设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如权利要求1至6中任一项所述的数据库迁移方法的步骤。
9.一种存储介质,其特征在于,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的数据库迁移方法的步骤。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的数据库迁移方法的步骤。