CN111241200A - 基于SQLite数据库的主备同步处理方法及装置 - Google Patents
基于SQLite数据库的主备同步处理方法及装置 Download PDFInfo
- Publication number
- CN111241200A CN111241200A CN202010026319.7A CN202010026319A CN111241200A CN 111241200 A CN111241200 A CN 111241200A CN 202010026319 A CN202010026319 A CN 202010026319A CN 111241200 A CN111241200 A CN 111241200A
- Authority
- CN
- China
- Prior art keywords
- node
- database
- file database
- files
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 16
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000012986 modification Methods 0.000 claims abstract description 45
- 230000004048 modification Effects 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 15
- 230000002159 abnormal effect Effects 0.000 claims abstract description 11
- 238000004590 computer program Methods 0.000 claims description 18
- 230000011664 signaling Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于SQLite数据库的主备同步处理方法及装置,其中,该方法包括:第一节点获取第二节点的正式备份文件数据库中上一次文件修改的时间T1;获取所述第一节点的临时文件数据库中上一次文件修改的时间T2;在该时间T1与该时间T2不相等的情况下,将该第二节点的正式备份文件数据库的文件同步到该临时文件数据库中;在该临时文件数据库的文件满足预定条件的情况下,通过该临时文件数据库的文件更新该第一节点的正式备份文件数据库,可以解决相关技术中基于SQL语句修改数据库时生成的修改日志进行主备同步存在异常情况发生时,主备在用数据库均存在同时损坏而无法恢复的风险的问题,针对小型文件数据库,实现双机热备环境下的主备同步。
Description
技术领域
本发明涉及数据传输领域,具体而言,涉及一种基于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包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为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的Online Backup API)对/opt/web/vcs.db进行备份,以便不影响服务,将备份文件保存在/opt/web/download/vcs.db.hotspare.tmp;
步骤S305,对临时文件数据库进行完整性检查,具体的,使用数据库完整性检查接口(如sqlite数据库提供的SQL语句pragma quick_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服务发起HTTP HEAD协议,请求获取活跃节点的/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提供的pragma quick_check语句),若完整性检查通过,则将临时文件/opt/web/download/tmp/vcs.db.hotspare复制到正式路径/opt/web/download/vcs.db.hotspare,完成一次数据库同步;其他情况则提示报错;
步骤S407,将临时数据库的文件替换正式备份数据库的文件;
步骤S408,报错提示;
步骤S409,等待预定时间(如1秒、5秒等),回到步骤S401。
为了确保数据库同步过程不影响正常应用服务,可在web服务端或者HTTP客户端进行HTTP GET下载/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,包括db schema升级和数据升级。
将文件数据库进行分库,分为/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-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
实施例4
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取第二节点的正式备份文件数据库中上一次文件修改的时间T1,其中,所述第一节点为备节点,所述第二节点为主节点;
S2,获取所述第一节点的临时文件数据库中上一次文件修改的时间T2;
S3,在所述时间T1与所述时间T2不相等的情况下,将所述第二节点的正式备份文件数据库的文件同步到所述临时文件数据库中;
S4,在所述临时文件数据库的文件满足预定条件的情况下,通过所述临时文件数据库的文件更新所述第一节点的正式备份文件数据库,其中,所述正式备份文件数据库与所述临时文件数据库均为业务服务不使用的数据库。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
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任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010026319.7A CN111241200B (zh) | 2020-01-10 | 2020-01-10 | 基于SQLite数据库的主备同步处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010026319.7A CN111241200B (zh) | 2020-01-10 | 2020-01-10 | 基于SQLite数据库的主备同步处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111241200A true CN111241200A (zh) | 2020-06-05 |
CN111241200B CN111241200B (zh) | 2024-02-20 |
Family
ID=70870886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010026319.7A Active CN111241200B (zh) | 2020-01-10 | 2020-01-10 | 基于SQLite数据库的主备同步处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111241200B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199329A (zh) * | 2020-09-24 | 2021-01-08 | 上海上讯信息技术股份有限公司 | 基于堡垒机的双机运维数据归档清理方法与设备 |
CN114722125A (zh) * | 2022-04-11 | 2022-07-08 | 京东科技信息技术有限公司 | 数据库事务处理的方法、装置、设备和计算机可读介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677887A (zh) * | 2005-02-01 | 2005-10-05 | 北京北方烽火科技有限公司 | N+1备份的数据实时同步方法 |
CN101447858A (zh) * | 2008-01-17 | 2009-06-03 | 中兴通讯股份有限公司 | 双机热备份***中实现虚拟路由冗余协议同步倒换的方法 |
CN104281506A (zh) * | 2014-07-10 | 2015-01-14 | 中国科学院计算技术研究所 | 一种文件***的数据维护方法及*** |
CN104486131A (zh) * | 2014-12-29 | 2015-04-01 | 浪潮电子信息产业股份有限公司 | 一种基于安腾平台的db2数据库的故障检测和切换方法 |
CN105224637A (zh) * | 2015-09-24 | 2016-01-06 | 珠海许继芝电网自动化有限公司 | 一种基于PostgreSQL数据库的主备/集群应用的综合性方法 |
CN106815275A (zh) * | 2015-12-02 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 一种通过备用数据库实现主备数据库同步的方法与设备 |
US20190102405A1 (en) * | 2017-09-29 | 2019-04-04 | Ca, Inc. | File synchronization to support high availability of monolithic software applications |
-
2020
- 2020-01-10 CN CN202010026319.7A patent/CN111241200B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677887A (zh) * | 2005-02-01 | 2005-10-05 | 北京北方烽火科技有限公司 | N+1备份的数据实时同步方法 |
CN101447858A (zh) * | 2008-01-17 | 2009-06-03 | 中兴通讯股份有限公司 | 双机热备份***中实现虚拟路由冗余协议同步倒换的方法 |
CN104281506A (zh) * | 2014-07-10 | 2015-01-14 | 中国科学院计算技术研究所 | 一种文件***的数据维护方法及*** |
CN104486131A (zh) * | 2014-12-29 | 2015-04-01 | 浪潮电子信息产业股份有限公司 | 一种基于安腾平台的db2数据库的故障检测和切换方法 |
CN105224637A (zh) * | 2015-09-24 | 2016-01-06 | 珠海许继芝电网自动化有限公司 | 一种基于PostgreSQL数据库的主备/集群应用的综合性方法 |
CN106815275A (zh) * | 2015-12-02 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 一种通过备用数据库实现主备数据库同步的方法与设备 |
US20190102405A1 (en) * | 2017-09-29 | 2019-04-04 | Ca, Inc. | File synchronization to support high availability of monolithic software applications |
Non-Patent Citations (3)
Title |
---|
张羽;贺耀宜;王勇;陈小林;高文;: "煤矿安全监控***文件同步组件的设计" * |
张羽;贺耀宜;王勇;陈小林;高文;: "煤矿安全监控***文件同步组件的设计", 工矿自动化, no. 3, 31 March 2012 (2012-03-31), pages 8 - 9 * |
钟宇;: "煤矿企业纯软件方式的双机热备***研究", 工矿自动化, no. 08, 10 August 2012 (2012-08-10) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199329A (zh) * | 2020-09-24 | 2021-01-08 | 上海上讯信息技术股份有限公司 | 基于堡垒机的双机运维数据归档清理方法与设备 |
CN112199329B (zh) * | 2020-09-24 | 2023-08-18 | 上海上讯信息技术股份有限公司 | 基于堡垒机的双机运维数据归档清理方法与设备 |
CN114722125A (zh) * | 2022-04-11 | 2022-07-08 | 京东科技信息技术有限公司 | 数据库事务处理的方法、装置、设备和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111241200B (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107295080B (zh) | 应用于分布式服务器集群的数据存储方法和服务器 | |
CN110389900B (zh) | 一种分布式数据库集群测试方法、装置及存储介质 | |
CN111090699A (zh) | 业务数据的同步方法和装置、存储介质、电子装置 | |
WO2020248375A1 (zh) | 数据库间数据同步方法、***、计算机设备及存储介质 | |
CN111241200B (zh) | 基于SQLite数据库的主备同步处理方法及装置 | |
WO2024120227A1 (zh) | 容器数据保护***、方法、装置、设备及可读存储介质 | |
EP3713195B1 (en) | Log processing method, related device, and system | |
US20060282831A1 (en) | Method and hardware node for customized upgrade control | |
CN115658390A (zh) | 容器容灾方法、***、装置、设备及计算机可读存储介质 | |
CN112000444B (zh) | 数据库事务处理方法、装置、存储介质和电子设备 | |
CN111460029A (zh) | 数据同步方法和装置 | |
CN112905676A (zh) | 一种数据文件的导入方法及装置 | |
CN110851527A (zh) | 一种主备服务器的数据同步方法 | |
CN116346834A (zh) | 一种会话同步方法、装置、计算设备及计算机存储介质 | |
CN115102862A (zh) | 一种用于sdn设备的自动同步方法及装置 | |
CN112650815B (zh) | 环境数据的同步方法及装置、存储介质及电子装置 | |
US20240028611A1 (en) | Granular Replica Healing for Distributed Databases | |
CN113890817A (zh) | 一种通信优化方法和装置 | |
CN114185691A (zh) | 一种基于Sidecar的UDP组播方法和*** | |
CN115248746A (zh) | 数据备份方法、***及相关设备 | |
US7644306B2 (en) | Method and system for synchronous operation of an application by a purality of processing units | |
CN112883103A (zh) | 集群间数据转移的方法和装置 | |
CN116414915A (zh) | 分布式数据库集群的管控方法、装置和数据库管控平台 | |
CN113890875B (zh) | 任务分配方法及装置 | |
CN112564953B (zh) | 一种对局远端设备管理的方法和装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |