一种基于SQLite数据库的主备冗余复制方法技术

技术编号:8366732 阅读:767 留言:0更新日期:2013-02-28 05:04
本发明专利技术涉及一种基于SQLite数据库的主备冗余复制方法,其方法为:在SQLite数据库之上封装一个数据库管理服务进程,负责监视SQLite数据库状态及接收应用层发送的数据库操作请求;在SQLite服务中封装SQLite数据库同步功能,实现SQLite数据库的主备冗余复制;主备数据库可根据各个数据库状态自动切换,只有主数据库上的服务进程接收应用的数据库修改请求,并向备库同步;服务进程同时负责监视SQLite状态,并提供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作为关系数据库的系统中实现了可靠的主备冗余机制。附图说明图I为本专利技术的流程图。图2为本专利技术的的系统结构图。具体实施例方式为使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本专利技术。如图2所示,本专利技术,其系统中部署多台数据库服务机器,配置成一主多备模式,每台服务器上均有SQLite数据库和其对应的SQLite服务进程,主备机器是可配置可扩充的。主数据库上的数据库服务接收来自应用的数据库修改请求,备库的SQLite服务接收来自主库服务的请求,主备库上的SQLite服务进程通过配置文件了解各自状态。在SQLite的基础上实现了数据库主备冗余功能,保证各个数据库数据的一致性,确保在线系统数据的稳定性和可靠性。应用程序修改数据库通过调用数据库服务提供的客户端来完成。客户端负责将应用的请求发送到SQLite服务主机上,同时在发生主备数据库服务切换时更新主服务信息。如图I所示,本专利技术的,其一次完整的数据库的修改当主库的SQLite服务接收到修改请求后,首先对请求进行检查,只有合法且有效的请求才会进入下一步处理,未通过的请求将会被返回给应用程序并包含对应的错误信息。合法的请求将在主库上被执行,SQLite服务程序收集执行的结果。如有错误及异常,请求将同样被返回给应用程序并包含对应的错误信息;如执行无误,请求会被打上时间戳并加到复制队列中,同时返回执行成功信息给应用程序。队列中的请求由单独线程顺序发送到备库SQLite服务进程上,备库服务进程接收到复制请求后,直接在本机的SQLite上执行。 同时本专利技术亦提供了 SQLite主备机数据文件的完全转储功能,S卩比较源文件和目标文件的差异,只传输文件不一致的部分,从而降低网络资源占用并减少传输时间。这一功能可按照不同的需要进行配置,按照配置的触发条件进行转储,包括数据库主机发生切换、数据文件损坏以及周期自动方式等。监视进程对SQLite服务进程运行状态时刻监视,检查服务进程是否存在、端口是否正常等,并可以重新拉起停止的服务进程、杀死并重启异常的服务进程以及切换主备数据库。本专利技术在SQLite数据库之上封装一个数据库管理服务进程,负责监视SQLite数据库状态及接收应用层发送的数据库操作请求,通过此种方式实现SQLite数据库的网络访问;在SQLite服务中封装SQLite数据库同步功能,实现SQLite数据库的主备冗余复制;主备数据库可根据各个数据库状态自动切换,只有主数据库上的服务进程接收应用的数据库修改请求,并向备库同步,以保证各个数据库的数据一致性;服务进程同时负责监视SQLit本文档来自技高网...

【技术保护点】
一种基于SQLite数据库的主备冗余复制方法,包括以下步骤:(1)在SQLite服务器上驻留一个SQLite服务进程,负责监视数据库状态及从网络接收应用层发送的数据库修改请求,用于实现SQLite数据库的网络访问;(2)部署多个SQLite服务器及各自的SQLite服务进程,并且SQLite服务进程之间保持通信,形成系统中数据库一主多备的冗余机制;(3)仅主数据库上的SQLite服务进程接收应用的数据库修改请求,成功修改的请求将会通过复制队列顺序发送到备数据库的SQLite服务进程并执行,以保证各个数据库的数据一致性;若数据库修改请求在主数据库上执行失败,则主数据库上的SQLite服务进程将错误信息返回到应用端;(4)所述SQLite服务进程提供数据文件增量转储操作,可比较各个数据库上SQLite数据文件差异,快速转储不一致部分到对应的SQLite服务器上,在数据库层面上保证数据的一致性;(5)部署检测SQLite服务状态的进程,可重新拉起挂起的服务进程并及时切换主备数据库。

【技术特征摘要】

【专利技术属性】
技术研发人员:史浩秋季学纯李昊王玉军
申请(专利权)人:国电南瑞科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1