一种主备库数据修复的方法以及装置制造方法及图纸

技术编号:14066903 阅读:37 留言:0更新日期:2016-11-28 12:53
本申请公开了一种主备库数据修复中主库的数据处理方法,包括:读取主库和备库之间存在差异的差异数据,每组差异数据在主库和备库至少存在一个对应的数据记录;确定每组差异数据的数据差异类型;所述数据差异类型包括第一数据差异类型和第二数据差异类型;若所述差异数据的数据差异类型为第一数据差异类型,则针对所述差异数据在主库中的数据记录执行更新操作;若所述差异数据的数据差异类型为第二数据差异类型,则在主库中执行插入所述差异数据的数据记录的操作;然后,针对主库中插入的所述差异数据的数据记录执行删除操作。该方法的实现方式简单,同时,该方法避免了数据锁定造成的延时。

【技术实现步骤摘要】

本申请涉及数据修复
,具体涉及一种主备库数据修复的方法,更具体的,包括主备库数据修复中主库的数据处理方法;以及与该主库的数据处理方法相对应的备库的数据更新方法;以及结合所述主库的数据处理方法和备库的数据更新方法形成的主备库数据修复方法。本申请同时涉及一种主备库数据修复中主库的数据处理装置、一种备库的数据更新装置、一种主备库数据修复的装置,以及一种电子设备。
技术介绍
随着近几年来业务系统的高速发展,当前的数据库管理系统(Database Management System,DBMS)也随着客户的增加、业务的增长以及业务系统的交易数和交易复杂度的增长有了大规模的提升,同时也导致了DBMS中的数据变化更加频繁,DBMS的ACID(原子性Atomicity、一致性Consistency、隔离性Isolation和持久性Durability)实现,保证了DBMS中数据的稳定性和持久性;当前,DBMS采用的是开放的MySQL数据库产品,通过主备库进行异步数据复制来实现,正常情况下,主备库的数据记录是一致的。但是,在一些情况下,会出现主备库数据记录不一致的情况,就需要及时进行修复。针对上述主备库的数据记录不一致的情况,为了避免差异数据的检测过程对主备库造成过大压力,一般采取分片检测的方法,根据索引分别在主库和备库取对应的数据分片(包含若干行数据记录),对比在主库和备库取到的数据分片,若数据全部相同则继续检测下一个数据分片,若存在不相同的数据则表明存在差异数据。现有技术下,针对检测出的主库和备库之间存在差异数据,通过执行以下步骤完成差异数据的修复:在主库上执行一个锁定命令,锁定主库上包含差异数据的数据分片;导出主库上锁定的数据分片中的数据记录;删除主库上导出的该数据分片在备库上对应的数据分片,并将主库上导出的该数据分片中的数据记录插入备库;解除在主库上执行的锁定命令。上述提供的现有技术存在明显的缺陷,在上述数据记录的修复过程中,主库会继续收到数据更新请求,为防止修复时可能发生的数据更新,在修复时,将当前需要修复的一个数据分片(包含若干行数据记录)锁定,锁定时间取决于数据分片中包含的数据记录的数目,以及备库数据处理的执行速度,因此,会在一段时间内,影响主库的数据业务,对于主库的数据更新产生一定的延时。
技术实现思路
本申请提供一种主备库数据修复中主库的数据处理方法,以解决现有技术存在的数据锁定造成的延时问题。本申请同时提供一种备库的数据更新方法,该方法和上述主库的数据处理方法相配合,实现主备库数据修复。本申请同时提供一种将上述主备库数据修复中主库的数据处理方法和上述备库的数据更新方法相结合,实现主备库数据修复的方法。本申请同时提供一种主备库数据修复中主库的数据处理装置,一种备库的数据更新装置,一种主备库数据修复装置,以及一种电子设备。本申请提供一种用于数据备份的方法,包括:读取主库和备库之间存在差异的差异数据,每组差异数据在主库和备库至少存在一个对应的数据记录;确定每组差异数据的数据差异类型;所述数据差异类型包括第一数据差异类型和第二数据差异类型;所述第一数据差异类型包括:主库存在对应数据记录的差异数据的数据差异类型;所述第二数据差异类型包括:在主库不存在对应数据记录的差异数据的数据差异类型;若所述差异数据的数据差异类型为第一数据差异类型,则针对所述差异数据在主库中的数据记录执行更新操作;若所述差异数据的数据差异类型为第二数据差异类型,则在主库中执行插入所述差异数据的数据记录的操作;然后,针对主库中插入的所述差异数据的数据记录执行删除操作。可选的,所述第一数据差异类型,包括以下两种子数据差异类型:在主库和备库都存在对应数据记录但其中包含的数据值不同的差异数据的
数据差异类型;以及,主库存在而备库不存在对应数据记录的差异数据的数据差异类型。可选的,若所述差异数据的数据差异类型为第一数据差异类型,则针对所述差异数据在主库中的数据记录执行更新操作的步骤,包括:针对所述差异数据在主库中的数据记录,以所述差异数据在主库中的数据记录为依据,执行更新操作;将更新操作执行前所述差异数据在主库中的数据记录,更新操作执行后所述差异数据在主库中的数据记录,以及更新操作对应的数据更新标记写入二进制日志。可选的,若所述差异数据的数据差异类型为第二数据差异类型,则在主库中执行插入所述差异数据的数据记录的操作的步骤,包括:以所述差异数据的数据记录为依据,在主库中执行插入所述差异数据的数据记录的操作;将主库中插入的所述差异数据的数据记录,以及插入操作对应的数据插入标记写入二进制日志。可选的,若所述差异数据的数据差异类型为第二数据差异类型,则针对主库中插入的所述差异数据的数据记录执行删除操作的步骤,包括:删除所述差异数据的数据记录;将删除前所述差异数据在主库中的数据记录,以及删除操作对应的数据删除标记写入二进制日志。本申请还提供一种主备库数据修复中主库的数据处理装置,包括:差异数据读取单元,用于读取主库和备库之间存在差异的差异数据,每组差异数据在主库和备库至少存在一个对应的数据记录;数据差异类型确定单元,用于根据所述差异数据,确定每组差异数据的数据差异类型;所述数据差异类型包括第一数据差异类型和第二数据差异类型;所述第一数据差异类型包括:主库存在对应数据记录的差异数据的数据差异类型;所述第二数据差异类型包括:在主库不存在对应数据记录的差异数据的数据差异类型;若所述差异数据的数据差异类型为第一数据差异类型,则启动数据记录更
新单元;所述数据记录更新单元,用于针对所述差异数据在主库中的数据记录执行更新操作;若所述差异数据的数据差异类型为第二数据差异类型,则依次启动数据记录插入单元和数据记录删除单元;所述数据记录插入单元,用于在主库中执行插入所述差异数据的数据记录的操作;所述数据记录删除单元,用于针对主库中插入的所述差异数据的数据记录执行删除操作。可选的,所述第一数据差异类型,包括以下两种子数据差异类型:在主库和备库都存在对应数据记录但其中包含的数据值不同的差异数据的数据差异类型;以及,主库存在而备库不存在对应数据记录的差异数据的数据差异类型。可选的,所述数据记录更新单元,包括:数据记录更新子单元,用于针对所述差异数据在主库中的数据记录,以所述差异数据在主库中的数据记录为依据,执行更新操作;更新二进制日志生成子单元,用于将更新操作执行前所述差异数据在主库中的数据记录,更新操作执行后所述差异数据在主库中的数据记录,以及更新操作对应的数据更新标记写入二进制日志。可选的,所述数据记录插入单元,包括:数据记录插入子单元,用于以所述差异数据的数据记录为依据,在主库中执行插入所述差异数据的数据记录的操作;插入二进制日志生成子单元,用于将主库中插入的所述差异数据的数据记录,以及插入操作对应的数据插入标记写入二进制日志。可选的,所述数据记录插入单元,包括:数据记录删除子单元,用于删除所述差异数据的数据记录;删除二进制日志生成子单元,用于将删除前所述差异数据在主库中的数据记录,以及删除操作对应的数据删除标记写入二进制日志。本申请还提供一种备库的数据更新方法,包括:读取中继日志中记录的数据操作记录;所述数据操作记录包括:每个数据处理操作对本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/201510189154.html" title="一种主备库数据修复的方法以及装置原文来自X技术">主备库数据修复的方法以及装置</a>

【技术保护点】
一种主备库数据修复中主库的数据处理方法,其特征在于,包括:读取主库和备库之间存在差异的差异数据,每组差异数据在主库和备库至少存在一个对应的数据记录;确定每组差异数据的数据差异类型;所述数据差异类型包括第一数据差异类型和第二数据差异类型;所述第一数据差异类型包括:主库存在对应数据记录的差异数据的数据差异类型;所述第二数据差异类型包括:在主库不存在对应数据记录的差异数据的数据差异类型;若所述差异数据的数据差异类型为第一数据差异类型,则针对所述差异数据在主库中的数据记录执行更新操作;若所述差异数据的数据差异类型为第二数据差异类型,则在主库中执行插入所述差异数据的数据记录的操作;然后,针对主库中插入的所述差异数据的数据记录执行删除操作。

【技术特征摘要】
1.一种主备库数据修复中主库的数据处理方法,其特征在于,包括:读取主库和备库之间存在差异的差异数据,每组差异数据在主库和备库至少存在一个对应的数据记录;确定每组差异数据的数据差异类型;所述数据差异类型包括第一数据差异类型和第二数据差异类型;所述第一数据差异类型包括:主库存在对应数据记录的差异数据的数据差异类型;所述第二数据差异类型包括:在主库不存在对应数据记录的差异数据的数据差异类型;若所述差异数据的数据差异类型为第一数据差异类型,则针对所述差异数据在主库中的数据记录执行更新操作;若所述差异数据的数据差异类型为第二数据差异类型,则在主库中执行插入所述差异数据的数据记录的操作;然后,针对主库中插入的所述差异数据的数据记录执行删除操作。2.根据权利要求1所述的主备库数据修复中主库的数据处理方法,其特征在于,所述第一数据差异类型,包括以下两种子数据差异类型:在主库和备库都存在对应数据记录但其中包含的数据值不同的差异数据的数据差异类型;以及,主库存在而备库不存在对应数据记录的差异数据的数据差异类型。3.根据权利要求1所述的主备库数据修复中主库的数据处理方法,其特征在于,若所述差异数据的数据差异类型为第一数据差异类型,则针对所述差异数据在主库中的数据记录执行更新操作的步骤,包括:针对所述差异数据在主库中的数据记录,以所述差异数据在主库中的数据记录为依据,执行更新操作;将更新操作执行前所述差异数据在主库中的数据记录,更新操作执行后所述差异数据在主库中的数据记录,以及更新操作对应的数据更新标记写入二进制日志。4.根据权利要求1所述的主备库数据修复中主库的数据处理方法,其特征在于,若所述差异数据的数据差异类型为第二数据差异类型,则在主库中执行插入所述差异数据的数据记录的操作的步骤,包括:以所述差异数据的数据记录为依据,在主库中执行插入所述差异数据的数据记录的操作;将主库中插入的所述差异数据的数据记录,以及插入操作对应的数据插入标记写入二进制日志。5.根据权利要求1所述的主备库数据修复中主库的数据处理方法,其特征在于,若所述差异数据的数据差异类型为第二数据差异类型,则针对主库中插入的所述差异数据的数据记录执行删除操作的步骤,包括:删除所述差异数据的数据记录;将删除前所述差异数据在主库中的数据记录,以及删除操作对应的数据删除标记写入二进制日志。6.一种主备库数据修复中主库的数据处理装置,其特征在于,包括:差异数据读取单元,用于读取主库和备库之间存在差异的差异数据,每组差异数据在主库和备库至少存在一个对应的数据记录;数据差异类型确定单元,用于根据所述差异数据,确定每组差异数据的数据差异类型;所述数据差异类型包括第一数据差异类型和第二数据差异类型;所述第一数据差异类型包括:主库存在对应数据记录的差异数据的数据差异类型;所述第二数据差异类型包括:在主库不存在对应数据记录的差异数据的数据差异类型;若所述差异数据的数据差异类型为第一数据差异类型,则启动数据记录更新单元;所述数据记录更新单元,用于针对所述差异数据在主库中的数据记录执行更新操作;若所述差异数据的数据差异类型为第二数据差异类型,则依次启动数据记录插入单元和数据记录删除单元;所述数据记录插入单元,用于在主库中执行插入所述差异数据的数据记录的操作;所述数据记录删除单元,用于针对主库中插入的所述差异数据的数据记录执行删除操作。7.根据权利要求6所述的主备库数据修复中主库的数据处理装置,其特征在于,所述第一数据差异类型,包括以下两种子数据差异类型:在主库和备库都存在对应数据记录但其中包含的数据值不同的差异数据的
\t数据差异类型;以及,主库存在而备库不存在对应数据记录的差异数据的数据差异类型。8.根据权利要求6所述的主备库数据修复中主库的数据处理装置,其特征在于,所述数据记录更新单元,包括:数据记录更新子单元,用于针对所述差异数据在主库中的数据记录,以所述差异数据在主库中的数据记录为依...

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

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

1