本技术实施例涉及计算机领域,具体而言,涉及一种数据库的切换控制方法和装置、存储介质及电子装置。
背景技术:
1、对于一个业务系统而言,能够从对应的数据库中稳定读写数据是业务维持稳定运行的重要保证,因此,一个业务系统可以对应多个冗余的数据库,当前通常使用dataguard技术实现数据库灾备功能,将主数据库(主站点数据库)向备数据库(灾备站点数据库)同步,形成主数据库与备数据库的数据同步关系,通过同步参数使两个数据库间配置成异步的数据同步关系,在两个数据库间网络带宽足够并且数据库压力不是太大的情况下,可以看成是两个数据库的数据是实时同步的。
2、当前,在一些定期的数据库检修场景中需要对主数据库进行掉电处理,此时就需要将业务系统的数据源从主数据库切换至备数据库,在此切换过程中,首先需要停掉业务系统的业务,然后修改业务系统的连接串,将连接串连接的数据库ip地址从主数据库ip地址修改为备数据库ip地址,最后重启应用系统,完成切换。显然,在上述切换过程中业务系统有段时间是不能使用的,这可能会使业务系统正常生产中断或停止,这对很多不允许业务中断的业务系统来说是不能接受的。
3、针对相关技术中,数据库的切换控制方法对业务系统运行的连续性影响较大等问题,尚未提出有效的解决方案。
技术实现思路
1、本技术实施例提供了一种数据库的切换控制方法和装置、存储介质及电子装置,以至少解决相关技术中,数据库的切换控制方法对业务系统运行的连续性影响较大等问题。
2、根据本技术实施例的一个实施例,提供了一种数据库的切换控制方法,数据级的冗余数据库系统中包括主数据库和备数据库,所述数据级的冗余数据库系统用于为业务系统上运行的业务提供数据级的冗余数据服务,所述业务系统上部署了第一数据源和第二数据源,所述第一数据源与所述主数据库之间建立了第一连接,所述第二数据源与所述备数据库之间建立了第二连接,所述第一数据源当前为所述业务系统的主用数据源,所述第二数据源当前为所述业务系统的备用数据源,所述方法应用于所述数据级的冗余数据库系统,所述方法包括:
3、接收切换控制指令,其中,所述切换控制指令用于指示将所述业务系统从所述主数据库切换至所述备数据库;
4、响应所述切换控制指令,通知所述业务系统将所述第二数据源切换为主用数据源,其中,所述业务系统的主用数据源用于承载所述业务系统新增的业务;
5、将所述第一连接中未被业务占用的业务会话转移至所述第二连接中,直至所述第一连接中不存在业务会话;
6、关闭所述第一连接。
7、可选的,所述将所述第一连接中未被业务占用的业务会话转移至所述第二连接中,直至所述第一连接中不存在业务会话,包括:
8、检测所述第一连接上的n个业务会话的当前的占用状态;
9、从所述第一连接上的n个业务会话中筛选出所述占用状态为未被业务占用的m个业务会话;
10、将所述m个业务会话转移至所述第二连接中,并保持所述n个业务会话中除所述m个业务会话之外的n-m个业务会话,直至n-m为0。
11、可选的,所述将所述m个业务会话转移至所述第二连接中,包括:
12、将所述m个业务会话的会话配置信息发送至所述备数据库,其中,所述备数据库用于根据所述会话配置信息在所述第二连接中生成所述m个业务会话,所述会话配置信息为生成所述m个业务会话所需的配置信息;
13、断开所述m个业务会话。
14、可选的,所述保持所述n个业务会话中除所述m个业务会话之外的n-m个业务会话,包括:
15、检测所述n-m个业务会话中每个所述业务会话对所述主数据库执行的目标操作;
16、在所述目标操作为数据查询操作的情况下,根据所述主数据库的第一存储空间中存储的数据块、以及所述主数据库中存储的数据块执行所述数据查询操作,其中,所述第一存储空间用于存储所述备数据库在所述业务系统将所述第二数据源切换为主用数据源之后变更的数据块,所述数据查询操作用于指示从所述主数据库中查询数据;
17、在所述目标操作为数据调整操作的情况下,根据所述主数据库的第一存储空间中存储的数据块、以及所述数据调整操作对应的目标调整数据同步所述备数据库,其中,所述第一存储空间用于存储所述备数据库在所述业务系统将所述第二数据源切换为主用数据源之后变更的数据。
18、可选的,所述根据所述主数据库的第一存储空间中存储的数据块、以及所述主数据库中存储的数据块执行所述数据查询操作,包括:
19、获取所述数据查询操作对应的目标数据块标识,其中,所述目标数据块标识所标识的数据块为所述数据查询操作待查询的数据所位于的数据块;
20、查询所述第一存储空间中是否存储了数据块标识为所述目标数据块标识的数据块;
21、在查询到所述第一存储空间中存储了数据块标识为所述目标数据块标识的第一数据块的情况下,使用所述第一数据块执行所述数据查询操作;
22、在查询到所述第一存储空间中未存储数据块标识为所述目标数据块标识的数据块的情况下,使用所述主数据库中存储的第二数据块执行所述数据查询操作,其中,所述第二数据为所述主数据库中存储的数据块标识为所述目标数据块标识的数据块。
23、可选的,所述在所述目标操作为数据调整操作的情况下,根据所述主数据库的第一存储空间中存储的数据块、以及所述数据调整操作对应的目标调整数据同步所述备数据库,包括:
24、在所述目标操作为数据插入操作的情况下,为目标插入数据构建第三数据块,并将所述目标插入数据存储至所述第三数据块得到第四数据块,将所述第四数据块发送至所述备数据库中的第二存储空间,其中,所述备数据库同步所述第二存储空间中存储的数据块,所述数据插入操作用于指示向所述主数据库中插入所述目标插入数据,所述数据调整操作包括所述数据插入操作,所述目标调整数据包括所述目标插入数据;
25、在所述目标操作为数据删除操作的情况下,查询所述主数据库的所述第一存储空间中是否存在存储了目标删除数据的数据块;在查询到所述主数据库的所述第一存储空间中存在存储了所述目标删除数据的第五数据块的情况下,删除所述第五数据块中的所述目标删除数据得到第六数据块,将所述第六数据块发送至所述备数据库中的第二存储空间;在查询到所述主数据库的所述第一存储空间中不存在存储了所述目标删除数据的数据块的情况下,删除所述主数据库中的第七数据块的所述目标删除数据得到第八数据块,将所述第八数据块发送至所述备数据库中的第二存储空间,其中,所述备数据库同步所述第二存储空间中存储的数据块,所述数据删除操作用于指示删除所述主数据库中的所述目标删除数据,所述数据调整操作包括所述数据删除操作,所述目标调整数据包括所述目标删除数据;
26、在所述目标操作为数据修改操作的情况下,查询所述主数据库的所述第一存储空间中是否存在存储了目标修改数据的数据块;在查询到所述主数据库的所述第一存储空间中存在存储了所述目标修改数据的第九数据块的情况下,修改所述第九数据块中的所述目标修改数据得到第十数据块,将所述第十数据块发送至所述备数据库中的第二存储空间;在查询到所述主数据库的所述第一存储空间中不存在存储了所述目标修改数据的数据块的情况下,修改所述主数据库中的第十一数据块的所述目标修改数据得到第十二数据块,将所述第十二数据块发送至所述备数据库中的第二存储空间,其中,所述备数据库同步所述第二存储空间中存储的数据块,所述数据修改操作用于指示修改所述主数据库中的所述目标修改数据,所述数据调整操作包括所述数据修改操作,所述目标调整数据包括所述目标修改数据。
27、可选的,在所述通知所述业务系统将所述第二数据源切换为主用数据源之后,所述方法还包括:
28、启动所述主数据库中的第一存储进程,以及所述备数据库中的第二存储进程;
29、连接所述第一存储进程和所述第二存储进程,其中,所述备数据库通过连接的所述第一存储进程和所述第二存储进程,将所述备数据库在所述业务系统将所述第二数据源切换为主用数据源之后变更的数据同步至所述主数据库的第一存储空间,所述主数据库同步所述第一存储空间中存储的数据;所述主数据库通过连接的所述第一存储进程和所述第二存储进程,将所述主数据库在所述业务系统将所述第二数据源切换为主用数据源之后变更的数据同步至所述备数据库的第二存储空间,所述备数据库同步所述第二存储空间中存储的数据。
30、根据本技术实施例的另一个实施例,还提供了一种数据库的切换控制装置,数据级的冗余数据库系统中包括主数据库和备数据库,所述数据级的冗余数据库系统用于为业务系统上运行的业务提供数据级的冗余数据服务,所述业务系统上部署了第一数据源和第二数据源,所述第一数据源与所述主数据库之间建立了第一连接,所述第二数据源与所述备数据库之间建立了第二连接,所述第一数据源当前为所述业务系统的主用数据源,所述第二数据源当前为所述业务系统的备用数据源,所述装置应用于所述数据级的冗余数据库系统,所述装置包括:
31、接收模块,用于接收切换控制指令,其中,所述切换控制指令用于指示将所述业务系统从所述主数据库切换至所述备数据库;
32、通知模块,用于响应所述切换控制指令,通知所述业务系统将所述第二数据源切换为主用数据源,其中,所述业务系统的主用数据源用于承载所述业务系统新增的业务;
33、转移模块,用于将所述第一连接中未被业务占用的业务会话转移至所述第二连接中,直至所述第一连接中不存在业务会话;
34、关闭模块,用于关闭所述第一连接。
35、根据本技术的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
36、根据本技术的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
37、在本技术实施例中,提出了一种数据库的切换控制方法,数据级的冗余数据库系统中包括主数据库和备数据库,数据级的冗余数据库系统用于为业务系统上运行的业务提供数据级的冗余数据服务,业务系统上部署了第一数据源和第二数据源,第一数据源与主数据库之间建立了第一连接,第二数据源与备数据库之间建立了第二连接,第一数据源当前为业务系统的主用数据源,第二数据源当前为业务系统的备用数据源,在数据级的冗余数据库系统接收到用于指示将业务系统从主数据库切换至备数据库的切换控制指令时,响应切换控制指令,通知业务系统将第二数据源切换为用于承载业务系统新增的业务主用数据源,确保切换过程中产生的新增业务可以理解在第二数据源上得到处理,不用等待数据库切换完毕;然后,将第一连接中未被业务占用的业务会话转移至第二连接中,直至第一连接中不存在业务会话;这种逐步将业务会话转移至第二连接的方式可以使得被业务占用的业务会话继续在第一连接中运行,不会由于切换过程中断第一连接中运行的业务,最后在第一连接中不存在业务会话时关闭第一连接,完成业务系统从主数据库至备数据库的切换。采用上述技术方案,解决了相关技术中,数据库的切换控制方法对业务系统运行的连续性影响较大等问题,实现了降低数据库的切换控制方法对业务系统运行的连续性影响的技术效果。
1.一种数据库的切换控制方法,其特征在于,数据级的冗余数据库系统中包括主数据库和备数据库,所述数据级的冗余数据库系统用于为业务系统上运行的业务提供数据级的冗余数据服务,所述业务系统上部署了第一数据源和第二数据源,所述第一数据源与所述主数据库之间建立了第一连接,所述第二数据源与所述备数据库之间建立了第二连接,所述第一数据源当前为所述业务系统的主用数据源,所述第二数据源当前为所述业务系统的备用数据源,所述方法应用于所述数据级的冗余数据库系统,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,
3.根据权利要求2所述的方法,其特征在于,
4.根据权利要求2所述的方法,其特征在于,
5.根据权利要求4所述的方法,其特征在于,
6.根据权利要求4所述的方法,其特征在于,
7.根据权利要求1所述的方法,其特征在于,
8.一种数据库的切换控制装置,其特征在于,数据级的冗余数据库系统中包括主数据库和备数据库,所述数据级的冗余数据库系统用于为业务系统上运行的业务提供数据级的冗余数据服务,所述业务系统上部署了第一数据源和第二数据源,所述第一数据源与所述主数据库之间建立了第一连接,所述第二数据源与所述备数据库之间建立了第二连接,所述第一数据源当前为所述业务系统的主用数据源,所述第二数据源当前为所述业务系统的备用数据源,所述装置应用于所述数据级的冗余数据库系统,所述装置包括:
9.一种计算机可读存储介质,其特征在于,
10.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,
