本发明专利技术公开了一种主从数据库的同步方法及装置。其中,所述方法包括:接收到数据写请求时,将数据写入主数据库中,并将数据写操作顺序记录到主数据库的本地日志文件中,并更新第一文件偏移量,所述第一文件偏移量是主数据库数据对应于本地日志文件的文件偏移量;读取主数据库的本地日志文件,根据所述第一文件偏移量将新增的数据写操作对应的数据同步至从数据库。基于上述实施方案,本发明专利技术无需在主数据库针对每个从数据库分别存储日志文件,减少了对分布式数据存储系统的空间占用,避免浪费存储空间,且进一步提升了主数据库和从数据库中数据同步一致性。
【技术实现步骤摘要】
本专利技术涉及互联网
,具体涉及一种主从数据库的同步方法及装置。
技术介绍
现有技术中,分布式存储系统通常包括一个主数据库和若干个从数据库,为了保持主数据库与从数据库之间的数据同步,现有技术一般采用的方法是:分别针对每个从数据库建立并存储一个对应的日志文件,当在主数据写入数据后,会相应的在每个日志文件记录相应的数据写操作,以用于对从数据库进行数据同步。这种方式不仅浪费分布式数据存储系统的空间,而且,在将主数据库的数据同步至从数据库的过程中,将会阻塞数据写入主数据库,也就是说,在主数据库的数据同步至从数据库后,才可以将数据写入到主数据库中,降低了数据写入效率和同步效率。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的主从数据库的同步方法和相应的主从数据库的同步装置。根据本专利技术的一个方面,提供了一种主从数据库的同步方法,其包括:当接收到数据写请求时,将数据写入主数据库中,并将数据写操作顺序记录到主数据库的本地日志文件中,并更新第一文件偏移量,第一文件偏移量是主数据库数据对应于本地日志文件的文件偏移量;读取主数据库的本地日志文件,根据第一文件偏移量将新增的数据写操作对应的数据同步至从数据库。根据本专利技术的另一方面,提供了一种主从数据库的同步装置,其包括:写数据处理模块,适于当接收到数据写请求时,将数据写入主数据库中,
并将数据写操作顺序记录到主数据库的本地日志文件中,并更新第一文件偏移量,第一文件偏移量是主数据库数据对应于本地日志文件的文件偏移量;同步模块,适于读取主数据库的本地日志文件,根据第一文件偏移量将新增的数据写操作对应的数据同步至从数据库。根据本专利技术提供的技术方案,当接收到数据写请求时,将数据写入主数据库中,并将数据写操作顺序记录到主数据库的本地日志文件中,并更新第一文件偏移量,第一文件偏移量是主数据库数据对应于本地日志文件的文件偏移量;读取主数据库的本地日志文件,根据第一文件偏移量将新增的数据写操作对应的数据同步至从数据库。基于上述实施方案,本专利技术无需在主数据库针对每个从数据库分别存储日志文件,减少了对分布式数据存储系统的空间占用,并且数据写入主数据库与数据同步至从数据库可以同时执行,并不会因为执行数据同步而阻塞数据写入主数据库,从而提高了数据写入效率和同步效率,避免浪费存储空间,且进一步提升了主数据库和从数据库中数据同步一致性。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的主从数据库的同步方法的流程示意图;图2示出了根据本专利技术另一个实施例的主从数据库的同步方法的流程示意图;图3示出了根据本专利技术另一个实施例的主从数据库的同步方法的流程示意图;图4示出了根据本专利技术一个实施例的主从数据库的同步装置的结构框图;图5示出了根据本专利技术另一个实施例的主从数据库的同步装置的结构框图;图6示出了根据本专利技术另一个实施例的主从数据库的同步装置的结构框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。分布式数据存储系统就是将数据分散存储在多台独立的设备上,也就是说,针对一份数据,存储至N个数据库,一般是存储至一个主数据库和多个从数据库,且数据是同步存储至主数据库和多个从数据库,以保证当主数据库中的数据出现问题时,并不会影响相应的服务。图1示出了根据本专利技术一个实施例的主从数据库的同步方法的流程示意图。如图1所示,该方法包括以下步骤:步骤S100,当接收到数据写请求时,将数据写入主数据库中,并将数据写操作顺序记录到主数据库的本地日志文件中,并更新第一文件偏移量。其中,第一文件偏移量是主数据库中数据对应于本地日志文件的文件偏移量,根据该第一文件偏移量可以很方便地在本地日志文件查找到数据写操作记录,获得写入主数据库中的数据。本地日志文件用于记录写入到主数据库的数据写操作记录,这里的本地日志文件可以是二进制日志文件,也称为Binlog文件,是一种逻辑日志,用于记录对数据所执行的数据写操作,并以二进制的形式保存在磁盘中。Binlog文件按照对数据所执行的数据写操作的顺序进行存储,而且记录次数与所执行操作的次数相对应,即,每对数据执行一次数据写操作,就在Binlog文件中记录一次。具体地,当计算机用户需要将数据写入到分布式数据存储统的主数据库时,计算机用户向该分布式数据存储系统发送数据写入请求,分布式数据存储系统在接收到数据写入请求时,将数据写入主数据库中,并将数据写操作顺序记录到主数据库的本地日志文件中,并更新第一文件偏移量。在将数据写操作顺序记录到主数据库的本地日志文件中之后,在本专利技术的实施例中,还需要向数据写请求的发起者返回数据写响应。在更新第一文件偏移量之后,若需要将主数据库中的数据同步至从数据库,可以读取主数据库的本地日志文件,根据第一文件偏移量将新增的数据写操作对应的数据同步至从数据库,具体地,可以通过如下步骤实现将新增的数据同步至从数据库:步骤S101,读取主数据库的本地日志文件,比较第一文件偏移量和第二文件偏移量是否一致,若不一致,则执行步骤S102;若一致,则返回至步骤S100。其中,第二文件偏移量是已被同步至从数据库的数据对应于本地日志文件的文件偏移量,也就是说,根据该第二文件偏移量可以确定主数据库中哪些数据已被同步至从数据库。在本专利技术实施例中,读取主数据库的本地日志文件,可以得到当前本地日志文件的第一文件偏移量,通过比较第一文件偏移量和第二文件按偏移量是否一致,来判断主数据库中的数据在前次同步至从数据库后是否发生更新,是否需要进行主数据库至从数据库的同步。步骤S102,将新增的数据写操作对应的数据同步至从数据库。在根据步骤S101判断出第一文件偏移量和第二文件偏移量不一致的情况下,可以确定在将第二文件偏移量对应的数据同步至从数据库后,主数据库中又新写入了其他数据,并将这些数据写操作顺序记录到主数据库的本地日志文件中,更新第一文件偏移量,而这些数据并未同步至从数据库,需要将新增的数据写操作对应的数据同步至从数据库。在将新增的数据写操作对应的数据同步至从数据库后,需要对已同步至从数据库的数据对应于本地日志文件的第二文件偏移量进行更新。步骤S103,更新第二文件偏移量。这里是将第二文件偏移量更新为步骤S100中的第一文件偏移量。步骤S104,在从数据库同步数据成功后,更新第三文件偏移量。其中,第三文件偏移量是从数据库中数据对应于本地日志文件的文件偏移量,根据该第三文件偏移量可以确定本地日志文件中记录的哪些数据写操作对应的数据已被同步至从本文档来自技高网...
【技术保护点】
一种主从数据库的同步方法,其包括:当接收到数据写请求时,将数据写入主数据库中,并将数据写操作顺序记录到主数据库的本地日志文件中,并更新第一文件偏移量,所述第一文件偏移量是主数据库数据对应于本地日志文件的文件偏移量;读取所述主数据库的本地日志文件,根据所述第一文件偏移量将新增的数据写操作对应的数据同步至从数据库。
【技术特征摘要】
1.一种主从数据库的同步方法,其包括:当接收到数据写请求时,将数据写入主数据库中,并将数据写操作顺序记录到主数据库的本地日志文件中,并更新第一文件偏移量,所述第一文件偏移量是主数据库数据对应于本地日志文件的文件偏移量;读取所述主数据库的本地日志文件,根据所述第一文件偏移量将新增的数据写操作对应的数据同步至从数据库。2.根据权利要求1所述的方法,其中,在所述将数据写操作顺序记录到主数据库的本地日志文件中之后,所述方法还包括:向所述数据写请求的发起者返回数据写响应。3.根据权利要求1所述的方法,其中,所述根据第一文件偏移量将新增的数据写操作对应的数据同步至从数据库进一步包括:比较所述第一文件偏移量和第二文件偏移量是否一致,所述第二文件偏移量是已同步至从数据库的数据对应于本地日志文件的文件偏移量;若不一致,则将新增的数据写操作对应的数据同步至从数据库。4.根据权利要求3所述的方法,其中,在将新增的数据写操作对应的数据同步至从数据库之后,所述方法还包括:更新所述第二文件偏移量;在从数据库同步数据成功后,更新第三文件偏移量,所述第三文件偏移量是从数据库数据对应于本地日志文件的文件偏移量。5.根据权利要求1-4任一项所述的方法,其中,所述读取主数据库的本地日志文件,根据所述第一文件偏移量将新增的数据写操作对应的数据同步至从数据库的步骤由同步线程执行,每个从数据库具有专属于自己的同步线程。6.根据权...
【专利技术属性】
技术研发人员:宋昭,
申请(专利权)人:北京奇虎科技有限公司,奇智软件北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。