一种数据库数据备份的方法、装置及电子设备制造方法及图纸

技术编号:15791793 阅读:130 留言:0更新日期:2017-07-09 22:06
本申请公开了一种数据库数据备份的方法、一种数据库数据备份的装置以及一种电子设备。其中,所述数据库数据备份的方法,包括:从中继日志中读取事件;根据读取到的所述事件对备份数据库执行对应的数据库操作;基于所述数据库操作,更新所述中继日志中读取的所述事件的内容;将更新后的所述事件写入到二进制日志中。所述技术方案利用中继日志文件与二进制日志文件内容以及格式相似的特点,在数据更新通过的过程中将中继日志文件转换为二进制日志文件,省去了进行主备模式同步数据时,备份数据库通过中继日志文件更新数据并且在数据更新生成二进制日志文件时需要进行原生构建二进制日志文件的过程,解决了数据同步时过程繁琐,同步效率低的问题。

【技术实现步骤摘要】
一种数据库数据备份的方法、装置及电子设备
本申请涉及数据库
,具体涉及一种数据库数据备份的方法以及一种数据库数据备份的装置;本申请同时涉及一种电子设备。
技术介绍
MySQL是一种关系型数据库管理系统。在MySQL数据库中有各种不同类型的日志文件:错误日志、二进制日志、查询日志等,根据这些日志可以查询MySQL数据库执行的操作以及状态等信息。其中二进制日志(binlog),记录了对MySQL数据库的更改操作,例如:创建数据库或表(create)、插入操作(insert)、更新操作(update)、删除操作(delete)等,每个更改操作都以一条事件的形式写入二进制日志文件中,每条事件中都包含了当前事件更新的时间戳、该记录在当前二进制日志文件中的位置(即:偏移量)以及与数据库更改操作相关的其他信息。MySQL数据库通常有一个或者多个二进制日志文件,不同的二进制日志文件通过文件扩展名采用不同的数字编号形式加以区分,例如:MySQL-bin.00001。一般的为了增强系统的可靠性和稳定性,经常使用主备模式来部署在系统中使用的数据库,目前MySQL通常包括一个主数据库和至少一个备份数据库,主数据库用于提供数据管理和数据查询等功能,备份数据库用于备份主数据库中的数据,用以在主数据库发生故障时代替主数据库提供相应的功能。在MySQL数据库中实现主备模式的方案为:备份数据库从主数据库获取二进制日志文件,将该二进制日志文件转换为中继日志文件(relaylog),根据中继日志文件在备份数据库中更新数据并生成备份数据库的二进制日志文件。由此可见,在现有主备模式同步数据的方案下,备份数据库通过应用中继日志文件更新数据来和主数据库进行同步,并且在数据更新生成二进制日志文件时,需要进行原生构建二进制日志文件的过程,数据同步时过程繁琐,同步效率低。
技术实现思路
本申请提供一种数据库数据备份的方法以及一种数据库数据备份的装置,以解决现有技术中的上述问题。本申请同时涉及一种电子设备。本申请提供了一种数据库数据备份的方法,所述数据库数据备份的方法,包括:从中继日志中读取事件;根据读取到的所述事件对备份数据库执行对应的数据库操作;基于所述数据库操作,更新所述中继日志中读取的所述事件的内容;将更新后的所述事件写入到二进制日志中。可选的,所述根据读取到的所述事件对备份数据库执行对应的数据库操作,包括:将从所述中继日志中读取到的所述事件解析为执行语句,并对当前数据库执行对应于所述执行语句的数据库操作;所述执行语句至少包括:修改操作语句、插入操作语句或者删除操作语句。可选的,所述事件至少包括:执行所述事件时的时间戳、创建该事件的服务进程标识、该事件的偏移值。可选的,所述基于所述数据库操作,更新所述中继日志中读取的所述事件的内容,包括:基于所述数据库操作,更新所述中继日志中读取的所述事件中的时间戳、服务进程标识以及该事件的偏移值。可选的,所述基于所述数据库操作,更新所述中继日志中读取的所述事件中的时间戳、服务进程标识以及该事件的偏移值,包括:获取对该数据库执行对应的数据库操作时的当前系统时间;将所述中继日志中读取的所述事件的时间戳更新为已获取的当前系统时间;获取该数据库的服务进程标识;将所述中继日志中读取的所述事件携带的创建该事件的服务进程标识更新为该数据库的服务进程标识;获取存储在该数据库中的二进制日志中最后一条事件的偏移值和该事件的长度;根据所述存储在该数据库中的二进制日志中最后一条事件的偏移值和该事件的长度,为从所述中继日志中读取的所述事件计算并更新偏移值。可选的,所述事件还包括:校验和;在所述基于所述数据库操作,更新所述中继日志中读取的所述事件的内容的步骤中,还包括:更新所述中继日志中读取的所述事件的校验和。可选的,所述更新所述中继日志中读取的所述事件的校验和,包括:获取将所述二进制日志中的事件写入到备份数据库中的中继日志时生成的校验和;将所述中继日志中读取的所述事件携带的校验和更新为将所述二进制日志中的事件写入到备份数据库中的中继日志时生成的校验和。可选的,在所述从中继日志中读取事件的步骤之前,包括:将当前数据库作为备份数据库,与主数据库之间建立数据连接。可选的,所述主数据库和备份数据库为MySQL数据库。可选的,在所述与主数据库之间建立数据连接的步骤之后,包括:接收主数据库发送的所述主数据库中的二进制日志;将所述二进制日志中的事件写入到备份数据库中的中继日志内。相应的,本申请还提供了一种数据库数据备份的装置,所述数据库数据备份的装置,包括:事件读取单元,用于从中继日志中读取事件;数据库操作执行单元,用于根据读取到的所述事件对备份数据库执行对应的数据库操作;事件更新单元,用于基于所述数据库操作,更新所述中继日志中读取的所述事件的内容;日志写入单元,用于将更新后的所述事件写入到二进制日志中。可选的,所述数据库操作执行单元,具体用于将从所述中继日志中读取到的所述事件解析为执行语句,并对当前数据库执行对应于所述执行语句的数据库操作;所述执行语句至少包括:修改操作语句、插入操作语句或者删除操作语句。可选的,所述事件读取单元,从中继日志中读取的事件至少包括:执行所述事件时的时间戳、创建该事件的服务进程标识、该事件的偏移值。可选的,所述事件更新单元,具体用于基于所述数据库操作,更新所述中继日志中读取的所述事件中的时间戳、服务进程标识以及该事件的偏移值。可选的,所述事件更新单元,包括:系统时间获取子单元,用于获取对该数据库执行对应的数据库操作时的当前系统时间;时间更新子单元,用于将所述中继日志中读取的所述事件的时间戳更新为已获取的当前系统时间;服务进程标识获取子单元,用于获取该数据库的服务进程标识;服务进程标识更新子单元,用于将所述中继日志中读取的所述事件携带的创建该事件的服务进程标识更新为该数据库的服务进程标识;偏移值获取子单元,用于获取存储在该数据库中的二进制日志中最后一条事件的偏移值和该事件的长度;偏移值更新子单元,用于根据所述存储在该数据库中的二进制日志中最后一条事件的偏移值和该事件的长度,为从所述中继日志中读取的所述事件计算并更新偏移值。可选的,所述事件读取单元,从中继日志中读取的事件还包括:校验和;所述事件更新单元,还用于基于所述数据库操作,更新所述中继日志中读取的所述事件的校验和。可选的,所述事件更新单元,还包括:校验和获取子单元,用于获取将所述二进制日志中的事件写入到备份数据库中的中继日志时生成的校验和;校验和更新子单元,用于将所述中继日志中读取的所述事件携带的校验和更新为将所述二进制日志中的事件写入到备份数据库中的中继日志时生成的校验和。可选的,所述数据库数据备份的装置,还包括:连接建立单元,用于从中继日志中读取事件之前,将当前数据库作为备份数据库,与主数据库之间建立数据连接。可选的,所述连接建立单元,将当前数据库作为备份数据库,与主数据库之间建立数据连接的主数据库和备份数据库为MySQL数据库。可选的,所述数据库数据备份的装置,还包括:二进制日志接收单元,用于在所述与主数据库之间建立数据连接之后,接收主数据库发送的所述主数据库中的二进制日志;中继日志写入单元,用于将所述二进制日志中的事件写入到备份数据库中的中继日本文档来自技高网
...
一种数据库数据备份的方法、装置及电子设备

【技术保护点】
一种数据库数据备份的方法,其特征在于,包括:从中继日志中读取事件;根据读取到的所述事件对备份数据库执行对应的数据库操作;基于所述数据库操作,更新所述中继日志中读取的所述事件的内容;将更新后的所述事件写入到二进制日志中。

【技术特征摘要】
1.一种数据库数据备份的方法,其特征在于,包括:从中继日志中读取事件;根据读取到的所述事件对备份数据库执行对应的数据库操作;基于所述数据库操作,更新所述中继日志中读取的所述事件的内容;将更新后的所述事件写入到二进制日志中。2.根据权利要求1所述的数据库数据备份的方法,其特征在于,所述根据读取到的所述事件对备份数据库执行对应的数据库操作,包括:将从所述中继日志中读取到的所述事件解析为执行语句,并对当前数据库执行对应于所述执行语句的数据库操作;所述执行语句至少包括:修改操作语句、插入操作语句或者删除操作语句。3.根据权利要求2所述的数据库数据备份的方法,其特征在于,所述事件至少包括:执行所述事件时的时间戳、创建该事件的服务进程标识、该事件的偏移值。4.根据权利要求3所述的数据库数据备份的方法,其特征在于,所述基于所述数据库操作,更新所述中继日志中读取的所述事件的内容,包括:基于所述数据库操作,更新所述中继日志中读取的所述事件中的时间戳、服务进程标识以及该事件的偏移值。5.根据权利要求4所述的数据库数据备份的方法,其特征在于,所述基于所述数据库操作,更新所述中继日志中读取的所述事件中的时间戳、服务进程标识以及该事件的偏移值,包括:获取对该数据库执行对应的数据库操作时的当前系统时间;将所述中继日志中读取的所述事件的时间戳更新为已获取的当前系统时间;获取该数据库的服务进程标识;将所述中继日志中读取的所述事件携带的创建该事件的服务进程标识更新为该数据库的服务进程标识;获取存储在该数据库中的二进制日志中最后一条事件的偏移值和该事件的长度;根据所述存储在该数据库中的二进制日志中最后一条事件的偏移值和该事件的长度,为从所述中继日志中读取的所述事件计算并更新偏移值。6.根据权利要求3所述的数据库数据备份的方法,其特征在于,所述事件还包括:校验和;在所述基于所述数据库操作,更新所述中继日志中读取的所述事件的内容的步骤中,还包括:更新所述中继日志中读取的所述事件的校验和。7.根据权利要求6所述的数据库数据备份的方法,其特征在于,所述更新所述中继日志中读取的所述事件的校验和,包括:获取将所述二进制日志中的事件写入到备份数据库中的中继日志时生成的校验和;将所述中继日志中读取的所述事件携带的校验和更新为将所述二进制日志中的事件写入到备份数据库中的中继日志时生成的校验和。8.根据权利要求1所述的数据库数据备份的方法,其特征在于,在所述从中继日志中读取事件的步骤之前,包括:将当前数据库作为备份数据库,与主数据库之间建立数据连接。9.根据权利要求8所述的数据库数据备份的方法,其特征在于,所述主数据库和备份数据库为MySQL数据库。10.根据权利要求8所述的数据库数据备份的方法,其特征在于,在所述与主数据库之间建立数据连接的步骤之后,包括:接收主数据库发送的所述主数据库中的二进制日志;将所述二进制日志中的事件写入到备份数据库中的中继日志内。11.一种数据库数据备份的装置,其特征在于,包括:事件读取单元,用于从中继日志中读取事件;数据库操作执行单元,用于根据读取到的所述事件对备份数据库执行对应的数据库操作;事件更新单元,用于基于所述数据库操作,更新所述中继日志中读取的所述事件的内容;日志写入单元,用于将更新后的所述事件写入到二进制日志中。...

【专利技术属性】
技术研发人员:张远林晓斌
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1