数据库迁移方法及装置、电子设备、存储介质与流程

未命名 09-22 阅读:58 评论:0


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.迁移完成模块,配置为在预设时段内所述源数据库中不存在更新操作,且所述源数据库中已存在的数据均复制到所述目标数据库的情况下,确定所述目标数据库迁移完成。
44.在一些实施例中,所述装置还包括:
45.开关模块,配置为配置路由开关;在向所述目标数据库迁移过程中,将所述路由开关配置为处于第一开关状态;在所述目标数据库迁移完成时,将所述路由开关配置为处于第二开关状态;其中,在所述路由开关配置为处于所述第二开关状态的情况下,所述应用软件切换为连接所述目标数据库;在所述路由开关配置为处于所述第一开关状态的情况下,所述应用软件切换为连接所述目标数据库和所述源数据库。
46.根据本公开实施例的第三方面,提供一种电子设备,至少包括:
47.处理器;
48.用于存储处理器可执行指令的存储器;
49.其中,所述处理器被配置为执行如上述第一方面中所述的数据库迁移方法。
50.根据本公开实施例的第四方面,提供一种存储介质,包括:
51.当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述第一方面中的数据库迁移方法。
52.本公开的实施例提供的技术方案可以包括以下有益效果:
53.本公开实施例在迁移过程中,可以基于应用软件在读写请求中读写数据的标识选择在目标数据库或者源数据库中进行读写操作。也就是说,本公开实施例在迁移过程中应用软件仍然可以访问目标数据库和源数据库,进而能够采用零中断业务的方式实现数据库迁移。并且,本公开实施例能够依据迁移前后产生数据的标识特点灵活的选择不同的数据库进行读写操作,能够降低迁移过程中应用软件读写数据异常的情况。此外,相对于将迁移后产生的数据配置为存储在源数据库,再从源数据库中同步到目标数据库,本公开实施例直接将迁移后产生的数据配置为存储在目标数据库中,进而针对迁移后产生的数据可以直接在目标数据库中进行读写,不需要同步迁移后产生的数据,能够减少迁移数据量。
54.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
55.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
56.图1是根据一示例性实施例示出的一种数据库迁移方法的流程示意图一。
57.图2是根据一示例性实施例示出的一种数据库迁移方法的流程示意图二。
58.图3是根据一示例性实施例示出的一种数据库迁移方法的流程示意图三。
59.图4是根据一示例性实施例示出的一种数据库迁移装置的框图。
60.图5是根据一示例性实施例示出的一种电子设备的结构示意图。
具体实施方式
61.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
62.本公开实施例提供一种数据库迁移方法,该数据库迁移方法可应用在应用软件运行过程中进行数据库迁移的场景。例如,在客户端的收银软件运行时,通过该数据库迁移方法可以使得目标数据库和源数据库均连接该收银软件,进而使得在迁移过程中收银软件可以选择目标数据库或者源数据库进行读写操作,能够实现在迁移中不需要中断收银软件的使用。
63.图1是根据一示例性实施例示出的一种数据库迁移方法的流程示意图一。如图1所示,该数据库迁移方法可以包括以下步骤:
64.s101、在接收到迁移指令的情况下,将应用软件配置为连接源数据库和目标数据库,并开启所述源数据库的主从复制功能;
65.s102、对所述应用软件在迁移前后产生的数据按照标识区分规则进行配置,并将所述应用软件在迁移后产生的数据配置为存储在所述目标数据库中;
66.s103、在向所述目标数据库迁移过程中,基于所述应用软件的读写请求中读写数据的标识,选择在所述目标数据库或者所述源数据库中进行读写操作。
67.本公开实施例中,数据库迁移方法应用在电子设备中,该电子设备可以是包括源数据库和目标数据库的服务器,还可以是独立于包括源数据库和目标数据库的服务器以外的设备,本公开实施例不作限制。
68.需要说明的是,电子设备可以配置源数据库和目标数据库上的各类参数(例如,各类参数包括将源数据库配置为连接应用软件的连接参数、将目标数据库配置为连接应用软件的连接参数或者配置主从复制功能参数,能够将源数据库中的数据迁移到目标数据库中)。这里,电子设备还可以配置应用软件在迁移前后产生数据的规则,使得能够区分应用软件在迁移前后产生的数据。
69.本公开实施例中,该应用软件可包括收银软件、打车软件或者快递软件中的至少一个软件,本公开实施例不作限制。这里,在应用软件为多个时,可以将多个应用软件配置为均连接源数据库和目标数据库。
70.在步骤s101中,接收到迁移指令,可包括通过电子设备的通信模组接收到迁移指
令,还可包括通过电子设备的语音模组接收到该迁移指令,还可包括通过触发电子设备的按键模组以接收该迁移指令,本公开实施例不作限制。
71.这里,迁移指令用于表征需要对源数据库中存储的数据进行迁移,将源数据库中存储的数据,迁移到目标数据库中。
72.上述源数据库和目标数据库都是提供数据的载体,可以将源数据库和目标数据库作为一个整体,同时提供数据供应用软件进行读写操作。也就是说,本公开实施例将应用软件配置为连接源数据库和目标数据库,这样在应用软件读写时既可以选择源数据库进行读写操作,还可以选择目标数据库进行读写操作。
73.需要说明的是,源数据库和目标数据库均可为关系型数据库或者文档型数据库。其中,关系型数据库中的数据是以记录的形式存放;文档型数据库是一种文档化数据库,文档型数据库中的数据是以文档的形式存放。
74.本公开实施例中,电子设备针对源数据库配置有主从复制功能,该源数据库可作为主库,目标数据库可作为从库,该主从复制功能用于将源数据库中存储的数据通过复制同步到目标数据库中。在开启主从复制功能时,源数据库中存储的数据开始逐步同步到目标数据库中;在关闭主从复制功能时,源数据库中存储的数据停止向目标数据库中同步。
75.这里,可通过不同数据库名称区分源数据库和目标数据库。例如,可将源数据库命名为source,目标数据库命名为target。
76.需要说明的是,应用软件运行过程中对数据做迁移操作会导致应用软件读写数据异常。例如,应用软件因找不到写入的源数据导致读写失败;或者,更新数据时由于源数据已经迁移导致更新失败。对此,本公开实施例在电子设备执行主从复制功能的情况下,应用软件同时连接源数据库和目标数据库,可以在迁移过程中选择源数据库和目标数据库进行读写操作,进而能够降低迁移过程中应用软件读写数据失败的情况。
77.在步骤s102中,标识区分规则用于区分应用软件在迁移前后产生的数据。在一些实施例中,标识区别规则可包括标识值区分规则,对应的可通过将应用软件在迁移前后产生的数据的标识值与标识阈值进行比较来区分迁移前后产生的数据。
78.例如,将应用软件在迁移前产生的数据的标识值配置为小于标识阈值,将应用软件在迁移后产生的数据的标识值配置为大于标识阈值。
79.在另一些实施例中,该标识区分规则还可包括标识位数区分规则,对应的可通过将应用软件在迁移前后产生的数据的标识位数配置为不同来区分迁移前后产生的数据。
80.例如,将应用软件在迁移前产生的数据的标识的位数配置为第二位数,将应用软件在迁移后产生的数据的标识的位数配置为第一位数,第一位数与第二位数不同。
81.本公开实施例中,将应用软件在迁移后产生的数据配置为存储在目标数据库中,对应的,应用软件在迁移后产生的数据会路由至目标数据库而不再是路由至源数据库中。可见,目标数据库中不仅存储有通过主从复制功能从源数据库中同步过来数据,还存储有迁移后产生的数据。
82.需要说明的是,相对于将迁移后产生的数据配置为存储在源数据库,再从源数据库中同步到目标数据库,本公开实施例直接将迁移后产生的数据配置为存储在目标数据库中,进而针对迁移后产生的数据可以直接在目标数据库中进行读写,不需要同步迁移后产生的数据,能够减少迁移的数据量。
83.在步骤103中,应用软件的读写请求中携带有读写数据的标识,在数据库迁移的配置完成后,可以基于应用软件的读写请求中读写数据的标识,选择目标数据库或者源数据库中进行读写操作。
84.本公开实施例中,应用软件在迁移后产生的数据存储在目标数据库中,又应用软件在迁移前产生的数据存储在源数据库中。基于读写数据的标识,选择目标数据库或者源数据库中进行读写操作,可包括:基于读写数据的标识,确定读写数据是属于针对迁移前产生的数据进行读写操作,还是属于针对迁移后产生的数据进行读写操作;当确定是针对迁移前产生的数据进行读写操作,则选择在源数据库中进行读写操作;当确定是针对迁移后产生的数据进行读写操作,则选择在目标数据库中进行读写操作。
85.也就是说,本公开实施例在对迁移后产生的数据进行读写时可以直接选择在目标数据库中进行读写操作,在对迁移前产生的数据进行读写时可以直接选择在源数据库中进行读写操作。如此,本公开实施例能够针对迁移前后产生的数据采用不同的数据库进行读写操作,不仅可以减少迁移的数据量,还能够针对迁移前后产生的数据的标识特点灵活的选择不同数据库进行读写操作,进而能够降低迁移过程中应用软件读写数据异常的情况。
86.本公开实施例中,在源数据库中存储的数据向目标数据库迁移过程中,基于应用软件的读写请求中读写数据的标识,选择在目标数据库或者源数据库中进行读写操作。在一些实施例中,如图2所示,所述方法还包括以下步骤:
87.s104、在目标数据库迁移完成的情况下,将所述应用软件配置为连接所述目标数据库,并关闭所述主从复制功能。
88.需要说明的是,目标数据迁移完成,表明源数据库中存储的数据,均已迁移到了目标数据库。这时,应用软件不需要连接源数据库,可以直接连接目标数据库以采用目标数据库提供服务。
89.本公开实施例中,在接收到迁移指令的情况下,将应用软件配置为连接源数据库和目标数据库;在目标数据库迁移完成的情况下,将应用软件配置为连接目标数据库。这里,本公开实施例可以采用不同方式来对应用软件所连接的数据库进行配置。
90.在一些实施例中,所述方法还包括:
91.配置路由开关;
92.在向所述目标数据库迁移过程中,将所述路由开关配置为处于第一开关状态;
93.在所述目标数据库迁移完成时,将所述路由开关配置为处于第二开关状态;
94.其中,在所述路由开关配置为处于所述第二开关状态的情况下,所述应用软件切换为连接所述目标数据库;
95.在所述路由开关配置为处于所述第一开关状态的情况下,所述应用软件切换为连接所述目标数据库和所述源数据库。
96.也就是说,本公开实施例是基于路由开关的开关状态,实现应用软件从连接源数据库和目标数据库,切换到连接目标数据库。这里,将应用软件切换为连接目标数据库,进而应用软件在目标数据库中进行读写操作;将应用软件切换为连接目标数据库和源数据库,进而应用软件选择在目标数据库和源数据库进行读写操作。如此,本公开实施例实现了在迁移过程中和迁移完成后均有对应的数据库可以提供读写,能够减少应用软件读写数据的异常,提高了用户使用体验感。
97.本公开实施例中,考虑到迁移前产生的数据也同样存在更新,虽然通过主从复制功能可能已经同步到了目标数据库,但是可能存在同步延迟导致源数据库和目标数据库中数据不一致的情况,因此,还需要对源数据库是否存在更新操作进行判断,以来确定是否迁移完成。这里,更新操作用于表征会对源数据库中的数据进行变更的操作,该更新操作包括但不限于写操作。
98.在一些实施例中,在预设时段内所述源数据库中不存在更新操作,且所述源数据库中已存在的数据均复制到所述目标数据库的情况下,确定所述目标数据库迁移完成。
99.本公开实施例中,电子设备可通过源数据库中写数据的频率来判断源数据库是否不存在更新操作。例如,在源数据库中写数据的频率小于频率阈值的情况下,确定源数据库不存在更新操作。
100.这里,将应用软件在迁移后产生的数据配置为存储在目标数据库中,这样迁移后产生的数据会路由至目标数据库进行读写操作。源数据库在预设时间段因没有写操作导致没有数据变更的情况下,可以通过主从复制功能将源数据库中的数据全量路由至目标数据库,以使得目标数据库迁移完成。此时,电子设备可以不需要源数据库作为数据载体提供服务,而是仅采用目标数据库作为数据载体提供服务。如此,本公开实施例能够更加准确的判断迁移是否完成,进一步降低了应用软件在迁移过程中读写异常的情况。
101.示例性地,现有数据库迁移采用的方案需要中断业务,且中断业务的中断时间与迁移数据量成正比关系,在迁移数据量大的情况下,中断时间随之增加,影响应用软件的使用体验。
102.基于此,本公开实施例的应用软件配置为连接源数据库和目标数据库,应用软件在迁移前后产生的数据按照标识区分规则进行配置,应用软件在迁移后产生的数据存储在目标数据库中。这样在迁移过程中,本公开实施例可以基于应用软件在读写请求中读写数据的标识选择在目标数据库或者源数据库中进行读写操作。也就是说,本公开实施例在迁移过程中应用软件仍然可以访问目标数据库和源数据库,进而能够采用零中断业务的方式实现数据库迁移,能够提高应用软件的使用体验。并且,本公开实施例能够依据迁移前后产生数据的标识特点灵活的选择不同的数据库进行读写操作,能够降低迁移过程中应用软件读写数据异常的情况。此外,相对于将迁移后产生的数据配置为存储在源数据库,再从源数据库中同步到目标数据库,本公开实施例直接将迁移后产生的数据配置为存储在目标数据库中,进而针对迁移后产生的数据可以直接在目标数据库中进行读写,不需要同步迁移后产生的数据,能够减少迁移数据量。
103.在一些实施例中,所述基于所述应用软件的读写请求中读写数据的标识,选择在所述目标数据库或者所述源数据库中进行读写操作,包括:
104.基于所述读写数据的标识是否满足通过所述标识区分规则确定的路由条件,选择在所述目标数据库或者所述源数据库中进行读写操作。
105.本公开实施例中,通过标识区分规则可以确定路由条件。在一些实施例中,标识区分规则包括标识值区分规则,对应的路由条件为由标识值区分规则确定的;在另一些实施例中,标识区分规则包括标识位数区分规则,对应的路由条件为由标识位数区分规则确定的。
106.需要说明的是,不同的标识区分规则,对应有不同的路由条件。本公开实施例可以
基于标识满足不同的路由条件选择路由至目标数据库或者源数据库中进行读写操作,能够使得数据库的选择更加灵活。
107.在一些实施例中,所述对所述应用软件在迁移前后产生的数据按照标识区分规则进行配置,包括:
108.将所述应用软件在迁移后产生的数据的标识的位数配置为第一位数;
109.将所述应用软件在迁移前产生的数据的标识的位数配置为第二位数;所述第二位数小于所述第一位数;
110.所述基于所述读写数据的标识是否满足通过所述标识区分规则确定的路由条件,选择在所述目标数据库或者所述源数据库中进行读写操作,包括:
111.在确定所述读写数据的标识的位数为所述第一位数的情况下,将所述读写数据路由至所述目标数据库进行读写操作;
112.在确定所述读写数据的标识的位数为所述第二位数的情况下,将所述读写数据路由至所述源数据库进行读写操作。
113.本公开实施例中,将应用软件在迁移后产生的数据的标识的位数配置为第一位数;将应用软件在迁移前产生的数据的标识的位数配置为第二位数;第二位数小于第一位数。也就是说,应用软件在迁移前后产生的数据的标识的位数不同,迁移后产生的数据的标识的位数大于迁移前产生的数据的标识的位数。这时,本公开实施例可通过识别读写数据的标识的位数来区分是针对迁移前产生的数据进行读写操作还是针对迁移后产生的数据进行读写操作,进而可以对应的选择目标数据库还是源数据库进行读写操作。
114.示例性地,第一位数可为32位,第二位数可为30位,在确定读写数据的标识的位数为32位时,确定是针对迁移后的数据进行读写操作,进而可以选择将读写数据路由至目标数据库进行读写操作;在确定读写数据的标识的位数为30位,确定是针对迁移前的数据进行读写操作,进而可以选择将读写数据路由至源数据库进行读写操作。
115.本公开实施例中,通过识别读写数据的标识的位数来区分是针对迁移前产生的数据进行读写操作还是针对迁移后产生的数据进行读写操作,进而可以对应的选择目标数据库还是源数据库进行读写操作。如此,在不需要中断应用软件的基础上本公开实施例在迁移过程中能够降低应用软件读写异常的情况。
116.在一些实施例中,所述对所述应用软件在迁移前后产生的数据按照标识区分规则进行配置,包括:
117.将所述应用软件在迁移前后产生的数据的标识值按照递增规则进行配置;
118.所述基于所述读写数据的标识是否满足通过所述标识区分规则确定的路由条件,选择在所述目标数据库或者所述源数据库中进行读写操作,包括:
119.在所述读写数据的标识值大于或等于所述标识阈值的情况下,将所述读写数据路由至所述目标数据库进行读写操作;
120.在所述读写数据的标识值小于所述标识阈值的情况下,将所述读写数据路由至所述源数据库进行读写操作。
121.本公开实施例中,应用软件在迁移前后产生的数据的标识值按照递增规则进行配置,这样可以设置一个标识阈值,应用软件在迁移前产生的数据的标识的最大值小于标识阈值;应用软件在迁移后产生的数据的标识的最小值大于或者等于标识阈值。也就是说,应
用软件在迁移前产生的所有数据的标识值均小于标识阈值,应用软件在迁移后产生的数据的标识值可以大于或者等于标识阈值。这时,本公开实施例可通过比较读写数据的标识值的大小来区分是针对迁移前产生的数据进行读写操作还是针对迁移后产生的数据进行读写操作,进而可以对应的选择目标数据库还是源数据库进行读写操作。
122.本公开实施例中,电子设备可记录应用软件在迁移后产生的第一条数据的标识值,基于该第一条数据的标识值确定标识阈值。例如,可将第一条数据的标识值作为标识阈值。
123.示例性地,迁移前产生的数据的标识值最大值为2023040416310000,应用软件在迁移后产生的第一条数据的标识值为2023040416310001;这样,在读写数据的标识值大于或等于2023040416310001的情况下,确定是针对迁移后的数据进行读写操作,进而可以选择将读写数据路由至目标数据库进行读写操作;在读写数据的标识值小于2023040416310001的情况下,确定是针对迁移前的数据进行读写操作,进而可以选择将读写数据路由至源数据库进行读写操作。
124.本公开实施例中,通过比较读写数据的标识值的大小来区分是针对迁移前产生的数据进行读写操作还是针对迁移后产生的数据进行读写操作,进而可以对应的选择目标数据库还是源数据库进行读写操作。如此,本公开实施例不仅可通过标识位数来区分迁移前后的数据,还可以通过标识值大小来区分迁移前后的数据,使得迁移前后数据的区分更加灵活。并且,本公开实施例在不需要中断应用软件的基础上能够降低应用软件读写异常的情况。
125.为了更好的理解上述一种或多种实施例中的数据库迁移方法,本公开实施例示例如下:
126.如图3所示,电子设备执行数据库迁移方法还可以包括以下步骤:
127.s201、在接收到迁移指令的情况下,开启源数据库的主从复制功能;
128.s202、将路由开关配置为处于第一开关状态,使得应用软件切换为连接目标数据库和源数据库;
129.s203、对应用软件在迁移前后产生的数据按照标识区分规则进行配置;
130.s204、将应用软件在迁移后产生的数据配置为存储在目标数据库中;
131.s205、在向目标数据库迁移过程中,基于应用软件的读写请求中读写数据的标识,选择在目标数据库或者源数据库中进行读写操作;
132.s206、判断预设时段内源数据库中是否不存在更新操作;若是,转步骤s207;若否,转步骤s208;
133.s207、判断源数据库中存在的数据是否均同步到目标数据库;若是,转步骤s209;若否,转步骤s211;
134.s208、继续等待更新;
135.s209、将路由开关配置为处于第二开关状态,使得应用软件切换为连接目标数据库;
136.s210、关闭主从复制功能,数据库迁移完成;
137.s211、继续等待同步。
138.本公开实施例中,基于应用软件在读写请求中读写数据的标识选择在目标数据库
或者源数据库中进行读写操作。也就是说,本公开实施例在迁移过程中应用软件仍然可以访问目标数据库和源数据库,进而能够采用零中断业务的方式实现数据库迁移。并且,本公开实施例能够依据迁移前后产生数据的标识特点灵活的选择不同的数据库进行读写操作,能够降低迁移过程中应用软件读写数据异常的情况。此外,相对于将迁移后产生的数据配置为存储在源数据库,再从源数据库中同步到目标数据库,本公开实施例直接将迁移后产生的数据配置为存储在目标数据库中,进而针对迁移后产生的数据可以直接在目标数据库中进行读写,不需要同步迁移后产生的数据,能够减少迁移数据量。
139.本公开实施例还提出一种数据库迁移装置,图4是根据一示例性实施例示出的一种数据库迁移装置的框图。如图4所示,所述数据库迁移装置1000包括:
140.第一迁移模块1001,配置为在接收到迁移指令的情况下,将应用软件配置为连接源数据库和目标数据库,并开启所述源数据库的主从复制功能;
141.第二迁移模块1002,配置为对所述应用软件在迁移前后产生的数据按照标识区分规则进行配置,并将所述应用软件在迁移后产生的数据配置为存储在所述目标数据库中;
142.选择模块1003,配置为在向所述目标数据库迁移过程中,基于所述应用软件的读写请求中读写数据的标识,选择在所述目标数据库或者所述源数据库中进行读写操作。
143.在一些实施例中,所述选择模块,还配置为基于所述读写数据的标识是否满足通过所述标识区分规则确定的路由条件,选择在所述目标数据库或者所述源数据库中进行读写操作。
144.在一些实施例中,所述第二迁移模块,还配置为将所述应用软件在迁移后产生的数据的标识的位数配置为第一位数;将所述应用软件在迁移前产生的数据的标识的位数配置为第二位数;所述第二位数小于所述第一位数;
145.所述选择模块,还配置为在确定所述读写数据的标识的位数为所述第一位数的情况下,将所述读写数据路由至所述目标数据库进行读写操作;在确定所述读写数据的标识的位数为所述第二位数的情况下,将所述读写数据路由至所述源数据库进行读写操作。
146.在一些实施例中,所述第二迁移模块,还配置为将所述应用软件在迁移前后产生的数据的标识值按照递增规则进行配置;
147.所述选择模块,还配置为在所述读写数据的标识值大于或等于所述标识阈值的情况下,将所述读写数据路由至所述目标数据库进行读写操作;在所述读写数据的标识值小于所述标识阈值的情况下,将所述读写数据路由至所述源数据库进行读写操作。
148.在一些实施例中,所述装置还包括:
149.在所述目标数据库迁移完成的情况下,将所述应用软件配置为连接所述目标数据库,并关闭所述主从复制功能。
150.在一些实施例中,所述装置还包括:
151.迁移完成模块,配置为在预设时段内所述源数据库中不存在更新操作,且所述源数据库中已存在的数据均复制到所述目标数据库的情况下,确定所述目标数据库迁移完成。
152.在一些实施例中,所述装置还包括:
153.开关模块,配置为配置路由开关;在向所述目标数据库迁移过程中,将所述路由开关配置为处于第一开关状态;在所述目标数据库迁移完成时,将所述路由开关配置为处于
第二开关状态;其中,在所述路由开关配置为处于所述第二开关状态的情况下,所述应用软件切换为连接所述目标数据库;在所述路由开关配置为处于所述第一开关状态的情况下,所述应用软件切换为连接所述目标数据库和所述源数据库。
154.关于上述实施例装置中的各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
155.如图5所示,本公开一实施例示出一种电子设备900的结构。例如,电子设备900可以被提供为一服务侧设备。该电子设备900可为服务器。
156.参照图5,电子设备900包括处理组件922,其进一步包括一个或多个处理器,以及由存储器932所代表的存储器资源,用于存储可由处理组件922的执行的指令,例如应用程序。存储器932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件922被配置为执行指令,以执行如图1、图2或图3所示的方法的至少其中之一。
157.电子设备900还可以包括一个电源组件926被配置为执行电子设备900的电源管理,一个有线或无线网络接口950被配置为将电子设备900连接到网络,和一个输入输出(i/o)接口958。电子设备900可以操作基于存储在存储器932的操作系统,例如windows server tm,mac os xtm,unixtm,linuxtm,freebsdtm或类似。
158.一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种数据库迁移方法,所述方法包括:在接收到迁移指令的情况下,将应用软件配置为连接源数据库和目标数据库,并开启所述源数据库的主从复制功能;对所述应用软件在迁移前后产生的数据按照标识区分规则进行配置,并将所述应用软件在迁移后产生的数据配置为存储在所述目标数据库中;在向所述目标数据库迁移过程中,基于所述应用软件的读写请求中读写数据的标识,选择在所述目标数据库或者所述源数据库中进行读写操作。
159.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
160.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

技术特征:
1.一种数据库迁移方法,其特征在于,所述方法包括:在接收到迁移指令的情况下,将应用软件配置为连接源数据库和目标数据库,并开启所述源数据库的主从复制功能;对所述应用软件在迁移前后产生的数据按照标识区分规则进行配置,并将所述应用软件在迁移后产生的数据配置为存储在所述目标数据库中;在向所述目标数据库迁移过程中,基于所述应用软件的读写请求中读写数据的标识,选择在所述目标数据库或者所述源数据库中进行读写操作。2.根据权利要求1所述的方法,其特征在于,所述基于所述应用软件的读写请求中读写数据的标识,选择在所述目标数据库或者所述源数据库中进行读写操作,包括:基于所述读写数据的标识是否满足通过所述标识区分规则确定的路由条件,选择在所述目标数据库或者所述源数据库中进行读写操作。3.根据权利要求2所述的方法,其特征在于,所述对所述应用软件在迁移前后产生的数据按照标识区分规则进行配置,包括:将所述应用软件在迁移后产生的数据的标识的位数配置为第一位数;将所述应用软件在迁移前产生的数据的标识的位数配置为第二位数;所述第二位数小于所述第一位数;所述基于所述读写数据的标识是否满足通过所述标识区分规则确定的路由条件,选择在所述目标数据库或者所述源数据库中进行读写操作,包括:在确定所述读写数据的标识的位数为所述第一位数的情况下,将所述读写数据路由至所述目标数据库进行读写操作;在确定所述读写数据的标识的位数为所述第二位数的情况下,将所述读写数据路由至所述源数据库进行读写操作。4.根据权利要求2所述的方法,其特征在于,所述对所述应用软件在迁移前后产生的数据按照标识区分规则进行配置,包括:将所述应用软件在迁移前后产生的数据的标识值按照递增规则进行配置;所述基于所述读写数据的标识是否满足通过所述标识区分规则确定的路由条件,选择在所述目标数据库或者所述源数据库中进行读写操作,包括:在所述读写数据的标识值大于或等于标识阈值的情况下,将所述读写数据路由至所述目标数据库进行读写操作;在所述读写数据的标识值小于所述标识阈值的情况下,将所述读写数据路由至所述源数据库进行读写操作。5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:在所述目标数据库迁移完成的情况下,将所述应用软件配置为连接所述目标数据库,并关闭所述主从复制功能。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:在预设时段内所述源数据库中不存在更新操作,且所述源数据库中已存在的数据均复制到所述目标数据库的情况下,确定所述目标数据库迁移完成。7.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:配置路由开关;
在向所述目标数据库迁移过程中,将所述路由开关配置为处于第一开关状态;在所述目标数据库迁移完成时,将所述路由开关配置为处于第二开关状态;其中,在所述路由开关配置为处于所述第二开关状态的情况下,所述应用软件切换为连接所述目标数据库;在所述路由开关配置为处于所述第一开关状态的情况下,所述应用软件切换为连接所述目标数据库和所述源数据库。8.一种数据库迁移装置,其特征在于,所述装置包括:第一迁移模块,配置为在接收到迁移指令的情况下,将应用软件配置为连接源数据库和目标数据库,并开启所述源数据库的主从复制功能;第二迁移模块,配置为对所述应用软件在迁移前后产生的数据按照标识区分规则进行配置,并将所述应用软件在迁移后产生的数据配置为存储在所述目标数据库中;选择模块,配置为在向所述目标数据库迁移过程中,基于所述应用软件的读写请求中读写数据的标识,选择在所述目标数据库或者所述源数据库中进行读写操作。9.根据权利要求8所述的装置,其特征在于,所述选择模块,还配置为基于所述读写数据的标识是否满足通过所述标识区分规则确定的路由条件,选择在所述目标数据库或者所述源数据库中进行读写操作。10.根据权利要求9所述的装置,其特征在于,所述第二迁移模块,还配置为将所述应用软件在迁移后产生的数据的标识的位数配置为第一位数;将所述应用软件在迁移前产生的数据的标识的位数配置为第二位数;所述第二位数小于所述第一位数;所述选择模块,还配置为在确定所述读写数据的标识的位数为所述第一位数的情况下,将所述读写数据路由至所述目标数据库进行读写操作;在确定所述读写数据的标识的位数为所述第二位数的情况下,将所述读写数据路由至所述源数据库进行读写操作。11.根据权利要求9所述的装置,其特征在于,所述第二迁移模块,还配置为将所述应用软件在迁移前后产生的数据的标识值按照递增规则进行配置;所述选择模块,还配置为在所述读写数据的标识值大于或等于标识阈值的情况下,将所述读写数据路由至所述目标数据库进行读写操作;在所述读写数据的标识值小于所述标识阈值的情况下,将所述读写数据路由至所述源数据库进行读写操作。12.根据权利要求8至11任一项所述的装置,其特征在于,所述装置还包括:在所述目标数据库迁移完成的情况下,将所述应用软件配置为连接所述目标数据库,并关闭所述主从复制功能。13.根据权利要求12所述的装置,其特征在于,所述装置还包括:迁移完成模块,配置为在预设时段内所述源数据库中不存在更新操作,且所述源数据库中已存在的数据均复制到所述目标数据库的情况下,确定所述目标数据库迁移完成。14.根据权利要求8至11任一项所述的装置,其特征在于,所述装置还包括:开关模块,配置为配置路由开关;在向所述目标数据库迁移过程中,将所述路由开关配置为处于第一开关状态;在所述目标数据库迁移完成时,将所述路由开关配置为处于第二开关状态;其中,在所述路由开关配置为处于所述第二开关状态的情况下,所述应用软件切换为连接所述目标数据库;在所述路由开关配置为处于所述第一开关状态的情况下,所述应用软件切换为连接所述目标数据库和所述源数据库。
15.一种电子设备,其特征在于,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行如权利要求1至7中任一项所述的数据库迁移方法。16.一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至7中任一项所述的数据库迁移方法。

技术总结
本公开是关于一种数据库迁移方法及装置、电子设备、存储介质。该数据库迁移方法,至少包括:在接收到迁移指令的情况下,将应用软件配置为连接源数据库和目标数据库,并开启所述源数据库的主从复制功能;对所述应用软件在迁移前后产生的数据按照标识区分规则进行配置,并将所述应用软件在迁移后产生的数据配置为存储在所述目标数据库中;在向所述目标数据库迁移过程中,基于所述应用软件的读写请求中读写数据的标识,选择在所述目标数据库或者所述源数据库中进行读写操作。通过本公开实施例能够采用零中断业务的方式实现数据库迁移。采用零中断业务的方式实现数据库迁移。采用零中断业务的方式实现数据库迁移。


技术研发人员:高新 乔宇 胡光辉
受保护的技术使用者:北京快乐茄信息技术有限公司
技术研发日:2023.06.02
技术公布日:2023/9/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐