发明内容
本发明实施例提供了一种数据备份的方法、装置和系统,以至少解决由于现有技术中备份日志备份数据量大且备份速度慢易导致故障恢复时数据恢复失败的技术问题。
根据本发明实施例的一个方面,提供了一种数据备份的系统,包括:第一设备,第二设备和存储设备,其中,第一设备,用于处于主设备状态的情况下,通过监控增量日志变更,将更新后的增量日志备份至存储设备;并将增量日志中的最后一个日志标识同步至处于备用设备状态的第二设备;在监控到第一设备由主设备状态切换为备用设备状态的情况下,停止监控增量日志变更;第二设备,用于处于备用设备状态的情况下,接收处于主设备状态的第一设备发送的日志标识,在监控到第二设备由备用设备状态切换为主设备状态的情况下,依据日志标识获取增量日志,并监控增量日志变更,将更新后的增量日志备份至存储设备;将增量日志中的最后一个日志标识同步至当前处于备用设备状态的第一设备;存储设备,用于存储第一设备或第二设备备份的增量日志。
可选的,第一设备包括:数据库和内核代理模块,其中,内核代理模块,用于在第一设备处于主设备状态的情况下,监控数据库中的增量日志是否变更,并监控第一设备所处的主/备设备状态,在增量日志发生变更的情况下,将增量日志备份至存储设备,并将增量日志的最后一个日志标识同步至备用设备,在主/备设备状态发生变化的情况下,停止监控数据库中的增量日志是否变更;数据库,与内核代理模块连接,用于存储或更新增量日志。
可选的,第二设备包括:数据库和内核代理模块,其中,内核代理模块,用于在第二设备处于备用设备状态的情况下,接收处于主设备状态的第一设备发送的日志标识,在监控到第二设备由备用设备状态切换为主设备状态的情况下,依据日志标识从存储设备中获取增量日志,监控数据库中的增量日志是否变更,并监控第一设备所处的主/备设备状态,在第一设备处于主设备状态,且增量日志发生变更的情况下,将增量日志备份至存储设备,并将增量日志的最后一个日志标识同步至备用设备,在主/备设备状态发生变化的情况下,停止监控数据库中的增量日志是否变更;并监控数据库中的增量日志变更,将更新后的增量日志备份至存储设备;将增量日志中的最后一个日志标识同步至当前处于备用设备状态的第一设备;数据库,与内核代理模块连接,用于存储增量日志。
根据本发明实施例的另一方面,还提供了一种数据备份的方法,包括:通过监控增量日志变更,将更新后的增量日志备份至存储设备;将增量日志中的最后一个日志标识同步至处于备用设备状态的第二设备;在监控到第一设备由主设备状态切换为备用设备状态的情况下,停止监控增量日志变更。
可选的,通过监控增量日志变更,将更新后的增量日志备份至存储设备包括:通过内核代理模块监控数据库中的增量日志是否变更;在增量日志发生更新的情况下,将更新后的增量日志备份至存储设备。
可选的,将增量日志中的最后一个日志标识同步至处于备用设备状态的第二设备包括:通过内核代理模块将增量日志中的最后一个日志标识,依据分布式存储将最后一个日志标识同步至处于备用设备状态的第二设备。
根据本发明实施例的又一方面,还提供了一种数据备份的方法,包括:在第二设备处于备用设备状态的情况下,接收处于主设备状态的第一设备发送的日志标识;在监控到第二设备由备用设备状态切换为主设备状态的情况下,依据日志标识获取增量日志;监控增量日志变更,将更新后的增量日志备份至存储设备;将增量日志中的最后一个日志标识同步至当前处于备用设备状态的第一设备。
根据本发明另一实施例的一方面,还提供了一种数据备份的装置,包括:备份模块,用于通过监控增量日志变更,将更新后的增量日志备份至存储设备;同步模块,用于将增量日志中的最后一个日志标识同步至处于备用设备状态的第二设备;控制模块,用于在监控到第一设备由主设备状态切换为备用设备状态的情况下,停止监控增量日志变更。
根据本发明另一实施例的另一方面,还提供了一种数据备份的装置,包括:接收模块,用于在第二设备处于备用设备状态的情况下,接收处于主设备状态的第一设备发送的日志标识;获取模块,用于在监控到第二设备由备用设备状态切换为主设备状态的情况下,依据日志标识获取增量日志;监控模块,用于监控增量日志变更,将更新后的增量日志备份至存储设备;同步模块,用于将增量日志中的最后一个日志标识同步至当前处于备用设备状态的第一设备。
根据本发明另一实施例的又一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述数据备份的方法。
在本发明实施例中,采用共享存储的方式,通过监控增量日志变更,将更新后的增量日志备份至存储设备;将增量日志中的最后一个日志标识同步至处于备用设备状态的第二设备;在监控到第一设备由主设备状态切换为备用设备状态的情况下,停止监控增量日志变更,达到了只产生一份增量日志,只对这一份增量日志备份的目的,从而实现了减轻系统存储压力,提升数据恢复成功率的技术效果,进而解决了由于现有技术中备份日志备份数据量大且备份速度慢易导致故障恢复时数据恢复失败的技术问题。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
图1是根据本发明实施例一的数据备份的系统的结构示意图,如图1所示,本申请实施例提供的数据备份的系统具体如下:
第一设备12,第二设备14和存储设备16,其中,第一设备12,用于处于主设备状态的情况下,通过监控增量日志变更,将更新后的增量日志备份至存储设备;并将增量日志中的最后一个日志标识同步至处于备用设备状态的第二设备14;在监控到第一设备12由主设备状态切换为备用设备状态的情况下,停止监控增量日志变更;第二设备14,用于处于备用设备状态的情况下,接收处于主设备状态的第一设备12发送的日志标识,在监控到第二设备14由备用设备状态切换为主设备状态的情况下,依据日志标识获取增量日志,并监控增量日志变更,将更新后的增量日志备份至存储设备;将增量日志中的最后一个日志标识同步至当前处于备用设备状态的第一设备12;存储设备16,用于存储第一设备12或第二设备14备份的增量日志。
可选的,第一设备12包括:数据库和内核代理模块,其中,内核代理模块,用于在第一设备12处于主设备状态的情况下,监控数据库中的增量日志是否变更,并监控第一设备12所处的主/备设备状态,在增量日志发生变更的情况下,将增量日志备份至存储设备,并将增量日志的最后一个日志标识同步至备用设备,在主/备设备状态发生变化的情况下,停止监控数据库中的增量日志是否变更;数据库,与内核代理模块连接,用于存储或更新增量日志。
可选的,第二设备14包括:数据库和内核代理模块,其中,内核代理模块,用于在第二设备14处于备用设备状态的情况下,接收处于主设备状态的第一设备12发送的日志标识,在监控到第二设备14由备用设备状态切换为主设备状态的情况下,依据日志标识从存储设备中获取增量日志,监控数据库中的增量日志是否变更,并监控第一设备12所处的主/备设备状态,在第一设备12处于主设备状态,且增量日志发生变更的情况下,将增量日志备份至存储设备,并将增量日志的最后一个日志标识同步至备用设备,在主/备设备状态发生变化的情况下,停止监控数据库中的增量日志是否变更;并监控数据库中的增量日志变更,将更新后的增量日志备份至存储设备16;将增量日志中的最后一个日志标识同步至当前处于备用设备状态的第一设备12;数据库,与内核代理模块连接,用于存储增量日志。
具体的,结合图2所示,图2是根据本发明实施例一的一种数据备份的系统中数据备份的流程示意图,在本申请实施例中第一设备12和第二设备14可以为同类型的计算设备,例如,服务器,云服务器,超级计算机,计算机等具备运算能力的设备,存储设备16在本申请实施例中可以包括远程存储,例如,云存储。
在数据备份的过程中,如图2所示,第一设备12标记为主机A,第二设备14标记为主机B,存储设备16标记为远程存储,在主机A处于主设备状态的情况下,通过主机A的agent监控增量日志变更,将更新后的增量日志备份至远程存储,并将增量日志中的最后一个日志标识同步至处于备用设备状态的主机B的agent,在监控到主机A由主设备状态切换为备用设备状态的情况下,停止监控增量日志变更;主机B处于备用设备状态的情况下,通过主机B的agent接收处于主设备状态的主机A发送的日志标识,在主机B的agent监控到主机B由备用设备状态切换为主设备状态的情况下,依据日志标识从远程存储中获取日志标识对应的增量日志,并监控主机B的增量日志变更,将更新后的增量日志备份至远程存储;将增量日志中的最后一个日志标识同步至当前处于备用设备状态的主机A;而远程存储在本申请实施例中用于存储主机A或主机B基于同一链的备份的增量日志;同一链的备份的增量日志为,由主机A开始就备份的日志文件,直至主机A由主设备切换至备用设备之后,暂停更新主机A的日志文件,但是基于主机A的最后一封日志文件,主机B基于该日志文件进行数据恢复和更新,因此,在远程存储这里实际上存储着一个一维向量的日志文件,区别仅在于主机A或主机B在主备状态切换时更新的标记。
需要说明的是,本申请实施例中备用主机的个数仅以一个主机B为例进行说明,在实际的运用中备用主机可以包括至少一台主机,多台备份主机B数据备份的过程中如上述,这里不再赘述。
具体的,如图2所示,图2中的数据备份过程如下:
步骤1:在主机A上通过操作系统内核(agent)实时监控数据库增量日志变更,并启动主备状态监控;
步骤2:监控到增量日志变更,备份到远程存储;
步骤3:解析出最后一个事务ID,通过分布式算法,包括但不限于Raft,同步到其余主机B;
步骤4:监控到主机A由主设备状态和链路降为备用设备状态,停止对主机A的实时监控数据库增量日志变更;
步骤5:监控到主机B的备用设备状态和链路升为新的主设备,设置数据库的增量日志位点到上一次的事务ID,并开启通过主机B的agent操作系统内核实时监控数据库增量日志变更;
步骤6:监控到新主设备的增量日志变更,备份到远程设备;
步骤7:解析出最后一个事务ID,通过分布式算法,包括但不限于Raft,同步到其余备用设备。
综上,如图3所示,图3是根据本发明实施例一的一种数据备份的系统中数据备份的交互示意图。
进行日志更新,监控所属设备所处的主备设备状态的过程中,主要通过主机A的agentA和主机B的agentB实现,如图3所示,在agentA实时监控到主机A增量日志变更时,将该增量日志备份至远程存储中,继续通过agentA监控主机A的主备设备状态,当主机A由主设备状态切换至备用设备状态,停止对主机A监控增量日志变更,并将主机A的最后一个日志标识,同步至主机B的agentB中;
此时,通过agentB监控主机B由备用设备切换为主设备,实时监控主机B的增量日志变化,并将该增量日志备份至远程存储中,继续通过agentB监控主机B的主备设备状态,当主机B由主设备状态切换至备用设备状态,停止对主机B监控增量日志变更,并将主机B的最后一个日志标识,通过agentB同步至主机A的agentA中。
本申请实施例提供的数据备份的系统解决的问题是通过实时监控、解析并备份主库的增量日志,将解析的增量日志事务ID(即,本申请实施例中的日志标识)同步到其余备库主机,并感知主备切换,在切换后的新主上从上一次的日志事务ID继续备份增量日志,形成一个单份的增量日志备份流,使得只需要备份一份数据,减少大规模下的主机资源、带宽、存储占用,加快备份速度,在故障恢复时无需筛选,使得恢复简单、准确和快速,极大的提升数据库的数据可靠性。
实施例2
根据本发明实施例,还提供了一种数据备份的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图4是本发明实施例的一种数据备份的方法的计算机终端的硬件结构框图。如图4所示,计算机终端40可以包括一个或多个(图中仅示出一个)处理器402(处理器402可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器404、以及用于通信功能的传输模块406。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端40还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
存储器404可用于存储应用软件的软件程序以及模块,如本发明实施例中的数据备份的方法对应的程序指令/模块,处理器402通过运行存储在存储器404内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的数据备份的方法。存储器404可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器404可进一步包括相对于处理器402远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端40。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置406用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端40的通信供应商提供的无线网络。在一个实例中,传输装置406包括一个网络适配器(Network Interface Control ler,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置406可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,本申请提供了如图5所示的数据备份的方法。在第一设备侧,图5是根据本发明实施例二的数据备份的方法的流程图。
步骤S502,通过监控增量日志变更,将更新后的增量日志备份至存储设备;
步骤S504,将增量日志中的最后一个日志标识同步至处于备用设备状态的第二设备;
步骤S506,在监控到第一设备由主设备状态切换为备用设备状态的情况下,停止监控增量日志变更。
可选的,步骤S502中通过监控增量日志变更,将更新后的增量日志备份至存储设备包括:
步骤S5021,通过内核代理模块监控数据库中的增量日志是否变更;
步骤S5022,在增量日志发生更新的情况下,将更新后的增量日志备份至存储设备。
可选的,步骤S504中将增量日志中的最后一个日志标识同步至处于备用设备状态的第二设备包括:
步骤S5041,通过内核代理模块将增量日志中的最后一个日志标识,依据分布式存储将最后一个日志标识同步至处于备用设备状态的第二设备。
具体的,结合步骤S502至步骤S506,本申请实施例提供的数据备份的方法可以适用于实施例1中的第一设备12。
在本发明实施例中,采用共享存储的方式,通过监控增量日志变更,将更新后的增量日志备份至存储设备;将增量日志中的最后一个日志标识同步至处于备用设备状态的第二设备;在监控到第一设备由主设备状态切换为备用设备状态的情况下,停止监控增量日志变更,达到了只产生一份增量日志,只对这一份增量日志备份的目的,从而实现了减轻系统存储压力,提升数据恢复成功率的技术效果,进而解决了由于现有技术中备份日志备份数据量大且备份速度慢易导致故障恢复时数据恢复失败的技术问题。
实施例3
本申请提供了如图6所示的数据备份的方法。在第二设备侧,图6是根据本发明实施例三的数据备份的方法的流程图。
步骤S602,在第二设备处于备用设备状态的情况下,接收处于主设备状态的第一设备发送的日志标识;
步骤S604,在监控到第二设备由备用设备状态切换为主设备状态的情况下,依据日志标识获取增量日志;
步骤S606,监控增量日志变更,将更新后的增量日志备份至存储设备;
步骤S608,将增量日志中的最后一个日志标识同步至当前处于备用设备状态的第一设备。
具体的,结合步骤S602至步骤S608,本申请实施例提供的数据备份的方法可以适用于实施例1中的第二设备14。
在本发明实施例中,采用共享存储的方式,通过在第二设备处于备用设备状态的情况下,接收处于主设备状态的第一设备发送的日志标识;在监控到第二设备由备用设备状态切换为主设备状态的情况下,依据日志标识获取增量日志;监控增量日志变更,将更新后的增量日志备份至存储设备;将增量日志中的最后一个日志标识同步至当前处于备用设备状态的第一设备,达到了只产生一份增量日志,只对这一份增量日志备份的目的,从而实现了减轻系统存储压力,提升数据恢复成功率的技术效果,进而解决了由于现有技术中备份日志备份数据量大且备份速度慢易导致故障恢复时数据恢复失败的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的数据备份的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例4
根据本发明实施例,还提供了一种用于实施上述数据备份方法的装置,如图7所示,图7是根据本发明实施例四的数据备份的装置的结构图,在第一设备侧,该装置包括:
备份模块72,用于通过监控增量日志变更,将更新后的增量日志备份至存储设备;同步模块74,用于将增量日志中的最后一个日志标识同步至处于备用设备状态的第二设备;控制模块76,用于在监控到第一设备由主设备状态切换为备用设备状态的情况下,停止监控增量日志变更。
实施例5
根据本发明实施例,还提供了一种用于实施上述数据备份方法的装置,如图8所示,图8是根据本发明实施例五的数据备份的装置的结构图,在第二设备侧,该装置包括:
接收模块82,用于在第二设备处于备用设备状态的情况下,接收处于主设备状态的第一设备发送的日志标识;获取模块84,用于在监控到第二设备由备用设备状态切换为主设备状态的情况下,依据日志标识获取增量日志;监控模块86,用于监控增量日志变更,将更新后的增量日志备份至存储设备;同步模块88,用于将增量日志中的最后一个日志标识同步至当前处于备用设备状态的第一设备。
实施例6
根据本发明另一实施例的又一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述数据备份的方法。
实施例7
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的数据备份方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过监控增量日志变更,将更新后的增量日志备份至存储设备;将增量日志中的最后一个日志标识同步至处于备用设备状态的第二设备;在监控到第一设备由主设备状态切换为备用设备状态的情况下,停止监控增量日志变更。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过监控增量日志变更,将更新后的增量日志备份至存储设备包括:通过内核代理模块监控数据库中的增量日志是否变更;在增量日志发生更新的情况下,将更新后的增量日志备份至存储设备。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:将增量日志中的最后一个日志标识同步至处于备用设备状态的第二设备包括:通过内核代理模块将增量日志中的最后一个日志标识,依据分布式存储将最后一个日志标识同步至处于备用设备状态的第二设备。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。