CN102945195B - 一种基于SQLite数据库的主备冗余复制方法 - Google Patents
一种基于SQLite数据库的主备冗余复制方法 Download PDFInfo
- Publication number
- CN102945195B CN102945195B CN201210486368.4A CN201210486368A CN102945195B CN 102945195 B CN102945195 B CN 102945195B CN 201210486368 A CN201210486368 A CN 201210486368A CN 102945195 B CN102945195 B CN 102945195B
- Authority
- CN
- China
- Prior art keywords
- database
- sqlite
- service processes
- master
- data
- 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.)
- Active
Links
Abstract
本发明涉及一种基于SQLite数据库的主备冗余复制方法,其方法为:在SQLite数据库之上封装一个数据库管理服务进程,负责监视SQLite数据库状态及接收应用层发送的数据库操作请求;在SQLite服务中封装SQLite数据库同步功能,实现SQLite数据库的主备冗余复制;主备数据库可根据各个数据库状态自动切换,只有主数据库上的服务进程接收应用的数据库修改请求,并向备库同步;服务进程同时负责监视SQLite状态,并提供SQLite数据文件转储功能,用以处理故障后的数据库恢复,通过比较各个数据库上SQLite数据文件差异,转储不一致部分到对应的服务器上,在数据库层面保证数据的一致性。本发明在SQLite的基础上实现了数据库主备冗余功能,保证各个数据库数据的一致性,确保在线系统数据的稳定性和可靠性。
Description
技术领域
本发明属于计算机技术领域,尤指一种基于SQLite数据库的主备冗余复制方法。
背景技术
对在线系统来说,保持系统数据的可靠性和安全性变得越来越重要,数据库服务层需要提供完整的灾备及故障处理能力。一主多备的数据库架构可以有效的满足这一需求,是提供完整、准确、可靠的基础数据的关键技术之一。
主备冗余复制是指在运行的数据库系统中,将主数据库的修改反映到备用数据库中,以保证主备数据库的数据一致性。由于SQLite数据库自身的特点,其数据库的服务器和客户端运行在同一个进程中,因此SQLite数据库不能通过网络进行访问。而数据库的主备冗余机制要求各个数据库部署在系统中不同的服务器上,通过统一的管理来屏蔽多数据库多主机对应用程序的影响,所以按照现有的SQLite数据库模式,缺乏有效的方法来实现基于SQLite的主备冗余机制。
发明内容
本发明所要解决的技术问题是提供一种基于SQLite数据库的主备冗余复制方法,主备冗余复制的机制在最大程度上既满足了系统对数据库冗余备份的需求,也保证了多数据库库模式下的数据一致性和安全性,在使用SQLite作为关系数据库的系统中实现了可靠的主备冗余机制。
为解决以上问题,本发明提供一种基于SQLite数据库的主备冗余复制方法,包括以下步骤:
(1)在SQLite服务器上驻留一个SQLite服务进程,负责监视数据库状态及从网络接收应用层发送的数据库修改请求,用于实现SQLite数据库的网络访问;
(2)部署多个SQLite服务器及各自的SQLite服务进程,并且SQLite服务进程之间保持通信,形成系统中数据库一主多备的冗余机制;
(3)仅主数据库上的SQLite服务进程接收应用的数据库修改请求,成功修改的请求将会通过复制队列顺序发送到备数据库的SQLite服务进程并执行,以保证各个数据库的数据一致性;若数据库修改请求在主数据库上执行失败,则主数据库上的SQLite服务进程将错误信息返回到应用端;
(4)所述SQLite服务进程提供数据文件增量转储操作,可比较各个数据库上SQLite数据文件差异,快速转储不一致部分到对应的服务器上,在数据库层面上保证数据的一致性;
(5)部署检测SQLite服务状态的进程,可重新拉起挂起的服务进程并及时切换主备数据库。
本发明的工作原理为:
系统中部署多台SQLite服务器,用以提供基本的数据库功能。同时每台SQLite服务器上部署一个SQLite服务进程,负责监视SQLite数据库的状态,比如数据文件是否损坏、SQL查询是否可以执行、数据文件是否可以写入等。这些服务进程可以从网络接收数据库的修改请求,并在其对应的SQLite数据库上执行,通过这样的方式实现SQLite的网络访问功能,并且形成数据库的主备冗余机制。
应用程序需要修改数据库时,主数据库上的服务进程负责接收其请求,随后对请求的合法性和有效性进行检查。若检查通过,服务进程将请求在数据库上执行,检查执行结果。上面两个检查结果若有错误,服务进程将把错误信息返回给应用程序。若执行无误,服务进程将该请求加入其自身维护的请求队列,由发送线程顺序发往所有备数据库上的SQLite服务进程。备库的服务进程收到请求后会将之在本机上的SQLite中执行。通过这样的流程既保证了应用程序对数据库修改请求的合法性,同时也确保主备数据库之间的数据一致性。在此机制下,当主数据库发生故障时备库可以立刻升为主库,为在线系统提供可靠的灾备和故障处理能力。
同时当备库升为主库或发现本机SQLite数据文件异常时,服务进程可以从其他服务器转储数据文件到本地,这一转储功能也可配置成定时进行。为了防止SQLite服务进程的异常而影响数据库访问,系统中部署了具有检测SQLite服务状态功能的进程,不断监测服务进程的状态,包括进程是否存在、进程端口是否正常等,并可以重新拉起挂起的服务进程并及时切换主备机。
本发明可以对各台服务器上的SQLite数据库状态进行监视,对数据库故障有及时的反应和处理;数据库服务器可扩充,以适应不同的应用需要;数据库修改请求需经过合法性检查再到主库上修改,保证应用程序对数据库的安全修改;并对主库合法且成功的修改会被顺序发送到备库上,保证系统中所有数据库的数据一致性。系统中SQLite数据文件出现异常时或当数据库主机发生切换时,服务进程可以按照优先级从其他服务器完全转储数据文件到本机,保证各个数据库服务器的正常工作;同时数据文件转储功能可配置成周期性模式,降低数据库故障风险;对SQLite服务进程本身的异常有相应的处理方式,提高这一复制机制的可靠性;主备冗余复制的机制在最大程度上既满足了系统对数据库冗余备份的需求,也保证了多数据库库模式下的数据一致性和安全性,在使用SQLite作为关系数据库的系统中实现了可靠的主备冗余机制。
附图说明
图1为本发明的一种基于SQLite数据库的主备冗余复制方法流程图。
图2为本发明的一种基于SQLite数据库的主备冗余复制方法的系统结构图。
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
如图2所示,本发明一种基于SQLite数据库的主备冗余复制方法,其系统中部署多台数据库服务机器,配置成一主多备模式,每台服务器上均有SQLite数据库和其对应的SQLite服务进程,主备机器是可配置可扩充的。主数据库上的数据库服务接收来自应用的数据库修改请求,备库的SQLite服务接收来自主库服务的请求,主备库上的SQLite服务进程通过配置文件了解各自状态。在SQLite的基础上实现了数据库主备冗余功能,保证各个数据库数据的一致性,确保在线系统数据的稳定性和可靠性。
应用程序修改数据库通过调用数据库服务提供的客户端来完成。客户端负责将应用的请求发送到SQLite服务主机上,同时在发生主备数据库服务切换时更新主服务信息。
如图1所示,本发明的一种基于SQLite数据库的主备冗余复制方法,其一次完整的数据库的修改:当主库的SQLite服务接收到修改请求后,首先对请求进行检查,只有合法且有效的请求才会进入下一步处理,未通过的请求将会被返回给应用程序并包含对应的错误信息。
合法的请求将在主库上被执行,SQLite服务程序收集执行的结果。如有错误及异常,请求将同样被返回给应用程序并包含对应的错误信息;如执行无误,请求会被打上时间戳并加到复制队列中,同时返回执行成功信息给应用程序。队列中的请求由单独线程顺序发送到备库SQLite服务进程上,备库服务进程接收到复制请求后,直接在本机的SQLite上执行。
同时本发明亦提供了SQLite主备机数据文件的完全转储功能,即比较源文件和目标文件的差异,只传输文件不一致的部分,从而降低网络资源占用并减少传输时间。这一功能可按照不同的需要进行配置,按照配置的触发条件进行转储,包括数据库主机发生切换、数据文件损坏以及周期自动方式等。
监视进程对SQLite服务进程运行状态时刻监视,检查服务进程是否存在、端口是否正常等,并可以重新拉起停止的服务进程、杀死并重启异常的服务进程以及切换主备数据库。
本发明在SQLite数据库之上封装一个数据库管理服务进程,负责监视SQLite数据库状态及接收应用层发送的数据库操作请求,通过此种方式实现SQLite数据库的网络访问;在SQLite服务中封装SQLite数据库同步功能,实现SQLite数据库的主备冗余复制;主备数据库可根据各个数据库状态自动切换,只有主数据库上的服务进程接收应用的数据库修改请求,并向备库同步,以保证各个数据库的数据一致性;服务进程同时负责监视SQLite状态,主库如有异常,可将优先级高的备库升级为主库,原主库则变为故障或备库状态;服务进程提供SQLite数据文件转储功能,用以处理故障后的数据库恢复,通过比较各个数据库上SQLite数据文件差异,转储不一致部分到对应的服务器上,在数据库层面保证数据的一致性。
基于上述,本发明可以对各台服务器上的SQLite数据库状态进行监视,对数据库故障有及时的反应和处理;数据库服务器可扩充,以适应不同的应用需要;数据库修改请求需经过合法性检查再到主库上修改,保证应用程序对数据库的安全修改;对主库合法且成功的修改会被顺序发送到备库上,保证系统中所有数据库的数据一致性。
并且,系统中SQLite数据文件出现异常时或当数据库主机发生切换时,服务进程可以按照优先级从其他服务器完全转储数据文件到本机,保证各个数据库服务器的正常工作;同时数据文件转储功能可配置成周期性模式,降低数据库故障风险;对SQLite服务进程本身的异常有相应的处理方式,提高这一复制机制的可靠性。
主备冗余复制的机制在最大程度上既满足了系统对数据库冗余备份的需求,实现了数据库主备冗余功能,也保证了多数据库库模式下的数据一致性和安全性,确保在线系统数据的稳定性和可靠性,在使用SQLite作为关系数据库的系统中实现了可靠的主备冗余机制。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (2)
1.一种基于SQLite数据库的主备冗余复制方法,包括以下步骤:
(1)在SQLite服务器上驻留一个SQLite服务进程,负责监视数据库状态及从网络接收应用层发送的数据库修改请求,用于实现SQLite数据库的网络访问;
(2)部署多个SQLite服务器及各自的SQLite服务进程,并且SQLite服务进程之间保持通信,形成系统中数据库一主多备的冗余机制;
(3)仅主数据库上的SQLite服务进程接收应用的数据库修改请求,成功修改的请求将会通过复制队列顺序发送到备数据库的SQLite服务进程并执行,以保证各个数据库的数据一致性;若数据库修改请求在主数据库上执行失败,则主数据库上的SQLite服务进程将错误信息返回到应用端;
(4)所述SQLite服务进程提供数据文件增量转储操作,比较各个数据库上SQLite数据文件差异,快速转储不一致部分到对应的SQLite服务器上,在数据库层面上保证数据的一致性;
(5)部署检测SQLite服务状态的进程,重新拉起挂起的服务进程并及时切换主备数据库;
在所述步骤(3)中,主数据库服务器上的SQLite服务进程负责接收应用层的数据库修改请求,在本机数据库上执行成功后,服务进程将该请求发送到所有备数据库的服务进程,然后在备数据库上执行修改;
所述数据文件增量转储操作配置成不同的触发条件,其包括数据库主机发生切换、数据文件损坏以及周期自动方式;
在所述步骤(5)中,SQLite服务进程状态会由另一服务进程监视,所述另一服务进程监视负责处理服务进程的各项异常状况,在SQLite服务进程故障的情况下切换主备数据库;
所述另一服务进程监视SQLite服务进程状态时,主备数据库如有异常,将优先级高的备数据库升级为新主备数据库,原主库则变为故障或备库状态。
2.根据权利要求1所述的一种基于SQLite数据库的主备冗余复制方法,其特征在于:在所述步骤(1)中,SQLite服务进程对SQLite数据库保持连接并监视其状态,同时从网络接收应用发送的数据库修改请求,以解决SQLite网络访问需求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210486368.4A CN102945195B (zh) | 2012-11-26 | 2012-11-26 | 一种基于SQLite数据库的主备冗余复制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210486368.4A CN102945195B (zh) | 2012-11-26 | 2012-11-26 | 一种基于SQLite数据库的主备冗余复制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102945195A CN102945195A (zh) | 2013-02-27 |
CN102945195B true CN102945195B (zh) | 2015-11-18 |
Family
ID=47728143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210486368.4A Active CN102945195B (zh) | 2012-11-26 | 2012-11-26 | 一种基于SQLite数据库的主备冗余复制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102945195B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111937A (zh) * | 2013-04-18 | 2014-10-22 | 中兴通讯股份有限公司 | 主、备数据库及其数据一致性检测、修复方法和装置 |
CN103414582B (zh) * | 2013-07-26 | 2016-09-28 | 北京星网锐捷网络技术有限公司 | 主备用进程间的同步方法、装置及网络设备 |
CN103559104B (zh) * | 2013-11-07 | 2016-06-22 | 南京国电南自轨道交通工程有限公司 | 一种基于混合通信的分布式冗余实时数据库框架 |
CN104537046B (zh) * | 2014-12-24 | 2018-09-11 | 北京奇虎科技有限公司 | 数据补全方法和装置 |
CN105989123A (zh) * | 2015-02-13 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、装置和系统 |
CN106155837B (zh) * | 2015-04-20 | 2019-12-06 | 阿里巴巴集团控股有限公司 | 一种主备库数据修复的方法以及装置 |
CN106202075B (zh) * | 2015-04-29 | 2021-02-19 | 中兴通讯股份有限公司 | 一种数据库主备切换的方法及装置 |
CN105045678B (zh) * | 2015-07-09 | 2018-10-26 | 小米科技有限责任公司 | 数据库恢复方法及装置 |
CN105224361B (zh) * | 2015-09-15 | 2018-05-25 | 华讯方舟科技有限公司 | 一种对sqlite3型嵌入式数据库进行升级的方法及系统 |
CN105491106A (zh) * | 2015-11-18 | 2016-04-13 | 中国石油天然气集团公司 | 一种石油测井主从数据库系统实时同步系统和方法 |
CN106909568A (zh) * | 2015-12-23 | 2017-06-30 | 北京奇虎科技有限公司 | 一种数据库集群主数据库的切换方法及装置 |
CN106649577B (zh) * | 2016-11-17 | 2020-02-07 | 杭州沃趣科技股份有限公司 | 一种检测Oracle数据库同步软件运行状态的方法 |
CN107066480B (zh) * | 2016-12-20 | 2020-08-11 | 创新先进技术有限公司 | 主备数据库的管理方法、系统及其设备 |
CN106598748B (zh) * | 2016-12-22 | 2019-11-08 | 深圳市科脉技术股份有限公司 | 避免sqlite数据库并发访问时产生文件死锁的方法 |
CN107193635A (zh) * | 2017-05-24 | 2017-09-22 | 珠海金山网络游戏科技有限公司 | 一种实现虚拟化内容库的方法、装置及系统 |
CN107402850B (zh) * | 2017-07-31 | 2021-02-09 | 苏州浪潮智能科技有限公司 | 一种数据库数据文件的冗余方法与装置 |
CN109189599B (zh) * | 2018-08-08 | 2021-11-05 | 新智能源系统控制有限责任公司 | 一种提高scada系统实时数据转储稳定性的方法和装置 |
CN109547532A (zh) * | 2018-10-25 | 2019-03-29 | 交控科技股份有限公司 | 一种多服务器冗余系统中各服务器间的数据同步方法 |
CN110474797B (zh) * | 2019-07-25 | 2022-07-26 | 北京旷视科技有限公司 | Api业务系统、主备切换的方法及装置 |
CN112199329B (zh) * | 2020-09-24 | 2023-08-18 | 上海上讯信息技术股份有限公司 | 基于堡垒机的双机运维数据归档清理方法与设备 |
CN112306748B (zh) * | 2020-10-21 | 2024-02-13 | 深圳万兴软件有限公司 | 数据恢复方法、设备及存储介质 |
CN112650807A (zh) * | 2021-01-04 | 2021-04-13 | 成都知道创宇信息技术有限公司 | 数据存储管理方法、装置、电子设备和可读存储介质 |
CN115759729A (zh) * | 2021-11-12 | 2023-03-07 | 江西省国土空间调查规划研究院 | 一种基于算法的灾害风险预警管理系统以及预测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101365044A (zh) * | 2007-08-08 | 2009-02-11 | 青岛海信电器股份有限公司 | 用于多媒体设备的节目信息存储和管理方法及多媒体设备 |
CN102254031A (zh) * | 2011-08-03 | 2011-11-23 | 无锡浙潮科技有限公司 | 基于批处理请求的Microsoft SQL Server数据库集群 |
CN202443466U (zh) * | 2012-02-15 | 2012-09-19 | 南京上科机电工业有限公司 | 一种多用户sqlite数据库管理系统 |
CN102750204A (zh) * | 2012-06-07 | 2012-10-24 | 深圳市万兴软件有限公司 | 一种恢复数据的方法、装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070255675A1 (en) * | 2006-04-26 | 2007-11-01 | Jacquelyn Fuzell-Casey | Auto-updating, web-accessible database to facilitate networking and resource management |
-
2012
- 2012-11-26 CN CN201210486368.4A patent/CN102945195B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101365044A (zh) * | 2007-08-08 | 2009-02-11 | 青岛海信电器股份有限公司 | 用于多媒体设备的节目信息存储和管理方法及多媒体设备 |
CN102254031A (zh) * | 2011-08-03 | 2011-11-23 | 无锡浙潮科技有限公司 | 基于批处理请求的Microsoft SQL Server数据库集群 |
CN202443466U (zh) * | 2012-02-15 | 2012-09-19 | 南京上科机电工业有限公司 | 一种多用户sqlite数据库管理系统 |
CN102750204A (zh) * | 2012-06-07 | 2012-10-24 | 深圳市万兴软件有限公司 | 一种恢复数据的方法、装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102945195A (zh) | 2013-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102945195B (zh) | 一种基于SQLite数据库的主备冗余复制方法 | |
Botelho et al. | On the design of practical fault-tolerant SDN controllers | |
CN103199972B (zh) | 基于soa、rs485总线实现的双机热备份切换方法及热备份系统 | |
EP2718816B1 (en) | Recovery service location for a service | |
EP3118743B1 (en) | Fault tolerance and failover using active copy-cat | |
CN101876924B (zh) | 数据库故障自动检测及转移方法 | |
EP3121722B1 (en) | Match server for a financial exchange having fault tolerant operation | |
CN107480014B (zh) | 一种高可用设备切换方法及装置 | |
CN109656742B (zh) | 一种节点异常处理方法、装置及存储介质 | |
CN104506357A (zh) | 一种高可用集群节点管理方法 | |
EP3037969A1 (en) | Match server for a financial exchange having fault tolerant operation | |
CN104408071A (zh) | 一种基于集群管理器的分布式数据库高可用方法及系统 | |
CN103226483B (zh) | 基于soa、云存储实现的双机热备份系统及其方法 | |
CN104503782A (zh) | 一种就地化继电保护装置远程软件升级的方法 | |
CN112181660A (zh) | 一种基于服务器集群的高可用方法 | |
CN110895488B (zh) | 任务调度方法及装置 | |
CN103618788A (zh) | 一种支持b/s结构系统高可用的方法 | |
CN113360579A (zh) | 数据库高可用处理方法、装置、电子设备及存储介质 | |
CN105491106A (zh) | 一种石油测井主从数据库系统实时同步系统和方法 | |
CN101442437B (zh) | 一种实现高可用性的方法、系统及设备 | |
CN113961397A (zh) | 一种基于备份容灾系统的高可用集群容灾方法 | |
CN103870349A (zh) | 用于数据处理系统的配置管理装置及方法 | |
WO2015188619A1 (zh) | 物理主机故障检测方法、装置及虚机管理方法、系统 | |
CN105391790A (zh) | 类RAC One Node的数据库高可用方法 | |
CN103716186B (zh) | 具有网络故障容错能力的人工话务系统及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |