数据库同步方法、装置及可读介质制造方法及图纸

技术编号:18237805 阅读:49 留言:0更新日期:2018-06-17 01:03
本申请公开了一种数据库同步方法、装置及可读介质,涉及数据库领域。该方法包括:获取数据库事务;根据数据库事务生成二进制日志数据;将二进制日志数据写入临时内存文件系统,临时内存文件系统是通过写内存的方式进行写入的文件系统;将存储在临时内存文件系统中的二进制日志数据同步至备机,备机用于根据二进制日志数据对数据库进行同步。通过将二进制日志数据以写内存的方式写入临时内存文件系统,避免了由于二进制日志文件的文件写入速度较慢,主机将二进制日志数据写入二进制日志文件的效率比较低的问题,提高了二进制日志数据的写入效率。 1

Database synchronization methods, devices and readable media

The application discloses a database synchronization method, a device and a readable medium, and relates to the database field. The method includes: obtaining database transactions, generating binary log data according to database transactions, writing binary log data into the temporary memory file system, and the temporary memory file system is a file system written in the way of writing memory; the binary log data stored in the temporary memory file system are the same. The machine is used to synchronize the database according to binary log data. By writing the binary log data in memory to write the temporary memory file system, it avoids the low efficiency of the binary log data writing to binary log files because of the slow writing speed of the binary log file, and improves the writing efficiency of the binary log data. One

【技术实现步骤摘要】
数据库同步方法、装置及可读介质
本申请实施例涉及数据库领域,特别涉及一种数据库同步方法、装置及可读介质。
技术介绍
在数据库领域中,将数据库中的数据由主机同步至备机是一种灾备的主要方式。备机和主机的数据库数据保持一致,在主机数据被破坏或者主机崩溃时,可以直接通过备机上的数据库继续进行工作。通常,客户端通过数据库事务对主机上的数据库进行数据修改。在主机接收到客户端提交的若干个数据库事务后,在根据该数据库事务对该数据库中的数据进行修改之前,首先将该数据库事务写入二进制日志(英文:binlog)文件中,并将该二进制日志文件发送至备机,备机会通过对该二进制日志文件进行解析,得到对应的数据库事务,并在备机上执行该数据库事务,以保证主机的数据库与备机的数据库保持一致。然而,受限于二进制日志文件的文件写入速度较慢,主机将数据库事务写入二进制日志文件的效率比较低,从而会导致主机与备机在数据库的同步之间延时较大。当数据库较为庞大且对时效性要求较高时,无法满足实际处理需求。
技术实现思路
本申请实施例提供了一种数据库同步方法、装置及可读介质,可以解决主机将数据库事务写入二进制日志文件的效率比较低,从而会导致主机与备机在数据库的同步之间延时较大的问题。所述技术方案如下:根据本申请实施例的一方面,提供了一种数据库同步方法,所述方法包括:获取数据库事务;根据所述数据库事务生成二进制日志数据;将所述二进制日志数据写入临时内存文件系统,所述临时内存文件系统是通过写内存的方式进行写入的文件系统;将存储在所述临时内存文件系统中的所述二进制日志数据同步至备机,所述备机用于根据所述二进制日志数据对所述数据库进行同步。根据本申请实施例的另一方面,提供了一种数据库同步装置,所述装置包括:获取模块,用于获取数据库事务;生成模块,用于根据所述数据库事务生成二进制日志数据;写入模块,用于将所述二进制日志数据写入临时内存文件系统,所述临时内存文件系统是通过写内存的方式进行写入的文件系统;同步模块,用于将存储在所述临时内存文件系统中的所述二进制日志数据同步至备机,所述备机用于根据所述二进制日志数据对所述数据库进行同步。根据本申请实施例的另一方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如本申请实施例的第一方面及其可选实施例中任一所述的数据库同步方法。根据本申请实施例的另一方面,提供了一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如本申请实施例的第一方面及其可选实施例中任一所述的数据库同步方法。根据本申请实施例的另一方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行如上述本申请第一方面及其可选的实施例中任一所述的数据库同步方法。本申请实施例提供的技术方案带来的有益效果至少包括:通过将二进制日志数据以写内存的方式写入临时内存文件系统,避免了由于二进制日志文件的文件写入速度较慢,主机将二进制日志数据写入二进制日志文件的效率比较低的问题,提高了二进制日志数据的写入效率,以及提高了从临时内存文件系统读取二进制日志数据的读取效率,从而提高了数据库的写入以及读取效率,在一个典型的实施例中,该二进制日志数据的写入效率提升了五倍,数据库的每秒查询库(英文:QueryPerSecond)提升了10%。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请一个示例性的实施例提供的数据库同步方法的实施环境示意图;图2是本申请一个示例性的实施例提供的数据库同步方法的流程图;图3是本申请另一个示例性的实施例提供的数据库同步方法的流程图;图4A是本申请另一个示例性的实施例提供的数据库同步方法的实施环境示意图;图4B是本申请另一个示例性的实施例提供的数据库同步方法的实施环境示意图;图5是本申请另一个示例性的实施例提供的数据库同步方法的流程图;图6是本申请一个示例性的实施例提供的数据库同步装置的结构框图;图7是本申请一个示例性的实施例提供的终端的结构框图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。首先,对本申请实施例中涉及的以下名词进行解释:主机:用于根据接收到的数据库事务对数据库进行调整,可选地,该主机中包括数据库以及二进制服务器。可选地,该主机可以是物理主机,也可以是虚拟主机,当其为虚拟主机时,该主机又可以称为主实例。备机:用于对主机中的数据库进行备份,通常,备机对接收到的二进制日志数据进行解析,得到数据库事务,并在备机上执行该数据库事务,以保证主机的数据库与备机的数据库保持一致。可选地,该备机可以是物理主机,也可以是虚拟机,当其为虚拟机时,该备机又可以称为备实例。数据库事务:数据库事务是数据库运行中的逻辑工作单位,通常,一个数据库事务可以对数据库进行一次操作,如:增加操作、修改操作、删除操作等,可选地,一个数据库事务为一条或一组结构化查询语言(StructuredQueryLanguage,SQL)语句。二进制服务器:二进制服务器(英文:binlogserver)用于根据数据库事务生成二进制日志数据(英文:binlog),并写入临时内存文件系统,以及将临时内存文件系统中的binlog同步至备机。二进制日志数据:二进制日志数据是二进制形式的数据库事务。临时内存文件系统:临时内存文件系统是一种通过写内存的方式进行写入的文件系统,示意性的,该临时内存文件系统为临时文件系统(temporaryfilestorage,tmpfs)。下面,结合上述本申请实施例中涉及的名词对本申请实施例进行说明,首先,请参考图1,图1是本申请一个示例性的实施例提供的数据库同步方法的实施环境示意图,如图1所示,该数据库同步方法运行环境包括:主机11、备机12以及通信网络13;主机11中包括数据库110以及binlog服务器111,该数据库110根据接收到的数据库事务进行调整,binlog服务器111获取数据库110接收到的数据库事务,并将根据该数据库事务生成的二进制日志数据写入临时内存文件系统,以及将该二进制日志数据同步至备机12。值得注意的是,本申请实施例中以主机11中包括数据库110为例进行说明,在实际操作中,主机11中还可以包括更多数据库,可选地,每个数据库与一个binlog服务器对应,即每个binlog服务器对一个数据库的数据库事务进行处理。主机11通过通信网络13将二进制日志数据同步至备机12,该通信网络13可以是局域网、城域网或者广域网中的至少一个。备机12包括数据库120,备机12对接收到的二进制日志数据进行解析,得到数据库事务,并在备机上执行该数据库事务,以保证主机11的数据库110与备机12的数据库120保持一致本文档来自技高网...
数据库同步方法、装置及可读介质

【技术保护点】
1.一种数据库同步方法,其特征在于,所述方法包括:

【技术特征摘要】
1.一种数据库同步方法,其特征在于,所述方法包括:获取数据库事务;根据所述数据库事务生成二进制日志数据;将所述二进制日志数据写入临时内存文件系统,所述临时内存文件系统是通过写内存的方式进行写入的文件系统;将存储在所述临时内存文件系统中的所述二进制日志数据同步至备机,所述备机用于根据所述二进制日志数据对所述数据库进行同步。2.根据权利要求1所述的方法,其特征在于,所述获取数据库事务,包括:接收数据库引擎发送的数据库事务,所述数据库事务是所述数据库引擎按照预先配置的本地二进制服务器地址发送的。3.根据权利要求1所述的方法,其特征在于,所述将所述二进制日志数据写入临时内存文件系统,还包括:读取数据库配置参数,所述数据库配置参数包括:文件命名方式、文件切割方式、文件循环写入方式以及二进制日志数据的格式中的至少一种;根据所述数据库配置参数,将所述二进制日志数据写入临时内存文件系统。4.根据权利要求1至3任一所述的方法,其特征在于,所述将所述二进制日志数据写入临时内存文件系统之后,还包括:将所述临时内存文件系统中的所述二进制日志数据通过异步消息发送至冷备系统,所述冷备系统用于每隔预设时长对数据库和所述二进制日志数据进行冷备份。5.根据权利要求4所述的方法,其特征在于,所述方法,还包括:接收所述备机发送的异常信号,所述异常信号是所述备机在同步到的所述二进制日志数据的事务标识不连续时产生的,所述异常信号包括所述备机缺失的二进制日志数据的事务标识;根据所述异常信号中的事务标识,从所述冷备系统获取所述备机缺失的二进制日志数据;将所述备机缺失的二进制日志数据发送至所述备机。6.根据权利要求4所述的方法,其特征在于,所述方法,还包括:接收所述备机发送的异常信号,所述异常信号是所述备机在同步到的所述二进制日志数据的事务标识不连续时产生的,所述异常信号包括所述备机缺失的二进制日志数据的事务标识;当所述冷备系统中没有所述备机缺失的二进制日志数据时,获取重做日志文件中与所述异常信号中的事务标识对应的重做日志数据;将所述重做日志数据发送至所述备机。7.一种数据库同步装置,其特征在于,所述装置包括:获取模块,用于获取数据库事务;生成模块,用于根据所述数据库事务生成二进制日志数据;写入模块,用于将所述二进制日志数据写入临时内存文件系统,所述临时内存文件系统是通过写内存的方式进行写入的文件系统;同步模块,用于将存储在所述临时内存文件系统中的所述二进制日志数据同步...

【专利技术属性】
技术研发人员:祝百万
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1