本发明涉及数据传输领域,具体而言,涉及一种基于sqlite数据库的主备同步处理方法及装置。
背景技术:
视频会议系统中,包含了mcu(多点控制单元)视频会议服务器及硬终端等各类参与设备。终端采集图像声音并经过编码发送给mcu。mcu则根据会议要求将多个终端发送的图像进行融合或不进行融合后发送给各个参与终端。从而实现多方与会人的音视频通话。视频会议系统服务端则往往是一个集群堆叠系统,可有多个信令节点和多个媒体节点组成。信令节点则要进行双机热备,从而实现高可用系统。而双机热备方案中最棘手的一个技术问题就是数据库数据同步。行业视频会议系统中,单个系统接入设备数量往往较少,一般比如接入1000个视频会议终端设备,并发100个会议,已经属于规模较大的了。故此类视频会议系统的数据库需求规模非常小。嵌入在服务器上的文件数据库非常合适此类应用场景。而文件数据库的主备同步则没有很好的可以商业化的方案。
相关技术中基于sql语句修改数据库时生成的修改日志进行主备同步。主机上生成修改日志,同步到备机,然后备机上回放修改日志,以便更新备份数据库。
需要主机和备机维护相同的数据库表结构,当系统升级时,数据库表结构也需要一起升级,带来较多的dba维护工作量和升级模块开发复杂度。
增量数据会直接导入备机工作数据库,当断电等异常情况发生时,主备在用数据库均存在同时损坏,无法恢复的风险。
主机与备机之间网络不稳定时,备机数据库的完整性和可用性存在风险。
针对相关技术中基于sql语句修改数据库时生成的修改日志进行主备同步存在异常情况发生时,主备在用数据库均存在同时损坏而无法恢复的风险的问题,尚未提出解决方案。
技术实现要素:
本发明实施例提供了一种基于sqlite数据库的主备同步处理方法及装置,以至少解决相关技术中基于sql语句修改数据库时生成的修改日志进行主备同步存在异常情况发生时,主备在用数据库均存在同时损坏而无法恢复的风险的问题。
根据本发明的一个实施例,提供了一种基于sqlite数据库的主备同步处理方法,包括:
第一节点获取第二节点的正式备份文件数据库中上一次文件修改的时间t1,其中,所述第一节点为备节点,所述第二节点为主节点;
所述第一节点获取所述第一节点的临时文件数据库中上一次文件修改的时间t2;
在所述时间t1与所述时间t2不相等的情况下,所述第一节点将所述第二节点的正式备份文件数据库的文件同步到所述临时文件数据库中;
在所述临时文件数据库的文件满足预定条件的情况下,所述第一节点通过所述临时文件数据库的文件更新所述第一节点的正式备份文件数据库,其中,所述正式备份文件数据库与所述临时文件数据库均为业务服务不使用的数据库。
可选地,在所述临时文件数据库的文件满足预定条件的情况下,所述第一节点通过所述临时文件数据库的文件更新所述第一节点的正式备份文件数据库包括:
所述第一节点对所述临时文件数据库的文件进行完整性检查;
在通过完整性检查的情况下,所述第一节点将所述临时文件数据库的文件替换掉所述第一节点的正式备份文件数据库的文件;
在未通过完整性检查的情况下,所述第一节点删除所述临时文件数据库的文件。
可选地,所述方法还包括:
在所述第二节点异常且所述第一节点切换为主节点的情况下,所述第一节点将所述第一节点的正式备份文件数据库的文件移动到工作数据库中,其中,所述工作数据库为sqlite文件数据库,且业务服务在线使用的数据库。
可选地,所述第一节点将所述第一节点的正式备份文件数据库的文件移动到工作数据库中之后,所述方法还包括:
所述第一节点获取所述工作数据库中上一次文件修改的时间t3以及所述临时文件数据中上一次文件备份的时间t4;
在所述时间t3不等于所述时间t4的情况下,所述第一节点将所述工作数据库的内容备份到所述临时文件数据库中;
在所述临时文件数据库的文件满足所述预定条件的情况下,所述第一节点通过所述临时文件数据库的文件更新所述正式备份文件数据库。
可选地,在所述临时文件数据库的文件满足所述预定条件的情况下,所述第一节点通过所述临时文件数据库的文件更新所述正式备份文件数据库包括:
所述第一节点对所述临时文件数据库的文件进行完整性检查;
在通过完整性检查的情况下,所述第一节点将所述临时文件数据库的文件替换掉所述正式备份文件数据库的文件,并将所述时间t4更新为所述时间t3;
在未通过完整性检查的情况下,所述第一节点删除所述临时文件数据库的文件。
可选地,所述第一节点对所述临时文件数据库的文件进行完整性检查包括:
所述第一节点通过数据库完整性检查接口对所述临时文件数据库的文件进行完整性检查。
根据本发明的另一个实施例,还提供了一种基于sqlite数据库的主备同步处理装置,应用于第一节点,包括:
第一获取模块,用于获取第二节点的正式备份文件数据库中上一次文件修改的时间t1,其中,所述第一节点为备节点,所述第二节点为主节点;
第二获取模块,用于获取所述第一节点的临时文件数据库中上一次文件修改的时间t2;
同步模块,用于在所述时间t1与所述时间t2不相等的情况下,将所述第二节点的正式备份文件数据库的文件同步到所述第一节点的临时文件数据库中;
第一更新模块,用于在所述临时文件数据库的文件满足预定条件的情况下,通过所述临时文件数据库的文件更新所述第一节点的正式备份文件数据库,其中,所述正式备份文件数据库与所述临时文件数据库均为业务服务不使用的数据库。
可选地,所述第一更新模块包括:
检查子模块,用于对所述临时文件数据库的文件进行完整性检查;
替换子模块,用于在通过完整性检查的情况下,将所述临时文件数据库的文件替换掉所述第一节点的正式备份文件数据库的文件;
删除子模块,用于在未通过完整性检查的情况下,删除所述临时文件数据库的文件。
可选地,所述装置还包括:
移动模块,用于在所述第二节点异常且所述第一节点切换为主节点的情况下,将所述第一节点的正式备份文件数据库的文件移动到工作数据库中,其中,所述工作数据库为sqlite文件数据库,且业务服务在线使用的数据库。
可选地,所述装置还包括:
第三获取模块,用于获取所述工作数据库中上一次文件修改的时间t3以及所述临时文件数据中上一次文件备份的时间t4;
备份模块,用于在所述时间t3不等于所述时间t4的情况下,将所述工作数据库的内容备份到所述临时文件数据库中;
第二更新模块,用于在所述临时文件数据库的文件满足所述预定条件的情况下,通过所述临时文件数据库的文件更新所述正式备份文件数据库。
可选地,所述第二更新模块包括:
检查子模块,用于对所述临时文件数据库的文件进行完整性检查;
更新子模块,用于在通过完整性检查的情况下,将所述临时文件数据库的文件替换掉所述正式备份文件数据库的文件,并将所述时间t4更新为所述时间t3;
删除子模块,用于在未通过完整性检查的情况下,删除所述临时文件数据库的文件。
可选地,所述完整性检查子模块,还用于
通过数据库完整性检查接口对所述临时文件数据库的文件进行完整性检查。
根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,第一节点获取第二节点的正式备份文件数据库中上一次文件修改的时间t1,其中,所述第一节点为备节点,所述第二节点为主节点;获取所述第一节点的临时文件数据库中上一次文件修改的时间t2;在所述时间t1与所述时间t2不相等的情况下,将所述第二节点的正式备份文件数据库的文件同步到所述临时文件数据库中;在所述临时文件数据库的文件满足预定条件的情况下,通过所述临时文件数据库的文件更新所述第一节点的正式备份文件数据库,其中,所述正式备份文件数据库与所述临时文件数据库均为业务服务不使用的数据库,可以解决相关技术中基于sql语句修改数据库时生成的修改日志进行主备同步存在异常情况发生时,主备在用数据库均存在同时损坏而无法恢复的风险的问题,针对小型文件数据库,实现双机热备环境下的主备同步,且能应对断电断网等故障恢复,确保数据库完整性和可用性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种基于sqlite数据库的主备同步处理方法的移动终端的硬件结构框图;
图2是根据本发明实施例的一种基于sqlite数据库的主备同步处理方法的流程图;
图3是根据本发明实施例的活跃节点数据库备份的流程图;
图4是根据本发明实施例的热备节点数据库同步的流程图;
图5是根据本发明实施例的基于sqlite数据库的主备同步处理装置的框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种基于sqlite数据库的主备同步处理方法的移动终端的硬件结构框图,如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的报文接收方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端或网络架构的基于sqlite数据库的主备同步处理方法,图2是根据本发明实施例的一种基于sqlite数据库的主备同步处理方法的流程图,如图2所示,该流程包括如下步骤:
步骤s202,第一节点获取第二节点的正式备份文件数据库中上一次文件修改的时间t1,其中,所述第一节点为备节点,所述第二节点为主节点;
步骤s204,所述第一节点获取所述第一节点的临时文件数据库中上一次文件修改的时间t2;
步骤s206,在所述时间t1与所述时间t2不相等的情况下,所述第一节点将所述第二节点的正式备份文件数据库的文件同步到所述临时文件数据库中;
步骤s208,在所述临时文件数据库的文件满足预定条件的情况下,所述第一节点通过所述临时文件数据库的文件更新所述第一节点的正式备份文件数据库,其中,所述正式备份文件数据库与所述临时文件数据库均为业务服务不使用的数据库。
进一步的,所述第一节点对所述临时文件数据库的文件进行完整性检查;在通过完整性检查的情况下,所述第一节点将所述临时文件数据库的文件替换掉所述第一节点的正式备份文件数据库的文件;在未通过完整性检查的情况下,所述第一节点删除所述临时文件数据库的文件。
通过上述步骤s202至s208,可以解决相关技术中基于sql语句修改数据库时生成的修改日志进行主备同步存在异常情况发生时,主备在用数据库均存在同时损坏而无法恢复的风险的问题,针对小型文件数据库,实现双机热备环境下的主备同步,且能应对断电断网等故障恢复,确保数据库完整性和可用性。
备节点(热备节点)获取所述主节点(活跃节点)的正式备份文件数据库中上一次文件修改的时间t1;根据所述时间t1执行以下文件同步步骤:获取临时文件数据库中上一次文件修改的时间t2;在所述时间t1与所述时间t2不相等的情况下,下载所述第二节点的正式备份文件数据库的文件,并将所述第二节点的正式备份文件数据库的文件存储到所述第一节点的临时文件数据库中;对所述临时文件数据库的文件进行完整性检查;在通过完整性检查的情况下,将所述临时文件数据库的文件存储到所述第一节点的正式备份文件数据库中。在所述时间t1与所述时间t2不相等的情况下,在第一预定时间之后重新获取所述第二节点的正式备份文件数据库中上一次文件修改的时间t1,重复执行上述文件同步步骤。
本发明实施例中,在所述第二节点异常且所述第一节点切换为主节点的情况下,所述第一节点将所述第一节点的正式备份文件数据库的文件移动到第一节点的工作数据库中,其中,所述工作数据库为sqlite文件数据库,且业务服务在线使用的数据库。
可选地,所述第一节点将所述第一节点的正式备份文件数据库的文件移动到第一节点的工作数据库中之后,获取所述工作数据库中上一次文件修改的时间t3以及所述临时文件数据中上一次文件备份的时间t4;在所述时间t3不等于所述时间t4的情况下,将所述工作数据库的内容备份到所述临时文件数据库中,sqlite数据库内容的在线备份;第一节点将工作数据库的内容在线备份到临时文件数据库中,备份过程中应用程序持续工作,即无需中断应用程序;在所述临时文件数据库的文件满足所述预定条件的情况下,所述第一节点通过所述临时文件数据库的文件更新所述正式备份文件数据库。
进一步的,所述第一节点对所述临时文件数据库的文件进行完整性检查;在通过完整性检查的情况下,将所述临时文件数据库的文件替换掉所述正式备份文件数据库的文件,并将所述时间t4更新为所述时间t3;在未通过完整性检查的情况下,删除所述临时文件数据库的文件。具体的,通过数据库完整性检查接口对所述临时文件数据库的文件进行完整性检查。
主节点(活跃节点)获取在线备份数据库中上一次文件修改的时间t1,根据所述时间t3执行以下文件备份步骤:在所述时间t3等于上一次文件备份的时间t4的情况下,通过数据库在线备份接口对所述在线备份数据库的文件备份到临时文件数据库中;通过数据库完整性检查接口对所述临时文件数据库的文件进行完整性检查;在通过完整性检查的情况下,将所述时间t4更新为所述时间t3,在未通过完整性检查的情况下,删除所述临时文件数据库的文件。在所述时间t3不等于所述时间t4的情况下,在预定时间之后重新获取所述在线备份数据库中上一次文件修改的时间t3,重复执行上述文件备份步骤。
两个视频会议信令节点组成双机热备时,只有一个节点(如节点1)活跃并对外服务,称为活跃节点,另外一个节点(如节点2)则进入热备状态,称为热备节点。热备节点(如节点2)不对外提供服务,但是需要与活跃节点保持数据库的实时同步。活跃节点(如节点1)故障时,热备节点(如节点2)则会全面接管,并对外提供一样的服务,从而提高视频会议系统的高可用性。两个信令节点地位均等,两个信令节点均可成为活跃节点或热备节点。两个节点之间可搭建网口直连网络,专门用于数据库数据同步。信令节点中web服务可使用如sqlite等文件数据库,用于存储视频会议系统的相关信息。web服务的工作目录如/opt/web。sqlite文件数据库路径如/opt/web/vcs.db。系统中无其他专用的数据库服务器。
下面以工作数据库的路径为/opt/web/vcs.db,正式备份文件数据库的路径为/opt/web/download/vcs.db.hotspare,临时文件数据库为/opt/web/download/vcs.db.hotspare.tmp或/opt/web/download/tmp/vcs.db.hotspare,举例对本发明实施例进行说明。
图3是根据本发明实施例的活跃节点数据库备份的流程图,如图3所示,包括:
步骤s301,设置最后一次备份时间戳backupts(对应时间t3)为零;
步骤s302,获取/opt/web/vcs.db文件最新修改时间戳nowts(对应时间t4);
步骤s303,判断backupts是否等于nowts,若与最后一次备份时间戳backupts不相等,则进入步骤s304;否则跳到步骤s309;
步骤s304,将工作数据库中文件备份到临时文件数据库中,具体的,使用数据库在线备份接口(如sqlite的onlinebackupapi)对/opt/web/vcs.db进行备份,以便不影响服务,将备份文件保存在/opt/web/download/vcs.db.hotspare.tmp;
步骤s305,对临时文件数据库进行完整性检查,具体的,使用数据库完整性检查接口(如sqlite数据库提供的sql语句pragmaquick_check)对/opt/web/download/vcs.db.hotspare.tmp进行完整性检查;
步骤s306,判断临时文件数据库的文件是否完整,在判断结果为是的情况下,执行步骤,否则执行步骤;
步骤s307,删除临时备份数据库的文件,即删除备份文件/opt/web/download/vcs.db.hotspare.tmp;
步骤s308,将临时数据库的文件替换正式备份数据库的文件,并将时间戳backupts更新为时间戳nowts;即若以上步骤检查结果正常,则将文件替换到/opt/web/download/vcs.db.hotspare,并更新最后一次备份时间戳backupts为nowts;
步骤s309,等待预定时间(如1秒)后,继续步骤2。
图4是根据本发明实施例的热备节点数据库同步的流程图,如图4所示,包括:
步骤s401,获取正式备份文件数据库中上一次文件修改的时间t1,具体使用http客户端向活跃节点web服务发起httphead协议,请求获取活跃节点的/opt/web/download/vcs.db.hotspare文件的修改时间戳peerts(对应时间t1);
步骤s402,获取临时文件数据库中上一次文件修改的时间t2,即获取本机文件/opt/web/download/tmp/vcs.db.hotspare的修改时间戳localts(对应时间t2);
步骤s403,判断时间t3是否等于时间t4,在判断结果为否的情况下,执行步骤s404,否则执行步骤s404;
步骤s404,将活跃节点的正式备份数据库的文件下载到热备节点的临时文件数据库中,具体的,若peerts与localts不相等,则使用http客户端向活跃节点web服务发起httpget协议,请求下载文件/opt/web/download/vcs.db.hotspare,并在本机保存在临时文件/opt/web/download/tmp/vcs.db.hotspare;
步骤s405,对临时文件数据库进行完整性检查;
步骤s406,判断临时文件数据库的文件是否完整,在判断结果为是的情况下,执行步骤407,否则执行步骤s408;即下载文件成功之后,则针对/opt/web/download/tmp/vcs.db.hotspare执行数据库完整性检查(如:sqlite提供的pragmaquick_check语句),若完整性检查通过,则将临时文件/opt/web/download/tmp/vcs.db.hotspare复制到正式路径/opt/web/download/vcs.db.hotspare,完成一次数据库同步;其他情况则提示报错;
步骤s407,将临时数据库的文件替换正式备份数据库的文件;
步骤s408,报错提示;
步骤s409,等待预定时间(如1秒、5秒等),回到步骤s401。
为了确保数据库同步过程不影响正常应用服务,可在web服务端或者http客户端进行httpget下载/opt/web/download/vcs.db.hotspare文件时的限速,如下载限速1mb/s。
本发明实施例中,当一个信令节点进入“活跃节点”模式时执行流程如下:
步骤1,停止数据库同步程序;
步骤2,检查同步数据库文件/opt/web/download/vcs.db.hotspare是否存在且大小大于0,是则将/opt/web/download/vcs.db.hotspare复制覆盖到运行时的数据库文件/opt/web/vcs.db;
步骤3,启动应用程序,包括web服务;
步骤4,启动数据库备份程序。
本发明实施例中,当一个信令节点进入“热备节点”模式时,停止应用程序;停止数据库备份程序,启动数据库同步程序,节点升级时数据库处理流程。
只需要针对“活跃节点”升级本地数据库文件/opt/web/vcs.db,包括dbschema升级和数据升级。
将文件数据库进行分库,分为/opt/web/vcs.db和/opt/web/vcs.log.db。第一个vcs.db为运行态数据库,保存系统运行必要数据,保持较小规模。数据库vcs.log.db为日志库,保存操作日志,历史记录等。
本发明实施例中,同步程序和备份程序均只对/opt/web/vcs.db进行处理,从而确保数据库较小规模,提升数据库主备同步速度。
通过本发明实施例,系统断电断网等恶劣条件下,均可确保主备两个节点至少有一个节点的运行时数据库文件的完整性及可用性,从而确保系统的高可用性。无需维护主备两台机器的dbschema变化,无dba管理维护工作量;数据库主备同步复用web服务端口,无需额外开放数据库同步端口,减少网络安全问题。
实施例2
根据本发明的另一个实施例,还提供了一种基于sqlite数据库的主备同步处理装置,应用于第一节点,图5是根据本发明实施例的基于sqlite数据库的主备同步处理装置的框图,如图5所示,包括:
第一获取模块52,用于获取第二节点的正式备份文件数据库中上一次文件修改的时间t1,其中,所述第一节点为备节点,所述第二节点为主节点;
第二获取模块54,用于获取所述第一节点的临时文件数据库中上一次文件修改的时间t2;
同步模块56,用于在所述时间t1与所述时间t2不相等的情况下,将所述第二节点的正式备份文件数据库的文件同步到所述临时文件数据库中;
第一更新模块58,用于在所述临时文件数据库的文件满足预定条件的情况下,通过所述临时文件数据库的文件更新所述第一节点的正式备份文件数据库,其中,所述正式备份文件数据库与所述临时文件数据库均为业务服务不使用的数据库。
可选地,所述第一更新模块58包括:
检查子模块,用于对所述临时文件数据库的文件进行完整性检查;
替换子模块,用于在通过完整性检查的情况下,将所述临时文件数据库的文件替换掉所述第一节点的正式备份文件数据库的文件;
删除子模块,用于在未通过完整性检查的情况下,删除所述临时文件数据库的文件。
可选地,所述装置还包括:
移动模块,用于在所述第二节点异常且所述第一节点切换为主节点的情况下,将所述第一节点的正式备份文件数据库的文件移动到工作数据库中,其中,所述工作数据库为sqlite文件数据库,且业务服务在线使用的数据库。
可选地,所述装置还包括:
第三获取模块,用于获取所述工作数据库中上一次文件修改的时间t3以及所述临时文件数据中上一次文件备份的时间t4;
备份模块,用于在所述时间t3不等于所述时间t4的情况下,将所述工作数据库的内容备份到所述临时文件数据库中;
第二更新模块,用于在所述临时文件数据库的文件满足所述预定条件的情况下,通过所述临时文件数据库的文件更新所述正式备份文件数据库。
可选地,所述第二更新模块包括:
检查子模块,用于对所述临时文件数据库的文件进行完整性检查;
更新子模块,用于在通过完整性检查的情况下,将所述临时文件数据库的文件替换掉所述正式备份文件数据库的文件,并将所述时间t4更新为所述时间t3;
删除子模块,用于在未通过完整性检查的情况下,删除所述临时文件数据库的文件。
可选地,所述完整性检查子模块,还用于
通过数据库完整性检查接口对所述临时文件数据库的文件进行完整性检查。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本发明的实施例还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
s1,获取第二节点的正式备份文件数据库中上一次文件修改的时间t1,其中,所述第一节点为备节点,所述第二节点为主节点;
s2,获取所述第一节点的临时文件数据库中上一次文件修改的时间t2;
s3,在所述时间t1与所述时间t2不相等的情况下,将所述第二节点的正式备份文件数据库的文件同步到所述临时文件数据库中;
s4,在所述临时文件数据库的文件满足预定条件的情况下,通过所述临时文件数据库的文件更新所述第一节点的正式备份文件数据库,其中,所述正式备份文件数据库与所述临时文件数据库均为业务服务不使用的数据库。
可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
实施例4
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
s1,获取第二节点的正式备份文件数据库中上一次文件修改的时间t1,其中,所述第一节点为备节点,所述第二节点为主节点;
s2,获取所述第一节点的临时文件数据库中上一次文件修改的时间t2;
s3,在所述时间t1与所述时间t2不相等的情况下,将所述第二节点的正式备份文件数据库的文件同步到所述临时文件数据库中;
s4,在所述临时文件数据库的文件满足预定条件的情况下,通过所述临时文件数据库的文件更新所述第一节点的正式备份文件数据库,其中,所述正式备份文件数据库与所述临时文件数据库均为业务服务不使用的数据库。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种基于sqlite数据库的主备同步处理方法,其特征在于,包括:
第一节点获取第二节点的正式备份文件数据库中上一次文件修改的时间t1,其中,所述第一节点为备节点,所述第二节点为主节点;
所述第一节点获取所述第一节点的临时文件数据库中上一次文件修改的时间t2;
在所述时间t1与所述时间t2不相等的情况下,所述第一节点将所述第二节点的正式备份文件数据库的文件同步到所述临时文件数据库中;
在所述临时文件数据库的文件满足预定条件的情况下,所述第一节点通过所述临时文件数据库的文件更新所述第一节点的正式备份文件数据库,其中,所述正式备份文件数据库与所述临时文件数据库均为业务服务不使用的数据库。
2.根据权利要求1所述的方法,其特征在于,在所述临时文件数据库的文件满足预定条件的情况下,所述第一节点通过所述临时文件数据库的文件更新所述第一节点的正式备份文件数据库包括:
所述第一节点对所述临时文件数据库的文件进行完整性检查;
在通过完整性检查的情况下,所述第一节点将所述临时文件数据库的文件替换掉所述第一节点的正式备份文件数据库的文件;
在未通过完整性检查的情况下,所述第一节点删除所述临时文件数据库的文件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第二节点异常且所述第一节点切换为主节点的情况下,所述第一节点将所述第一节点的正式备份文件数据库的文件移动到工作数据库中,其中,所述工作数据库为sqlite文件数据库,且业务服务在线使用的数据库。
4.根据权利要求3所述的方法,其特征在于,所述第一节点将所述第一节点的正式备份文件数据库的文件移动到工作数据库中之后,所述方法还包括:
所述第一节点获取所述工作数据库中上一次文件修改的时间t3以及所述临时文件数据中上一次文件备份的时间t4;
在所述时间t3不等于所述时间t4的情况下,所述第一节点将所述工作数据库的内容备份到所述临时文件数据库中;
在所述临时文件数据库的文件满足所述预定条件的情况下,所述第一节点通过所述临时文件数据库的文件更新所述正式备份文件数据库。
5.根据权利要求4所述的方法,其特征在于,在所述临时文件数据库的文件满足所述预定条件的情况下,所述第一节点通过所述临时文件数据库的文件更新所述正式备份文件数据库包括:
所述第一节点对所述临时文件数据库的文件进行完整性检查;
在通过完整性检查的情况下,所述第一节点将所述临时文件数据库的文件替换掉所述正式备份文件数据库的文件,并将所述时间t4更新为所述时间t3;
在未通过完整性检查的情况下,所述第一节点删除所述临时文件数据库的文件。
6.根据权利要求2或5所述的方法,其特征在于,所述第一节点对所述临时文件数据库的文件进行完整性检查包括:
所述第一节点通过数据库完整性检查接口对所述临时文件数据库的文件进行完整性检查。
7.一种基于sqlite数据库的主备同步处理装置,其特征在于,应用于第一节点,包括:
第一获取模块,用于获取第二节点的正式备份文件数据库中上一次文件修改的时间t1,其中,所述第一节点为备节点,所述第二节点为主节点;
第二获取模块,用于获取所述第一节点的临时文件数据库中上一次文件修改的时间t2;
同步模块,用于在所述时间t1与所述时间t2不相等的情况下,将所述第二节点的正式备份文件数据库的文件同步到所述临时文件数据库中;
第一更新模块,用于在所述临时文件数据库的文件满足预定条件的情况下,通过所述临时文件数据库的文件更新所述第一节点的正式备份文件数据库,其中,所述正式备份文件数据库与所述临时文件数据库均为业务服务不使用的数据库。
8.根据权利要求7所述的装置,其特征在于,所述第一更新模块包括:
检查子模块,用于对所述临时文件数据库的文件进行完整性检查;
替换子模块,用于在通过完整性检查的情况下,将所述临时文件数据库的文件替换掉所述第一节点的正式备份文件数据库的文件;
删除子模块,用于在未通过完整性检查的情况下,删除所述临时文件数据库的文件。
9.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至6任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至6任一项中所述的方法。
技术总结