一种内存数据库主备同步方法及系统技术方案

技术编号:4274934 阅读:325 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种内存数据库主备同步方法,包括以下步骤:建立主数据库端和客户端之间的主备关系;接收客户端复制主数据库中LOG信息请求;将所述主数据库端中LOG信息发送到所述客户端。本发明专利技术提供一种内存数据库主备同步方法及系统,用于在复制过程中一次不会交互太多的数据,使复制过程不影响主数据库端应用程序的性能。

【技术实现步骤摘要】

本专利技术涉及数据库领域,特别是涉及一种内存数据库主备同步方法及系统
技术介绍
内存数据库是近年出现的一种新型数据库,随着计算机内存的价格大幅度降低, 把数据放在内存中以提高整个系统的处理能力变得可行。在通讯行业,随着3G时代的到来,迅速实时处理数据成为普遍的需求,系统的安 全、稳定、大容量、高的吞吐量及快速的响应能力是对内存数据库的基本要求。数据库系统 的安全通常是采用复制的方式实现,当主数据库出现问题时,备用数据库能够自动接管并 迅速提供服务。但使用内存数据库后,在系统复制备份方面也提出了新的挑战。因为主数据库 (Master)要求很高的数据吞吐量,常常优化其并发处理能力,在实际系统中,要求采用多个 应用进程进行处理。但在客户端(Client),其处理一定是串行的,因为Client必须按照序列号LSN产 生的顺序重新做数据库操作。这样导致客户端无法跟上Master端的情况发生。不仅如此, 还可能导致大量数据包聚集在Master的TCP缓冲区中,甚至导致应用程序阻塞在发送命令 处,最终影响系统稳定性和应用程序性能。目前,不论是商用的内存数据库还是自行研发的内存数据库,都是采用传统数据 库的复制方式。内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计 了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处 理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上。内存数据库的最大特 点是其“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交 道。显然,这要求较大的内存量,但并非任何时刻整个数据库都存放在内存,即内存数据库 系统还是要处理I/O。尽管内存数据库已不是传统磁盘数据库的概念,但是内存数据库本质 上还是数据库,也具有一般数据库的基本功能完成各种数据操作,如查询处理、存取、完整 性检查;对存取的控制和安全性检验;永久数据的管理,包括数据库的定义、存储、维护等。在内存数据库的复制方面,一般采用传统数据库的复制方式,即每个需要复制的 Client向Master端登记。随着Master端应用程序不断产生数据变化,其操作记录以LOG 信息的方式由TCP/IP协议发送到每个Client,Client根据LOG信息重新执行LOG信息中 记录的操作,从而保证Client的数据和Master端的数据一致。这样在Master端出现问题 时,客户端能够接管继续为应用程序提供服务。在传统的数据库复制系统中,主数据库侦测到自身的变化,主动把变化的LOG信 息发送到各个注册的客户端。因为LOG文件和数据库主要都放在磁盘上,当大量的数据写 入数据库中时,主数据库端和客户端都无法及时把所有的数据写入到磁盘中,使得应用程 序的效率降低,但主数据库端和客户端的数据基本上能够维持同步。在内存数据库的复制系统中,如果在主数据库端存在很多个并发进程,每个进程 都有大量的数据写入到数据库中,客户端由于必须串行的缘故,肯定不能和主数据库端保 持同步,如果仍然采用传统数据库的复制方式,则可能导致两个问题,一是系统阻塞在Send 函数处;二是大量数据聚集在主数据库端的TCP发送缓冲区中等待发送。如果阻塞在Send函数中,那么整个系统的性能将受到影响。如果阻塞在TCP的缓 冲区中,那么当客户端出现问题需要重新请求时,这些数据都必须废弃,但由于这些数据已 经被操作系统管理,都会发送到客户端,而由客户端忽略。主数据库端则需要重新发送数 据,从而导致整个系统性能降低。
技术实现思路
本专利技术的目的是提供一种内存数据库主备同步方法及系统,用于在复制过程中一 次不会交互太多的数据,使复制过程不影响主数据库端应用程序的性能。本专利技术提供一种内存数据库主备同步方法,所述方法包括以下步骤建立主数据库端和客户端之间的主备关系;接收客户端复制主数据库中LOG信息请求;将所述主数据库端中LOG信息发送到所述客户端。优选地,每个LOG信息具有一个序列号LSN。优选地,所述主数据库端的应用程序不断产生LOG信息,最新的LSN称为 NEWEST-LSN。优选地,所述客户端接收到所述主数据库端发送的最新LOG信息,称为LAST-LSN。优选地,所述接收客户端复制主数据库中LOG信息请求中包括所述客户端需要的 最后一个LOG信息的序列号LSN,称为WAITING-LSN。优选地,所述接收客户端复制主数据库中LOG信息请求中,包括WAITING-LSN和 LAST-LSN ;将所述主数据库端中序列号在LAST-LSN和WAITING-LSN之间的LOG信息发送到 所述客户端。优选地,所述客户端根据NEWEST-LSN,调整WAITING-LSN,使得WAITING-LSN小于 或者等于NETOST-LSN。优选地,所述客户端在预定时间段内没有收到所述主数据库端发送的LOG信息, 将WAITING-LSN赋值为LAST-LSN,发送所述主数据库端。本专利技术还提供一种内存数据库主备同步系统,所述系统包括主数据库端和客户 端,以及主备关系建立单元。主备关系建立单元,用于建立主数据库端和客户端之间的主备关系;主数据库端包括主数据库端接收单元,用于接收客户端复制主数据库中LOG信息请求;主数据库端数据区,用于存储LOG信息;主数据库端发送单元,用于将所述主数据库端数据区中的LOG信息发送到所述客 户端。优选地,所述客户端包括客户端接收单元,用于接收所述主数据库端发送单元发送的LOG信息;客户端数据区,用于存储所述客户端接收单元接收到的LOG信息;客户端发送单元,用于向所述主数据库端接收单元发送复制主数据库中LOG信息 请求。与现有技术相比,本专利技术具有以下优点本专利技术实施例所述内存数据库主备同步方法,由于采用由客户端向主数据库端主 动请求数据——LOG信息的方式,实现主数据库的复制——主备同步,这样在复制过程中一 次不会交互太多的数据。在客户端出现问题时,主数据库端可以根据客户端的主动请求,发 送需要发送的数据——LOG信息。当主数据库端数据产生速度大于客户端的处理速度时, 客户端只是单纯地落后于主数据库端。当主数据库端产生数据的速度降低时,客户端能够 逐步跟上,从而实现主备同步。附图说明图1为本专利技术第一实施例所述内存数据库主备同步方法流程图;图2为本专利技术第二实施例所述内存数据库主备同步方法流程图;图3为本专利技术第一实施例所述内存数据库主备同步系统结构图;图4为本专利技术实施例所述主数据库端的结构示意图;图5为本专利技术实施例所述客户端的结构示意图。具体实施例方式本专利技术的目的是提供一种内存数据库主备同步方法及系统,用于在复制过程中一 次不会交互太多的数据,从而复制过程不影响主数据库端应用程序的性能。为了便于本领域技术人员的理解,以下具体介绍几个名词的解释。内存数据库将数据全部放在内存中的数据库。内存数据库主要是为了提高数据 库的处理能力而出现的。复制application)在生产网络中,为保证数据的安全,通常部署两套数据 库系统,其中一套实时或者定期把数据拷贝到另外一套数据库叫复制,也可以叫同步 (synchronization)0主数据库端(Master)在复制系统中,接收生产系统的数据的数据库,主数据库 端是可读写的。本文档来自技高网
...

【技术保护点】
一种内存数据库主备同步方法,其特征在于,所述方法包括以下步骤:建立主数据库端和客户端之间的主备关系;接收客户端复制主数据库中LOG信息请求;将所述主数据库端中LOG信息发送到所述客户端。

【技术特征摘要】
一种内存数据库主备同步方法,其特征在于,所述方法包括以下步骤建立主数据库端和客户端之间的主备关系;接收客户端复制主数据库中LOG信息请求;将所述主数据库端中LOG信息发送到所述客户端。2.根据权利要求1所述的方法,其特征在于,每个LOG信息具有一个序列号LSN。3.根据权利要求2所述的方法,其特征在于,所述主数据库端的应用程序不断产生LOG 信息,最新的LSN称为NEWEST-LSN。4.根据权利要求3所述的方法,其特征在于,所述客户端接收到所述主数据库端发送 的最新LOG信息,称为LAST-LSN。5.根据权利要求4所述的方法,其特征在于,所述接收客户端复制主数据库中LOG信息 请求中包括所述客户端需要的最后一个LOG信息的序列号LSN,称为WAITING-LSN。6.根据权利要求5所述的方法,其特征在于,所述接收客户端复制主数据库中LOG信息 请求中,包括 WAITING-LSN 和 LAST-LSN ;将所述主数据库端中序列号在LAST-LSN和WAITING-LSN之间的LOG信息发送到所述 客户端。7.根据权利要求5所述...

【专利技术属性】
技术研发人员:王征袁晓鹏
申请(专利权)人:广州从兴电子开发有限公司
类型:发明
国别省市:81[中国|广州]

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

1