一种数据库切换方法和终端设备与流程

文档序号:20917795发布日期:2020-05-29 13:45阅读:178来源:国知局
一种数据库切换方法和终端设备与流程

本申请涉及数据库领域,尤其涉及一种数据库切换方法和终端设备。



背景技术:

随着计算机技术的不断发展,用户通过数据库客户端发出的业务请求越来越多,相应的,数据库服务器端接收到的业务请求也越来越多。当数据库服务器端发生故障时,会导致用户发出的业务请求无法得到响应。

为了避免上述情况的发生,现有技术中在数据库服务器端同时设有主数据库和备数据库,在主数据库和备数据库之外设有一套外置共享磁盘。在主数据库正常使用时,备数据库处于关闭状态,由主数据库访问共享磁盘中的数据,并基于该共享磁盘中的数据响应用户发出的业务请求;当主数据库发生故障时,需要停止主数据库对共享磁盘的访问后,开启备数据库,并通过备数据库访问该共享磁盘,由备数据库基于该共享磁盘中的数据响应用户发出的业务请求。

但如果在双机切换过程中,一旦出现共享磁盘出现与备数据库不适应,或者共享磁盘出现故障等问题,均会导致主数据库和备数据库都不能再继续响应用户的请求,不仅使得数据的安全性得不到保障,而且使得用户的业务请求无法及时得到满足。



技术实现要素:

本申请实施例提供了一种主从数据库切换方法以及相关设备,用于在第一数据库和第二数据库中均分别配置有各自的磁盘组资源,在双机切换过程中涉及的是业务平面浮动ip的切换以及主数据库和从数据库角色的切换,不再需要将磁盘组资源和数据库资源从主数据下线再在从数据库上线,既避免了在双机切换过程中出现的磁盘与数据库之间不适应的问题,又避免了由于共享磁盘出现故障而导致无法响应用户的请求的情况。

第一方面,本申请实施例提供一种主从数据库切换方法,所述方法应用于数据库系统,数据库系统包括第一主机和第二主机,其中,第一主机上运行有第一数据库,第二主机上运行有第二数据库,第一数据库和第二数据库中均分别配置有各自的磁盘组资源,所述方法包括:第一主机可以监控第一数据库的运行状况,在第一主机检测到第一数据库运行异常并确定第一数据库满足双机切换条件的情况下,可以解除第一数据库与业务平面浮动互联网协议ip地址的绑定,若第一数据库中存在业务平面监听器,则第一主机还可以关闭业务平面监听器,其中,业务平面浮动ip地址用于承载业务平面的数据流,业务平面为接收并响应业务请求的网络平面,业务平面监听器用于监听通过业务平面接收到的连接请求的合法性;第一主机可以将第一数据库由主用切换为从用,并向第二主机发送指示信息,所述指示信息用于指示将第二数据库由从用切换为主用,并在第二数据库上启动业务平面浮动ip地址。

在本申请中,在第一数据库满足双机切换条件的情况下,第一主机解除绑定于第一数据库的业务平面浮动ip地址,并将第一数据库由主用切换为从用。在第一数据库完成角色切换操作之后,向第二数据库发送指示信息,该指示信息用于指示将第二数据库由从用切换为主用,并在该第二数据库上启动上述业务平面浮动ip地址。由于主数据库和从数据库均分别配置有各自的磁盘组资源,则磁盘组资源和数据库资源在主数据库和从数据库上同时激活,既避免了在双机切换过程中出现的磁盘与数据库之间不适应的问题,又避免了由于共享磁盘出现故障而导致无法响应用户的请求的情况,提高了数据的安全性;且在双机切换过程中涉及的是业务平面浮动ip的切换以及主数据库和从数据库角色的切换,不再需要将磁盘组资源和数据库资源从主数据下线再在从数据库上线,有利于缩短双机切换的时长,从而缩短用户业务中断的时长;此外,由于执行切换前后用于承载业务平面的数据流的业务平面浮动ip地址没有发生变化,则双机切换前后客户端访问的ip地址没有发生变化,减少了双机切换给客户端造成的影响。

在本申请第一方面的一种可能实现方式中,所述方法还包括:第一主机可以通过复制平面向第二主机发送第一数据库的重做日志,其中,复制平面是用于实现从用数据库复制主用数据库中的重做日志的网络平面,重做日志用于供第二主机控制第二数据库根据重做日志执行第一数据库执行过的事务,以使第二数据库的磁盘组资源中的数据和所述第一数据库的磁盘组资源中的数据一致。

本申请中,由于第二主机可以通过复制平面实时获取到第一数据库的重做日志,从而第二数据库磁盘组资源中的数据与第一数据库的磁盘组资源中的数据可以实现实时性的一致,则当启动双机切换操作时,第二数据库在完成切换后,可以及时根据磁盘组资源中的数据响应客户端的业务请求,进一步缩短了用户业务中断的时长,减少了双机切换给客户端造成的影响。

在本申请第一方面的一种可能实现方式中,第一主机向第二主机发送第一数据库的重做日志,具体可以包括:在第一主机确定第一数据库处于正常运行状态时,第一主机可以通过复制平面实时向第二主机发送第一数据库的重做日志;在第一主机确定第一数据库运行异常时,第一主机强制将第一数据库的重做日志发送至第二主机。

本申请中,无论第一数据库处于正常运行状态还是运行异常时,第一主机均可以将第一数据库的重做日志发送至第二主机,以保证第一数据库的磁盘组资源中的数据可以实现实时性的一致,提高了数据的安全性和稳定性。

在本申请第一方面的一种可能实现方式中,将第一数据库由主用切换为从用,包括:第一主机在确定第一数据库满足双机切换条件之后,可以判断第一数据库是否符合有计划的执行双机切换操作switchover模式的要求,在第一数据库符合switchover模式的情况下,第一主机在switchover模式下将第一数据库由主用切换为从用,其中,switchover模式为第一数据库的双机切换功能处于正常运行状态下执行双机切换操作的模式。

本申请中,在第一数据库符合switchover模式的情况下,第一主机在switchover模式下将第一数据库由主用切换为从用,从而提高了本方案的可实现性。

在本申请第一方面的一种可能实现方式中,第一主机将第一数据库由主用切换为从用,具体可以包括:第一主机在确定第一数据库满足双机切换条件之后,可以判断第一数据库是否符合switchover模式的要求,在第一数据库不符合switchover模式的情况下,第一主机获取第二数据库切换为主用后的系统变更号scn,并根据scn执行闪回操作,进而第一主机可以在数据库不活动时执行双机切换操作failover模式下将第一数据库由主用切换为从用,其中,scn为由数据库管理系统自动维护的累积递增的一个数字系列,用来区别事务的先后顺序,failover模式为第一数据库的双机切换功能处于故障状态下强制执行双机切换操作的模式。

本申请中,在第一数据库不符合switchover模式的情况下,通过failover模式将第一数据库切换为从用,保证了方案的可实现性;此外,当第一主机需要在failover模式下将第一数据库切换为从用时,则第一主机可以确定第一数据库在执行事务时出现了故障,而由于第一数据库出现了故障,则即使强制将第一数据库的重做日志发送给第二主机,第一主机也无法确定是否将全部的重做日志发送给了第二主机,而通过根据第二数据库切换为主用后的scn执行闪回操作的方式,可以保证执行双机操作之后,第一数据库的数据和第二数据库的数据的一致性。

在本申请第一方面的一种可能实现方式中,第一主机将第一数据库由主用切换为从用,包括:第一主机在确定第一数据库满足双机切换条件之后,可以判断第一数据库是否符合switchover模式的要求,在第一数据库符合switchover模式的情况下,第一主机可以控制第一数据库在switchover模式下由主用切换为从用,并检查第一数据库是否切换成功,在第二数据库在switchover模式下切换失败的情况下,也即第二数据库在switchover模式下未切换至从用的情况下,第一主机可以获取第二数据库切换为主用后的scn,并根据scn执行闪回操作,进而第一主机可以在failover模式下将第一数据库由主用切换为从用。

本申请中,在第一数据库在符合switchover模式下切换失败的情况下,通过failover模式将第一数据库切换为从用,保证了方案的可实现性;此外,当第一主机需要在failover模式下将第一数据库切换为从用时,则第一主机可以确定第一数据库在执行事务时出现了故障,而由于第一数据库出现了故障,则即使强制将第一数据库的重做日志发送给第二主机,第一主机也无法确定是否将全部的重做日志发送给了第二主机,而通过根据第二数据库切换为主用后的scn执行闪回操作的方式,可以保证执行双机操作之后,第一数据库的数据和第二数据库的数据的一致性。

在本申请第一方面的一种可能实现方式中,方法还包括:第一主机在解除第一数据库与管理平面浮动ip地址的绑定之后,还可以解除第一数据库与管理平面浮动ip地址的绑定,若第一数据库中存在管理平面监听器,则第一主机还可以关闭第一数据库的管理平面监听器,其中,在执行双机切换操作后,管理平面浮动ip绑定于第二数据库上,管理平面浮动ip用于承载管理平面的数据流,管理平面为用于实现内部网络监控的网络平面。

本申请中,由于第二主机和第一主机在管理平面上也共用相同的管理平面浮动ip地址,则执行切换前后用于承载管理平面的数据流的管理平面浮动ip地址没有发生变化,则双机切换前后用于监控内部网络情况的网关访问的ip地址没有发生变化,减少了双机切换给网关造成的影响。

在本申请第一方面的一种可能实现方式中,第一主机确定第一数据库满足双机切换条件,包括以下至少一种:第一主机判断第一数据库的磁盘组资源是否在线,在第一数据库的磁盘组资源不在线的情况下,第一主机可以对第一数据库的磁盘组资源执行拉起操作,若拉起失败,则重复执行拉起操作,在第一主机对第一数据库的磁盘组资源连续执行拉起操作的次数超过第一阈值时,第一主机确定第一数据库满足双机切换条件;或者第一主机判断第一数据库的数据库资源是否在线,在第一数据库的数据库资源不在线的情况下,可以对第一数据库的数据库资源执行拉起操作,若拉起失败,则重复执行拉起操作,在第一主机对第一数据库的数据库资源连续执行拉起操作的次数超过第二阈值时,第一主机确定第一数据库满足双机切换条件;或者第一主机可以判断第一数据库的业务平面浮动ip地址是否在线,在第一数据库的业务平面浮动ip地址不在线的情况下,第一主机对第一数据库的业务平面浮动ip地址执行拉起操作,若拉起失败,则重复执行拉起操作,在第一主机对第一数据库的业务平面浮动ip地址连续执行拉起操作的次数超过第三阈值时,第一主机确定第一数据库满足双机切换条件。

在本申请中,当第一主机监测到磁盘组资源、数据库资源、业务平面监听器或业务平面浮动ip地址中任一资源不在线,且连续拉起均拉起失败的情况下,可以及时触发双机切换操作,由于上述任一资源出现异常时,都会导致无法响应客户端的业务请求,在此时及时的触发双机切换操作,由第二数据库继续响应客户端的业务请求,以提供良好的用户体验。

在本申请第一方面的一种可能实现方式中,在第一主机解除第一数据库与业务平面浮动ip地址的绑定之前,所述方法还包括:第一主机将第一数据库启动至上升mounted状态;第一主机开启第一数据库的闪回模式;第一主机将第一数据库启动至完全开启open状态,其中,mounted状态和open状态为数据库在开启过程中的两种状态,mounted状态为尚未完全开启的时候的数据库状态,open状态为完全开启时的数据库状态,在前述两种状态下,主机可以对数据库执行管理操作的权限不同。

本申请中,开启第一数据库的闪回模式,从而保证当第一主机在failover模式下将第一数据库切换为从用之后可以实现闪回操作,提高了双机切换过程的可实现性和流畅性。

第二方面,本申请实施例提供一种主从数据库切换方法,方法应用于数据库系统,数据库系统包括第一主机和第二主机,其中,第一主机上运行有第一数据库,第二主机上运行有第二数据库,第一数据库和第二数据库中均分别配置有各自的磁盘组资源,方法包括:第二主机在接收到接收第一主机发送的指示信息之后,可以将第二数据库由从用切换为主用,然后在第二数据库上启动业务平面浮动互联网协议ip地址,业务平面为接收并响应业务请求的网络平面,其中,指示信息用于指示启动第二数据库的双机切换操作,业务平面浮动ip地址用于承载业务平面的数据流,业务平面为接收并响应业务请求的网络平面,在执行双机切换操作前,业务平面浮动ip地址绑定于第一数据库上。

本申请中,第二主机在接收到指示信息之后,基于该指示信息,将第二数据库由从用切换为主用,并在该第二数据库上启动业务平面浮动ip地址。由于主数据库和从数据库均分别配置有各自的磁盘组资源,则磁盘组资源和数据库资源在主数据库和从数据库上同时激活,既避免了在双机切换过程中出现的磁盘与数据库之间不适应的问题,又避免了由于共享磁盘出现故障而导致无法响应用户的请求的情况,提高了数据的安全性;且在双机切换过程中涉及的是业务平面浮动ip的切换以及主数据库和从数据库角色的切换,不再需要将磁盘组资源和数据库资源从主数据下线再在从数据库上线,有利于缩短双机切换的时长,从而缩短用户业务中断的时长;此外,由于执行切换前后用于承载业务平面的数据流的业务平面浮动ip地址没有发生变化,则双机切换前后客户端访问的ip地址没有发生变化,减少了双机切换给客户端造成的影响。

在本申请第二方面的一种可能实现方式中,所述方法还包括:第二主机可以通过复制平面获取第一数据库的重做日志,并根据重做日志控制第二数据库执行第一数据库执行过的事务,以使第二数据库的磁盘组资源中的数据和第一数据库的磁盘组资源中的数据一致,其中,复制平面是用于实现从用数据库复制主用数据库中的重做日志的网络平面。

本申请中,由于第二主机可以通过复制平面实时获取到第一数据库的重做日志,从而第二数据库磁盘组资源中的数据与第一数据库的磁盘组资源中的数据可以实现实时性的一致,则当启动双机切换操作时,第二数据库在完成切换后,可以及时根据磁盘组资源中的数据响应客户端的业务请求,进一步缩短了用户业务中断的时长,减少了双机切换给客户端造成的影响。

在本申请第二方面的一种可能实现方式中,第二主机将第二数据库由从用切换为主用,包括:第二主机在接收到指示信息后,可以判断第二数据库是否符合有计划的执行双机切换操作switchover模式的要求,在第二数据库符合switchover模式的情况下,第二主机可以在switchover模式下将第二数据库由从用切换为主用,其中,switchover模式为第一数据库的双机切换功能处于正常运行状态下执行双机切换操作的模式。

本申请中,在第二数据库符合switchover模式的情况下,第二主机在switchover模式下将第二数据库由主用切换为从用,从而提高了本方案的可实现性。

在本申请第二方面的一种可能实现方式中,第二主机将第二数据库由从用切换为主用,包括:第二主机在接收到指示信息后,可以判断第一数据库是否符合switchover模式的要求,在第二数据库不符合switchover模式的情况下,第二主机在数据库不活动时执行双机切换操作failover模式下将第二数据库由从用切换为主用,其中,failover模式为第一数据库的双机切换功能处于故障状态下强制执行双机切换操作的模式。

本申请中,在第二数据库不符合switchover模式的情况下,则在failover模式下强制将第二数据库切换为主用,从而保证在各种情况下,均能完成第二数据库由从用向主用的转变,提高了本方案的可实现性。

在本申请第二方面的一种可能实现方式中,第二主机将第二数据库由从用切换为主用,包括:第二主机在接收到指示信息后,可以判断第二数据库是否符合switchover模式的要求,在第二数据库符合switchover模式的情况下,第二主机可以控制第二数据库在switchover模式下由主用切换为从用,并检查第二数据库是否切换成功,在第二数据库在switchover模式下切换失败的情况下,第二主机在failover模式下将第二数据库由从用切换为主用。

本申请中,在第二数据库switchover模式下切换失败的情况,则在failover模式下强制将第二数据库切换为主用,增加了本方案的实现场景,提高了本方案的可实现性和灵活性。

在本申请第二方面的一种可能实现方式中,在failover模式下将第二数据库由从用切换为主用,包括:第二主机在确定第二数据库无法在switchover模式下切换为主用时的情况下,第二主机可以等待一段时间,使第二数据库可以继续根据第一数据库的重做日志执行第一数据库执行过的事务,并获取第二数据库根据第一数据库的重做日志执行第一数据库执行过的事务的执行状态,直到第二数据库执行第一数据库执行过的事务执行完毕后,第二主机停止第二数据库的复制进程,在failover模式下强制将第二数据库由从用切换为主用。

本申请中,当第二主机在无法在switchover模式下将第二数据库由从用切换为主用时,第二主机可以在确定第二数据库执行第一数据库执行过的事务为执行完毕状态时,才在failover模式下强制将第二数据库切换为主用,可以避免数据库复制进程的强制打断,从而保证了第二数据库复制第一数据库过程的连续性,以尽快实现第二数据库和第一数据库的数据一致性,从而尽快响应客户端的业务请求。

在本申请第二方面的一种可能实现方式中,在switchover模式下将第二数据库由从用切换为主用,包括:第二主机可以预设有等待的时长,在第二主机无法在switchover模式下将第二数据库切换为主用的情况下,第二主机可以等待一段时间,使第二数据库可以继续根据第一数据库的重做日志执行第一数据库执行过的事务,当第二数据库执行第一数据库执行过的事务的时长达到该预设时长时,第二主机停止第二数据库的复制进程,在failover模式下强制将第二数据库由从用切换为主用。

本申请中,第二主机可以预设有等待时长,若在预设时长内第二数据库仍未执行完所有的事务,则意味着第二数据库的复制进程可能出现故障,则在等待时长达到预设时长时,在failover模式下强制将第二数据库切换为主用,从而避免用于业务中断的时间过长。

本申请第二方面的一种可能实现方式中,第二主机将第二数据库由从用切换为主用之后,所述方法还包括:第二主机可以重启第二数据库,并记录第二数据库重启时的系统变更号scn,也即第二数据库切换为主用之后的scn,该scn用于供第一主机根据该scn控制第一数据库执行闪回操作,其中,scn为由数据库管理系统自动维护的累积递增的一个数字系列,用来区别事务的先后顺序。

本申请中,由于当第一数据库出现了故障,则即使强制将第一数据库的重做日志发送给第二主机,第一主机也无法确定是否将全部的重做日志发送给了第二主机,而第二主机记录第二数据库切换为主用之后的scn,从而可以供第一主机根据该scn控制第一数据库执行闪回操作,从而可以保证执行双机操作之后,第一数据库的数据和第二数据库的数据的一致性。

在本申请第二方面的一种可能实现方式中,方法还包括以下至少一种:

第二主机判断第二数据库的磁盘组资源是否在线,在第二数据库的磁盘组资源不在线的情况下,第二主机对第二数据库的磁盘组资源执行拉起操作,若拉起失败,则重复执行拉起操作;或者

第二主机判断第二数据库的数据库资源是否在线,在第二数据库的数据库资源不在线的情况下,第二主机对第二数据库的数据库资源执行拉起操作,若拉起失败,则重复执行拉起操作;或者

当第二数据库中存在监听器功能时,第二主机判断第二数据库的复制平面监听器是否在线,在第二数据库的复制平面监听器不在线且复制进程的状态正常的情况下,第二主机对第二数据库的复制平面监听器执行拉起操作,若拉起失败,则重复执行拉起操作,在第二数据库的复制平面监听器不在线且复制进程的状态异常的情况下,第二主机重新启动复制进程后,再对第二数据库的复制平面监听器执行拉起操作。

在本申请中,在每个监控周期内,第二主机可以检查第二数据库的磁盘组资源、数据库资源以及复制平面监听器是否在线,若不在线,则可以反复执行拉起操作,当反复拉起仍拉起失败时,可以发出警告,以提示运维人员进行人工干预,从而保证从用数据库时刻处于正常运行状态,避免在执行双机切换操作过程中,由于从用数据库运行异常而导致的无法切换的情况,提高主从数据库切换过程的稳定性。

在本申请第二方面的一种可能实现方式中,第二主机将第二数据库由从用切换为主用之后,方法还包括:第二主机在第二数据库上启动业务平面浮动ip地址之后,第二主机还可以在第二数据库上启动管理平面浮动ip地址,若第二数据库中存在管理平面监听器,则第二主机还可以启动第二数据库的管理平面监听器,其中,在执行双机切换操作前,管理平面浮动ip绑定于第一数据库上,管理平面浮动ip用于承载管理平面的数据流,管理平面为用于实现内部网络监控的网络平面。

本申请中,由于第二主机和第一主机在管理平面上也共用相同的管理平面浮动ip地址,则执行切换前后用于承载管理平面的数据流的管理平面浮动ip地址没有发生变化,则双机切换前后用于监控内部网络情况的网关访问的ip地址没有发生变化,减少了双机切换给网关造成的影响。

第三方面,本申请实施例提供一种主机,主机为第一主机,第一主机包含于数据库系统中,数据库系统还包括第二主机,其中,第一主机上运行有第一数据库,第二主机上运行有第二数据库,第一数据库和第二数据库中均分别配置有各自的磁盘组资源,主机包括:

解除单元,用于在第一数据库满足双机切换条件的情况下,解除第一数据库与业务平面浮动互联网协议ip地址的绑定,业务平面浮动ip地址用于承载业务平面的数据流,业务平面为接收并响应业务请求的网络平面;

切换单元,用于将第一数据库由主用切换为从用;

发送单元,用于向第二主机发送指示信息,指示信息用于指示将第二数据库由从用切换为主用,并在第二数据库上启动业务平面浮动ip地址。

本申请中,在第一数据库满足双机切换条件的情况下,解除单元解除绑定于第一数据库的业务平面浮动ip地址,切换单元将第一数据库由主用切换为从用。在第一数据库完成角色切换操作之后,发送单元向第二数据库发送指示信息,该指示信息用于指示将第二数据库由从用切换为主用,并在该第二数据库上启动上述业务平面浮动ip地址。由于主数据库和从数据库均分别配置有各自的磁盘组资源,则磁盘组资源和数据库资源在主数据库和从数据库上同时激活,既避免了在双机切换过程中出现的磁盘与数据库之间不适应的问题,又避免了由于共享磁盘出现故障而导致无法响应用户的请求的情况,提高了数据的安全性;且在双机切换过程中涉及的是业务平面浮动ip的切换以及主数据库和从数据库角色的切换,不再需要将磁盘组资源和数据库资源从主数据下线再在从数据库上线,有利于缩短双机切换的时长,从而缩短用户业务中断的时长;此外,由于执行切换前后用于承载业务平面的数据流的业务平面浮动ip地址没有发生变化,则双机切换前后客户端访问的ip地址没有发生变化,减少了双机切换给客户端造成的影响。

在本申请的第三方面中,第一主机的组成模块还可以执行前述第一方面以及各种可能的实现方式中所描述的步骤,详见前述对第一方面以及各种可能的实现方式中的说明。

第四方面,本申请实施例提供一种主机,主机为第二主机,第二主机包含于数据库系统中,数据库系统还包括第二主机,其中,第一主机上运行有第一数据库,第二主机上运行有第二数据库,第一数据库和第二数据库中均分别配置有各自的磁盘组资源,主机包括:

接收单元,用于接收第一主机发送的指示信息,指示信息用于指示启动第二数据库的双机切换操作;

切换单元,用于将第二数据库由从用切换为主用;

启动单元,用于在第二数据库上启动业务平面浮动互联网协议ip地址,业务平面为接收并响应业务请求的网络平面,其中,业务平面浮动ip地址用于承载业务平面的数据流,业务平面为接收并响应业务请求的网络平面,在执行双机切换操作前,业务平面浮动ip地址绑定于第一数据库上。

本申请中,接收单元在接收到指示信息之后,基于该指示信息,切换单元将第二数据库由从用切换为主用,启动单元在该第二数据库上启动业务平面浮动ip地址。由于主数据库和从数据库均分别配置有各自的磁盘组资源,则磁盘组资源和数据库资源在主数据库和从数据库上同时激活,既避免了在双机切换过程中出现的磁盘与数据库之间不适应的问题,又避免了由于共享磁盘出现故障而导致无法响应用户的请求的情况,提高了数据的安全性;且在双机切换过程中涉及的是业务平面浮动ip的切换以及主数据库和从数据库角色的切换,不再需要将磁盘组资源和数据库资源从主数据下线再在从数据库上线,有利于缩短双机切换的时长,从而缩短用户业务中断的时长;此外,由于执行切换前后用于承载业务平面的数据流的业务平面浮动ip地址没有发生变化,则双机切换前后客户端访问的ip地址没有发生变化,减少了双机切换给客户端造成的影响。

在本申请的第四方面中,第二主机的组成模块还可以执行前述第二方面以及各种可能的实现方式中所描述的步骤,详见前述对第二方面以及各种可能的实现方式中的说明。

第五方面,本申请实施例提供一种主机,该主机为第一主机,包括存储器和处理器;

该存储器用于存储计算机程序代码;

该处理器用于执行该存储器存储的代码,使得该第一主机执行如上述第一方面中所述的方法。

第六方面,本申请实施例提供一种主机,该主机为第二主机,包括存储器和处理器;

该存储器用于存储计算机程序代码;

该处理器用于执行该存储器存储的代码,使得该第一主机执行如上述第二方面中所述的方法。

第七方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序代码,当其在计算机上运行时,使得计算机执行如上述第一方面所述的方法。

第八方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序代码,当其在计算机上运行时,使得计算机执行如上述第二方面中所述的方法。

第九方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述方面中所涉及的功能,例如,例如发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,该芯片系统还包括存储器,该存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

本申请第五方面至第九方面的有益效果,可以参考第一方面。

附图说明

图1为本申请实施例提供的一种网络结构示意图;

图2为本申请实施例提供的主从数据库切换方法的一种流程示意图;

图3为本申请实施例提供的第一主机监控第一数据库的运行状况的流程示意图;

图4为本申请实施例提供的第二主机监控第二数据库的运行状况的流程示意图;

图5为本申请实施例提供的主从数据库切换方法的另一种流程示意图;

图6为本申请实施例提供的主从数据库切换方法的又一种流程示意图;

图7为本申请实施例提供的主机的一种结构示意图;

图8为本申请实施例提供的主机的另一种结构示意图;

图9为本申请实施例提供的主机的又一种结构示意图;

图10为本申请实施例提供的主机的再一种结构示意图。

具体实施方式

本申请实施例提供了一种主从数据库切换方法以及相关设备,用于在第一数据库和第二数据库中均分别配置有各自的磁盘组资源,在双机切换过程中涉及的是业务平面浮动ip的切换以及主数据库和从数据库角色的切换,不再需要将磁盘组资源和数据库资源从主数据下线再在从数据库上线,既避免了在双机切换过程中出现的磁盘与数据库之间不适应的问题,又避免了由于共享磁盘出现故障而导致无法响应用户的请求的情况。

下面结合附图,对本申请的实施例进行描述。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。

本申请实施例中,参见图1,本申请应用于数据库系统10中,数据库10包括第一主机100和第二主机200,第一主机100和第二主机200之间通信连接。第一主机100上运行有第一数据库110,第二主机200上运行有第二数据库210。第一数据库110和第二数据库210均分别配置有各自的磁盘组资源。

本申请实施例中,第一主机100和第二主机200上可以分别安装有双机管理软件,并通过双机管理软件分别管理第一数据库110和第二数据库210。第一数据库110通过第一主机100的操作系统访问和管理磁盘组资源中的数据;第二数据库210通过第二主机200的操作系统访问和管理磁盘组资源中的数据。

本申请实施例中,第一主机100和第二主机200均可以为计算机设备、服务器、个人电脑、笔记本电脑或其他类型的通信设备等。

本申请实施例中,第一数据库110为主用数据库(active或master),第二数据库210为从用数据库slave),第二数据库210也可以称作备用数据库(standby),应当理解,第一数据库110与第二数据210还可以为其他名称,只要能表现出第一数据库110与第二数据210互为备份的关系即可。

本申请实施例中,第一数据库110和第二数据库210均可以为甲骨文(oracle)数据库管理系统、mysql数据库管理系统或其他类型的数据库管理系统,具体此处不再赘述。

本申请实施例中,第一数据库110和第二数据库210中均配置有至少两个重做日志组,用于存储重做日志,作为示例,例如存在第一重做日志组和第二重做日志组,当第一重做日志组被写满时,可以发生日志组切换,将重做日志继续写入第二重做日志组,当第二重做日志组被写满时,可以再次发生日志组切换,将重做日志继续写入第一重做日志组。

应当理解,本申请实施例中以第一数据库为主用数据库、第二数据库为从用数据库、第一数据库和第二数据库为均oracle数据库管理系统为例,进行详细说明。

本申请实施例提供了一种主从数据库切换方法,该方法应用上述数据库系统10中,在第一数据库110满足双机切换条件的情况下,第一主机解除绑定于第一数据库的业务平面浮动ip,将第一数据库由主用切换为从用,并向第二主机发送指示信息,第二主机在接收到指示信息后,将第二数据库由从用切换为主用,并在第二数据库上启动业务平面浮动ip地址,从而实现了双机切换。但在数据库由主用切换为从用或由从用切换为主用的过程中,可以存在有计划的执行双机切换操作(switchover)模式和数据库不活动时执行双机切换操作(failover)模式两种切换模式,在不同的模式下,第一主机和第二主机执行的切换流程不同。

本申请实施例中,由于当触发双机操作时,主用数据库的部分资源或部件出现异常,但主用数据库的双机切换功能可能处于正常运行状态,则switchover模式为一种数据库的双机切换功能处于正常运行状态下执行双机切换操作的模式,而failover模式为数据库的双机切换功能处于故障状态下强制执行双机切换操作的模式。当第一数据库在switchover模式下切换为从用时,第二数据库可以在switchover模式下切换为主用,也可以在failover模式下切换为主用;当第一数据库在failover模式下切换为从用时,第二数据库只能在failover模式下切换为主用,下面分别对前述三种情况下的切换方式进行详细说明。

一、第一主机和第二主机均在switchover模式下进行主用和从用的切换

在本申请实施例中,具体参见图2,本申请实施例提供的主从数据库切换方法的一个实施例,可以包括:

201、第一主机启动第一数据库。

在本申请的一些实施例中,第一主机可以将第一数据库启动到上升(mounted)状态,启动复制平面监听器,将第一数据库设置为主用数据库,再将第一数据库启动到完全启动(open)状态。在第一数据库上启动管理平面浮动ip地址和业务平面浮动ip地址,启动管理平面监听器和业务平面监听器。

在本申请实施例中,mounted状态和open状态为数据库在开启过程中的两种状态,其中,mounted状态(上升状态)为尚未完全开启的时候的数据库状态,open状态(完全启动状态)为完全开启时的数据库状态,在前述两种状态下,主机可以对数据库执行管理操作的权限不同。

在本申请实施例中,浮动互联网协议(internetprotocol,ip)地址是在双机组网下可在第一数据库和第二数据库之间漂移的ip地址,始终绑定于主用数据库上。其中,管理平面浮动ip用于承载管理平面的数据流,业务平面浮动ip地址用于承载业务平面的数据流。

在本申请实施例中,为了实现网络隔离,在通信过程中引入了多个网络平面。其中,复制平面是第一主机和第二主机规划的一个用于实现从用数据库复制主用数据库中的重做日志的网络平面,也即用于第一主机与第二主机之间通信的网络平面;管理平面是指用于实现内部网络监控的网络平面;业务平面是指接收并响应业务请求的网络平面。

在本申请实施例中,监听器为oracle数据库管理系统中一种网络服务,可以用于对接收到的连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。复制平面监听器用于监听复制平面上的连接请求,管理平面监听器用于监听管理平面上的连接请求,业务平面监听器用于监听业务平面上的连接请求。应当理解,虽然oracle数据库管理系统中存在监听器,但有些类型的数据库管理系统中并不存在监听器,则相应的不存在启动监听器的步骤。

202、第二主机启动第二数据库。

在本申请实施例中,第二主机可以将第二数据库启动到mounted状态,启动复制平面监听器,将第二数据库设置为从用数据库,启动第二数据库的复制进程,开启第二数据库的闪回模式,再将第二数据库启动到open状态。

203、第一主机向第二主机发送第一数据库的重做日志。

在本申请实施例中,第一主机在启动第一数据库后,则第一数据库可以接受到客户端发送的业务请求,从而根据接收到的业务请求可以生成第一数据库的重做日志,并写入重做日志组中,第一主机可以通过复制平面的ip地址将重做日志组中的重做日志发送给第二主机。

由于第一主机与第二主机通过复制平面互相通信,则第二主机可以实时获取到第一数据库的重做日志。

204、第二主机控制第二数据库执行第一数据库执行的事务。

在本申请实施例中,第二主机在获取到第一数据库的重做日志后,可以根据该重做日志,控制第二数据库执行第一数据库执行的事务,从而使第二数据库的磁盘组资源中的数据与第一数据库的磁盘组资源中的数据一致。

在本申请实施例中,由于第二主机可以通过复制平面的ip地址实时获取到第一数据库的重做日志,从而第二数据库磁盘组资源中的数据与第一数据库的磁盘组资源中的数据可以实现实时性的一致,则当启动双机切换操作时,第二数据库在完成切换后,可以及时根据磁盘组资源中的数据响应客户端的业务请求,进一步缩短了用户业务中断的时长,减少了双机切换给客户端造成的影响。

205、第一主机监控第一数据库的运行情况。

在本申请实施例中,第一主机可以周期性的监控第一数据库的运行情况,从而当第一数据库出现异常时,可以及时触发双机切换操作,具体参阅图3,第一主机监控第一数据库的运行情况的方式,具体包括:

第一主机判断第一数据库的磁盘组资源是否在线,在第一数据库的磁盘组资源不在线的情况下,第一主机对第一数据库的磁盘组资源执行拉起操作,若拉起失败,则重复执行拉起操作,在第一主机对第一数据库的磁盘组资源连续执行拉起操作的次数超过第一阈值时,第一主机确定第一数据库满足双机切换条件;或者

第一主机判断第一数据库的数据库资源是否在线,在第一数据库的数据库资源不在线的情况下,第一主机对第一数据库的数据库资源执行拉起操作,若拉起失败,则重复执行拉起操作,在第一主机对第一数据库的数据库资源连续执行拉起操作的次数超过第二阈值时,第一主机确定第一数据库满足双机切换条件;或者

第一主机判断第一数据库的业务平面监听器是否在线,在第一数据库的业务平面监听器不在线的情况下,第一主机对第一数据库的业务平面监听器执行拉起操作,若拉起失败,则重复执行拉起操作,在第一主机对第一数据库的业务平面监听器连续执行拉起操作的次数超过第四阈值时,第一主机确定第一数据库满足双机切换条件;或者

第一主机判断第一数据库的管理平面监听器是否在线,在第一数据库的管理平面监听器不在线的情况下,第一主机对第一数据库的管理平面监听器执行拉起操作,若拉起失败,则重复执行拉起操作;或者

第一主机判断第一数据库的复制平面监听器是否在线,在第一数据库的复制平面监听器不在线的情况下,第一主机对第一数据库的复制平面监听器执行拉起操作,若拉起失败,则重复执行拉起操作;

第一主机判断第一数据库的业务平面浮动ip地址是否在线,在第一数据库的业务平面浮动ip地址不在线的情况下,第一主机对第一数据库的业务平面浮动ip地址执行拉起操作,若拉起失败,则重复执行拉起操作,在第一主机对第一数据库的业务平面浮动ip地址连续执行拉起操作的次数超过第三阈值时,第一主机确定第一数据库满足双机切换条件;或者

第一主机判断第一数据库的管理平面浮动ip地址是否在线,在第一数据库的管理平面浮动ip地址不在线的情况下,第一主机对第一数据库的管理平面浮动ip地址执行拉起操作,若拉起失败,则重复执行拉起操作。

在本申请实施例中,数据库资源由实例(instance)和数据库(database)结构组成。实例由后台进程和内存结构组成,作为示例,数据库的内存结构可以为系统全局区(systemglobalarea,sga)、程序全局区(processglobalarea,pga)、用户全局区(userglobalarea,uga)或其他类型的内存结构。数据库结构由物理结构和逻辑结构确定,其中,物理结构由数据库数据文件、重做日志文件、控制文件、参数文件或归档日志文件等操作系统文件所决定,逻辑结构由表空间、数据块或索引端等决定。

在本申请实施例中,当第一主机监测到磁盘组资源、数据库资源、业务平面监听器或业务平面浮动ip地址中任一资源不在线,且连续拉起均拉起失败的情况下,可以及时触发双机切换操作,由于上述任一资源出现异常时,都会导致无法响应客户端的业务请求,在此时及时的触发双机切换操作,由第二数据库继续响应客户端的业务请求,以提供良好的用户体验。

当管理平面监听器、复制平面监听器或管理平面浮动ip地址中任一资源不在线时,则可以反复执行拉起操作,当反复拉起仍拉起失败时,可以发出警告,以提示运维人员进行人工干预,从而提高主数据库运行的稳定性;但不会触发双机切换操作,由于当上述任一资源出现异常时,并不会直接导致无法响应客户端的业务请求,在此时不触发双机切换操作,避免了用户业务的中断。

应当理解,由于oracle数据库管理系统中存在监听器,因此,第一主机需要判断第一数据库的监听器是否在线,但有些类型的数据库管理系统中并不存在监听器,则相应的不存在判断监听器是否在线的步骤。

此外,在本申请的一些实施例中并不限定第一主机对第一数据库的各种资源或组件的异常判断顺序,例如,第一主机也可以先判断数据库资源是否在线,再判断磁盘组资源是否在线,具体各资源或组件的判断顺序应按照实际顺序灵活设定。

206、第二主机监控第二数据库的运行情况。

在本申请实施例中,第二主机可以周期性的监控第二数据库的运行情况,具体参阅图4,第二主机监控第二数据库的运行情况的方式,具体包括:

第二主机判断第二数据库的磁盘组资源是否在线,在第二数据库的磁盘组资源不在线的情况下,第二主机对第二数据库的磁盘组资源执行拉起操作,若拉起失败,则重复执行拉起操作;或者

第二主机判断第二数据库的数据库资源是否在线,在第二数据库的数据库资源不在线的情况下,第二主机对第二数据库的数据库资源执行拉起操作,若拉起失败,则重复执行拉起操作;或者

第二主机判断第二数据库的复制平面监听器是否在线,在第二数据库的复制平面监听器不在线且复制进程的状态正常的情况下,第二主机对第二数据库的复制平面监听器执行拉起操作,若拉起失败,则重复执行拉起操作,在第二数据库的复制平面监听器不在线且复制进程的状态异常的情况下,第二主机重新启动复制进程后,再对第二数据库的复制平面监听器执行拉起操作。

在本申请实施例中,在每个监控周期内,第二主机可以检查第二数据库的磁盘组资源、数据库资源以及复制平面监听器是否在线,若不在线,则可以反复执行拉起操作,当反复拉起仍拉起失败时,可以发出警告,以提示运维人员进行人工干预,从而保证从用数据库时刻处于正常运行状态,避免在执行双机切换操作过程中,由于从用数据库运行异常而导致的无法切换的情况,提高主从数据库切换过程的稳定性。

应当理解,在本申请的一些实施例中不限定步骤205和步骤206的执行顺序,可以先执行步骤205,再执行步骤206;也可以先执行步骤206,再执行步骤205;还可以同时执行步骤205和步骤206。

207、第一主机解除第一数据库与业务平面浮动ip地址的绑定。

在本申请实施例中,在第一主机通过步骤205确定第一数据库满足双机切换条件的情况下,停止在第一数据库上使用该业务平面浮动ip地址,也即解除第一数据库与业务平面浮动ip地址的绑定,并关闭业务平面监听器。

208、第一主机解除第一数据库与管理平面浮动ip地址的绑定。

在本申请实施例中,在第一主机通过步骤205确定第一数据库满足双机切换条件的情况下,停止在第一数据库上使用该管理平面浮动ip地址,也即解除第一数据库与管理平面浮动ip地址的绑定,并关闭管理平面监听器。

应当理解,步骤207和步骤208中关闭监听器的步骤为可选步骤,在不存在监听器的数据库管理系统中,关闭监听器的步骤也不存在。

应当理解,在本申请的一些实施例中不限定步骤207和步骤208的执行顺序,可以先执行步骤207,再执行步骤208;也可以先执行步骤208,再执行步骤207;还可以同时执行步骤207和步骤208。

209、第一主机在有计划的执行双机切换操作switchover模式下将第一数据库由主用切换为从用。

在本申请的一些实施例中,在第一主机解除第一数据库与浮动ip地址的绑定之后,可以判断第一数据库是否符合switchover模式的要求,在第一数据库符合switchover模式的情况下,在switchover模式下将第一数据库由主用切换为从用。

在本申请实施例中,第一主机和第二主机判断数据库是否符合switchover模式的要求的方式可以一致,具体的,主机可以通过判断数据库的switchover模式是否处于正常运行状态来判断数据库是否符合switchover模式的要求,作为示例,例如可以通过结构化查询语言(structuredquerylanguage,sql)命令查询数据库中switchover_status(switchover模式的状态)是否为tostandby(切换为从用)或sessionsactive(正在运行中)状态,应当理解,此处对switchover模式状态的举例仅为方便理解本方案,具体不做限定。

210、第一主机向第二主机发送指示信息。

在本申请的一些实施例中,第一主机在switchover模式下将第一数据库切换为从用之后,可以向第二主机发送指示信息,该指示信息用于指示将第二数据库由从用切换为主用,并在第二数据库上启动业务平面浮动ip地址。

211、第二主机在有计划的执行双机切换操作switchover模式下将第二数据库由从用切换为主用。

在本申请的一些实施例中,第二主机在接收到第一主机的指示信息后,可以判断第二数据库是否符合switchover模式的要求,在第二数据库符合switchover模式的情况下,在switchover模式下将第二数据库由从用切换为主用。

212、第二主机在第二数据库上启动业务平面浮动ip地址。

213、第二主机在第二数据库上启动管理平面浮动ip地址。

在本申请实施例中,第二主机上可以预先存储由业务平面浮动ip地址和管理平面浮动ip地址的地址信息,在第二主机将第二数据库切换为主用之后,可以将第二数据库启动到mounted状态,启动复制平面监听器,将第二数据库设置为主用数据库,再将第二数据库启动到open状态。在第二数据库上启动管理平面浮动ip地址和业务平面浮动ip地址,启动管理平面监听器和业务平面监听器,从而完成第二数据库由从用向主用的切换。

在本申请实施例中,由于第二主机和第一主机在管理平面上也共用相同的管理平面浮动ip地址,则执行切换前后用于承载管理平面的数据流的管理平面浮动ip地址没有发生变化,则双机切换前后用于监控内部网络情况的网关访问的ip地址没有发生变化,减少了双机切换给网关造成的影响。

二、第一主机在switchover模式下且第二主机在failover模式下进行主用和从用的切换

具体参阅5,本申请实施例提供的主从数据库切换方法的另一个实施例,可以包括:

501、第一主机启动第一数据库。

502、第二主机启动第二数据库。

503、第一主机向第二主机发送第一数据库的重做日志。

504、第二主机控制第二数据库执行第一数据库执行的事务。

505、第一主机监控第一数据库的运行情况。

506、第二主机监控第二数据库的运行情况。

507、第一主机解除第一数据库与业务平面浮动ip地址的绑定。

508、第一主机解除第一数据库与管理平面浮动ip地址的绑定。

509、第一主机在有计划的执行双机切换操作switchover模式下将第一数据库由主用切换为从用。

510、第一主机向第二主机发送指示信息。

在本申请实施例中,步骤501至510与图2所示实施例中步骤201至210类似,此处不再赘述。

511、第二主机在数据库不活动时执行双机切换操作failover模式下将第二数据库由从用切换为主用。

在本申请的一些实施例中,第二主机在接收到第一主机的指示信息后,可以判断第二数据库是否符合switchover模式的要求,在第二数据库不符合switchover模式的情况下,或者在第二数据库符合switchover模式但在switchover模式下切换失败的情况下,都会导致第二数据库无法在switchover模式下将第二数据库由从用切换为主用,则第二主机可以在failover模式下将第二数据库由从用切换为主用。

在一种实现方式中,第二主机在确定第二数据库无法在switchover模式下切换为主用时的情况下,第二主机可以等待一段时间,使第二数据库可以继续根据第一数据库的重做日志执行第一数据库执行过的事务,并获取第二数据库根据第一数据库的重做日志执行第一数据库执行过的事务的执行状态,直到第二数据库执行第一数据库执行过的事务执行完毕后,第二主机停止第二数据库的复制进程,在failover模式下强制将第二数据库由从用切换为主用。

在本申请的一些实施例中,当第二主机在无法在switchover模式下将第二数据库由从用切换为主用时,第二主机可以在确定第二数据库执行第一数据库执行过的事务为执行完毕状态时,才在failover模式下强制将第二数据库切换为主用,可以避免数据库复制进程的强制打断,从而保证了第二数据库复制第一数据库过程的连续性,以尽快实现第二数据库和第一数据库的数据一致性,从而尽快响应客户端的业务请求。

在另一种实现方式中,第二主机可以获取预设时长,当第二数据库执行第一数据库执行过的事务的时长达到该预设时长时,第二主机在failover模式下将第二数据库由从用切换为主用。

在本申请的一些实施例中,第二主机可以预设有等待的时长,在第二主机无法在switchover模式下将第二数据库切换为主用的情况下,第二主机可以等待一段时间,使第二数据库可以继续根据第一数据库的重做日志执行第一数据库执行过的事务,当第二数据库执行第一数据库执行过的事务的时长达到该预设时长时,第二主机停止第二数据库的复制进程,在failover模式下强制将第二数据库由从用切换为主用。

在本申请实施例中,预设时长可以为60秒、45秒、75秒或其他长度的预设时长等,具体此处不做限定。

在本申请实施例中,第二主机可以预设有等待时长,若在预设时长内第二数据库仍未执行完所有的事务,则意味着第二数据库的复制进程可能出现故障,则在等待时长达到预设时长时,在failover模式下强制将第二数据库切换为主用,从而避免用于业务中断的时间过长。

512、第二主机在第二数据库上启动业务平面浮动ip地址。

513、第二主机在第二数据库上启动管理平面浮动ip地址。

在本申请实施例中,步骤512和513与图2所示实施例中步骤212和213类似,此处不再赘述。

三、第一主机在failover模式下且第二主机在failover模式下进行主用和从用的切换

具体参阅6,本申请实施例提供的主从数据库切换方法的另一个实施例,可以包括:

601、第一主机将第一数据库启动至上升mounted状态;

602、第一主机开启第一数据库的闪回模式;

603、第一主机将第一数据库启动至完全开启open状态。

在本申请的一些实施例中,第一主机在将第一数据库启动至mounted状态后,可以启动复制平面监听器,将第一数据库设置为主用数据库,开启第一数据库的重做日志组的归档模式,开启第一数据库的闪回模式后,再将第一数据库启动至open状态。在第一数据库上启动管理平面浮动ip地址和业务平面浮动ip地址,启动管理平面监听器和业务平面监听器。

604、第二主机启动第二数据库。

605、第一主机向第二主机发送第一数据库的重做日志。

606、第二主机控制第二数据库执行第一数据库执行的事务。

607、第一主机监控第一数据库的运行情况。

608、第二主机监控第二数据库的运行情况。

609、在第一主机解除第一数据库与业务平面浮动ip地址的绑定。

610、在第一主机解除第一数据库与管理平面浮动ip地址的绑定。

在本申请的一些实施例中,步骤604至610与图2所示实施例中步骤202至208类似,此处不再赘述。

611、第一主机向第二主机发送指示信息。

在本申请的一些实施例中,第一主机在确定第一数据库无法在switchover模式下完成由主用到从用的切换后,可以检查是否将第一主机的所有重做日志发送给了第二主机,若未全部发送至第二主机,则强制将第一主机的所有重做日志发送给第二主机,并在确定将全部重做日志发送给第二主机之后,再向第二主机发送指示信息,该指示信息用于指示将第二数据库由从用切换为主用,并在第二数据库上启动业务平面浮动ip地址。

在第一数据库无法在switchover模式下完成双机切换的情况下,第一主机可以确定第一数据库出现了故障,则存在第一主机向第二主机发送重做日志也出现故障的可能性,通过强制发送的方式,可以确保第二主机可以获取到第一主机的所有重做日志,从而保证第二数据库的数据与第一数据库的数据的一致性,提高用户数据的安全性。

612、第二主机在数据库不活动时执行双机切换操作failover模式下将第二数据库由从用切换为主用。

在本申请实施例中,步骤612与图5所示实施例中步骤511类似,此处不再赘述。

613、第二主机重启第二数据库。

614、第二主机记录第二数据库重启时的系统变更号scn。

在本申请的一些实施例中,第二主机在将第二数据库切换为主用之后,可以重启第二数据库,并记录第二数据库重启时的系统变更号(systemchangenumber,scn),也即第二数据库切换为主用后的scn。其中,scn为由数据库管理系统自动维护的累积递增的一个数字系列,用来区别事务的先后顺序,

615、第二主机在第二数据库上启动业务平面浮动ip地址。

616、第二主机在第二数据库上启动管理平面浮动ip地址。

在本申请实施例中,步骤615和616与图2所示实施例中步骤212和213类似,此处不再赘述。

617、第一主机获取第二数据库切换为主用后的系统变更号。

在本申请的一些实施例中,第一主机在通过步骤607确定第一数据库满足双机切换条件的情况下,可以判断第一数据库是否符合switchover模式的要求,在第一数据库不符合switchover模式的情况下,或者在第一数据库符合switchover模式但在switchover模式下切换失败的情况下,都会导致第一数据库需要在failover模式下将第一数据库由主用切换为从用。则第一主机可以获取第二数据库由从用切换为主用后的scn,也即步骤614中第二数据库重启时的scn。

618、第一主机根据所述系统变更号执行闪回操作。

在本申请的一些实施例中,第一主机在获取到第二数据库切换为主用后的scn后,由于第一主机已经通过步骤602将开启了第一数据库的闪回模式,则可以根据前述scn执行闪回操作。

应当理解,步骤602为可选步骤,当不执行步骤602时,也可以在第一主机通过步骤618获取到第二数据库切换为主用后的scn后,第一主机重启第一数据库,并开启重做日志组的归档模式和第一数据库的闪回模式。

619、第一主机在数据库不活动时执行双机切换操作failover模式下将第一数据库由主用切换为从用。

在本申请的一些实施例中,第一主机在根据第二数据库切换为主用后的scn执行闪回操作后,可以在failover模式下将第一数据库由主用切换为从用。第二主机再根据scn号和重做日志,控制第一数据库继续执行事务。

本申请实施例中,当第一数据库和第二数据库均在failover模式下完成双机切换时,第二主机数据库在failover模式下完成由从用切换为主用,并重启第二数据库后,获取第二数据库重启时的scn,第一主机获取该scn,并根据该scn执行闪回操作。由于当第一数据库和第二数据库均处于故障状态时,通过统一scn的方式保证第一数据库和第二数据库的数据的一致性,提高了数据库中数据的准确性。

为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置。

具体参阅图7所示,为本申请实施例提供的主机的一种结构示意图,所述主机为第一主机,所述第一主机包含于数据库系统中,所述数据库系统还包括第二主机,其中,所述第一主机上运行有第一数据库,所述第二主机上运行有第二数据库,所述第一数据库和所述第二数据库均分别配置有各自的磁盘组资源,所述主机包括:解除单元701、切换单元702和发送单元703,其中,

解除单元701,用于在所述第一数据库满足双机切换条件的情况下,解除所述第一数据库与业务平面浮动互联网协议ip地址的绑定,所述业务平面浮动ip地址用于承载业务平面的数据流,所述业务平面为接收并响应业务请求的网络平面;

切换单元702,用于将所述第一数据库由主用切换为从用;

发送单元703,用于向所述第二主机发送指示信息,所述指示信息用于指示将所述第二数据库由从用切换为主用,并在所述第二数据库上启动所述业务平面浮动ip地址。

在本申请实施例中,在第一数据库满足双机切换条件的情况下,解除单元701解除绑定于第一数据库的业务平面浮动ip地址,切换单元702将第一数据库由主用切换为从用。在第一数据库完成角色切换操作之后,发送单元703向第二数据库发送指示信息,该指示信息用于指示将第二数据库由从用切换为主用,并在该第二数据库上启动上述业务平面浮动ip地址。由于主数据库和从数据库均分别配置有各自的磁盘组资源,则磁盘组资源和数据库资源在主数据库和从数据库上同时激活,既避免了在双机切换过程中出现的磁盘与数据库之间不适应的问题,又避免了由于共享磁盘出现故障而导致无法响应用户的请求的情况,提高了数据的安全性;且在双机切换过程中涉及的是业务平面浮动ip的切换以及主数据库和从数据库角色的切换,不再需要将磁盘组资源和数据库资源从主数据下线再在从数据库上线,有利于缩短双机切换的时长,从而缩短用户业务中断的时长;此外,由于执行切换前后用于承载业务平面的数据流的业务平面浮动ip地址没有发生变化,则双机切换前后客户端访问的ip地址没有发生变化,减少了双机切换给客户端造成的影响。

在本申请实施例中,所述发送单元703,还用于向所述第二主机发送所述第一数据库的重做日志,所述重做日志用于指示所述第二主机控制所述第二数据库根据所述重做日志执行所述第一数据库执行过的事务,以使所述第二数据库的磁盘组资源中的数据和所述第一数据库的磁盘组资源中的数据一致。

在本申请实施例中,所述发送单元703具体用于:

在所述第一主机确定所述第一数据库处于正常运行状态时,所述第一主机可以通过复制平面的ip地址实时向所述第二主机发送所述第一数据库的重做日志;在所述第一主机确定所述第一数据库运行异常时,所述第一主机强制将所述第一数据库的重做日志发送至所述第二主机。

在本申请的一些实施例中,所述切换单元702具体用于:

在所述第一数据库不符合有计划的执行双机切换操作switchover模式的情况下,获取所述第二数据库启动时的系统变更号scn,根据所述scn执行闪回操作,在数据库不活动时执行双机切换操作failover模式下将所述第一数据库由主用切换为从用。

在本申请的一些实施例中,所述切换单元702具体用于:

在所述第一数据库符合switchover模式的情况下,在所述switchover模式下将所述第一数据库由主用切换为从用。

在本申请的一些实施例中,所述切换单元702具体用于:

在所述第二数据库在switchover模式下角色切换失败的情况下,获取所述第二数据库启动时的scn,根据所述scn执行闪回操作,在failover模式下将所述第一数据库由主用切换为从用。

在本申请实施例中,所述解除单元701,还用于解除所述第一数据库与管理平面浮动ip地址的绑定,其中,在执行所述双机切换操作后,所述管理平面浮动ip绑定于所述第二数据库上,所述管理平面浮动ip用于承载管理平面的数据流,所述管理平面为用于实现内部网络监控的网络平面。

在本申请实施例中,所述第一主机还包括拉起单元704,所述解除单元701确定所述第一数据库满足双机切换条件的方式,包括以下至少一种:

在所述第一数据库的磁盘组资源不在线的情况下,所述拉起单元704对所述第一数据库的磁盘组资源执行拉起操作,在所述拉起单元704对所述第一数据库的磁盘组资源连续执行拉起操作的次数超过第一阈值时,所述解除单元701确定所述第一数据库满足双机切换条件;或者

在所述第一数据库的数据库资源不在线的情况下,所述拉起单元704对所述第一数据库的数据库资源执行拉起操作,在所述拉起单元704对所述第一数据库的数据库资源连续执行拉起操作的次数超过第二阈值时,所述解除单元701确定所述第一数据库满足双机切换条件;或者

在所述第一数据库的业务平面浮动ip地址资源不在线的情况下,所述拉起单元704对所述第一数据库的业务平面浮动ip地址资源执行拉起操作,在所述拉起单元704对所述第一数据库的业务平面浮动ip地址连续执行拉起操作的次数超过第三阈值时,所述解除单元701确定所述第一数据库满足双机切换条件。

本申请实施例中,所述主机还包括:

启动单元705,用于将第一数据库启动至上升mounted状态,开启第一数据库的闪回模式,将第一数据库启动至完全开启open状态。

具体参阅图8所示,为本申请实施例提供的主机的另一种结构示意图,所述主机为第二主机,所述第二主机包含于数据库系统中,所述数据库系统还包括第二主机,其中,所述第一主机上运行有第一数据库,所述第二主机上运行有第二数据库,所述第一数据库和所述第二数据库均分别配置有各自的磁盘组资源,所述主机包括:接收单元801、切换单元802和启动单元803,其中,

接收单元801,用于接收第一主机发送的指示信息,所述指示信息用于指示启动所述第二数据库的双机切换操作;

切换单元802,用于将所述第二数据库由从用切换为主用;

启动单元803,用于在所述第二数据库上启动业务平面浮动互联网协议ip地址,所述业务平面为接收并响应业务请求的网络平面,其中,所述业务平面浮动ip地址用于承载业务平面的数据流,所述业务平面为接收并响应业务请求的网络平面,在执行双机切换操作前,所述业务平面浮动ip地址绑定于所述第一数据库上。

在本申请实施例中,接收单元801在接收到指示信息之后,基于该指示信息,切换单元802将第二数据库由从用切换为主用,启动单元803在该第二数据库上启动业务平面浮动ip地址。由于主数据库和从数据库均分别配置有各自的磁盘组资源,则磁盘组资源和数据库资源在主数据库和从数据库上同时激活,既避免了在双机切换过程中出现的磁盘与数据库之间不适应的问题,又避免了由于共享磁盘出现故障而导致无法响应用户的请求的情况,提高了数据的安全性;且在双机切换过程中涉及的是业务平面浮动ip的切换以及主数据库和从数据库角色的切换,不再需要将磁盘组资源和数据库资源从主数据下线再在从数据库上线,有利于缩短双机切换的时长,从而缩短用户业务中断的时长;此外,由于执行切换前后用于承载业务平面的数据流的业务平面浮动ip地址没有发生变化,则双机切换前后客户端访问的ip地址没有发生变化,减少了双机切换给客户端造成的影响。

在本申请实施例中,所述主机还包括:获取单元804和控制单元805,其中,

获取单元804,用于获取所述第一数据库的重做日志;

控制单元805,用于根据所述重做日志,控制所述第二数据库执行所述第一数据库执行过的事务,以使所述第二数据库的磁盘组资源中的数据和所述第一数据库的磁盘组资源中的数据一致。

在本申请的一些实施例中,所述切换单元802具体用于:

在所述第二数据库不符合有计划的执行双机切换操作switchover模式的情况下,在数据库不活动时执行双机切换操作failover模式下将所述第二数据库由从用切换为主用。

在本申请的一些实施例中,所述切换单元802具体用于:

在所述第二数据库符合switchover模式的情况下,在所述switchover模式下将所述第二数据库由从用切换为主用。

在本申请的一些实施例中,所述切换单元802具体用于:

在所述第二数据库在所述switchover模式下角色切换失败的情况下,在failover模式下将所述第二数据库由从用切换为主用。

在本申请的一些实施例中,所述切换单元802具体用于:

获取预设时长;当所述第二数据库执行所述第一数据库执行过的事务的时长达到所述预设时长时,在所述failover模式下将所述第二数据库由从用切换为主用。

在本申请的一些实施例中,所述切换单元802具体用于:

当所述第二数据库执行所述第一数据库执行过的事务执行完毕时,在所述failover模式下将所述第二数据库由从用切换为主用。

在本申请实施例中,所述主机还包括:记录单元806,用于记录所述第二数据库切换为主用后的系统变更号scn,所述scn用于供所述第一主机根据所述scn控制所述第一数据库执行闪回操作。

在本申请实施例中,所述主机还包括拉起单元807,所述拉起单元807具体用于:

在所述第二数据库的磁盘组资源不在线的情况下,对所述第二数据库的磁盘组资源执行拉起操作;或者

在所述第二数据库的数据库资源不在线的情况下,对所述第二数据库的数据库资源执行拉起操作;或者

所述启动单元803,还用于通过复制进程根据所述第一数据库的重做日志执行所述第一数据库执行过的事务,当所述复制进程的状态异常时,重新启动所述复制进程。

在本申请实施例中,所述启动单元803,还用于在所述第二数据库上启动管理平面浮动ip地址,其中,所述在执行所述双机切换操作前,所述管理平面浮动ip绑定于所述第一数据库上,所述管理平面浮动ip用于承载管理平面的数据流,所述管理平面为用于实现内部网络监控的网络平面。

需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

接下来介绍本申请实施例提供的另一种主机,请参阅图9所示,为本申请实施例提供的第一主机的一种结构示意图,终端设备900包括:

接收器901、发射器902、处理器903和存储器904(其中终端设备900中的处理器903的数量可以一个或多个,图10中以一个处理器为例)。在本申请的一些实施例中,接收器901、发射器902、处理器903和存储器904可通过总线或其它方式连接,其中,图10中以通过总线连接为例。

存储器904可以包括只读存储器和随机存取存储器,并向处理器903提供指令和数据。存储器904的一部分还可以包括非易失性随机存取存储器(non-volatilerandomaccessmemory,nvram)。存储器904存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。

处理器903控制终端设备的操作,处理器903还可以称为中央处理单元(centralprocessingunit,cpu)。具体的应用中,终端设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。

上述本申请实施例揭示的方法可以应用于处理器903中,或者由处理器903实现。处理器903可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器903中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器903可以是通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器904,处理器903读取存储器904中的信息,结合其硬件完成上述方法的步骤。

接收器901可用于接收输入的数字或字符信息,以及产生与第一主机的相关设置以及功能控制有关的信号输入。

发射器902可用于通过第一接口输出数字或字符信息,例如向第二主机输出第一数据库的重做日志等信息;发射器902还可用于通过第二接口向磁盘组发送指令,以修改磁盘组中的数据;发射器902还可以包括显示屏等显示设备。

本申请实施例中,处理器903,用于执行前述的第一主机执行的主从数据库切换方法。

接下来介绍本申请实施例提供的另一种主机,请参阅图10所示,第二主机1000包括:

接收器1001、发射器1002、处理器1003和存储器1004(其中网络设备1000中的处理器1003的数量可以一个或多个,图10中以一个处理器为例)。在本申请的一些实施例中,接收器1001、发射器1002、处理器1003和存储器1004可通过总线或其它方式连接,其中,图10中以通过总线连接为例。

存储器1004可以包括只读存储器和随机存取存储器,并向处理器1003提供指令和数据。存储器1004的一部分还可以包括nvram。存储器1004存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。

处理器1003控制网络设备的操作,处理器1003还可以称为cpu。具体的应用中,网络设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。

上述本申请实施例揭示的方法可以应用于处理器1003中,或者由处理器1003实现。处理器1003可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1003中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1003可以是通用处理器、dsp、asic、fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1004,处理器1003读取存储器1004中的信息,结合其硬件完成上述方法的步骤。

接收器1001可用于接收数字或字符信息,作为示例,例如接收第一主机发送的第一数据库的重做日志,还可以用于产生与第二主机的相关设置以及功能控制有关的信号输入。

发射器1002可用于通过第一接口输出数字或字符信息,例如向第一主机输出系统变更号scn等信息;发射器1002还可用于通过第二接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1002还可以包括显示屏等显示设备。

本申请实施例中,处理器1003,用于执行前述由第二主机执行的主从数据库切换方法。

本申请实施例中还提供一种包含主从数据库切换指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图2至图6所示实施例描述的方法中第一主机所执行的步骤。

本申请实施例中还提供一种包含主从数据库切换指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图2至图6所示实施例描述的方法中第二主机所执行的步骤。

本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有主从数据库切换的指令,当其在计算机上运行时,使得计算机执行如前述图2至图6所示实施例描述的方法中第一主机所执行的步骤。

本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有主从数据库切换的指令,当其在计算机上运行时,使得计算机执行如前述图2至图6所示实施例描述的方法中第二主机所执行的步骤。

其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,asic,或一个或多个用于控制上述第一方面方法的程序执行的集成电路。

本申请实施例中还提供一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述方面中所涉及的功能,例如,例如发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1