CN105843702A - 一种用于数据备份的方法以及装置 - Google Patents

一种用于数据备份的方法以及装置 Download PDF

Info

Publication number
CN105843702A
CN105843702A CN201510019142.7A CN201510019142A CN105843702A CN 105843702 A CN105843702 A CN 105843702A CN 201510019142 A CN201510019142 A CN 201510019142A CN 105843702 A CN105843702 A CN 105843702A
Authority
CN
China
Prior art keywords
data
master library
verification
time
standby
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510019142.7A
Other languages
English (en)
Other versions
CN105843702B (zh
Inventor
施云亮
杜华兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510019142.7A priority Critical patent/CN105843702B/zh
Priority to TW104128642A priority patent/TWI683214B/zh
Priority to US14/994,596 priority patent/US10331699B2/en
Priority to PCT/US2016/013188 priority patent/WO2016115217A1/en
Publication of CN105843702A publication Critical patent/CN105843702A/zh
Application granted granted Critical
Publication of CN105843702B publication Critical patent/CN105843702B/zh
Priority to US16/412,105 priority patent/US11256715B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本申请公开了一种用于数据备份的方法,包括:向备库查询校验数据,其中,所述校验数据为在主库中插入的数据,且在将写入到主库中的数据通过日志方式备份至备库过程中,所述校验数据同时备份到备库中;获取该校验数据插入主库的时间,并将该时间作为完备时间点;将镜像数据中早于该完备时间点之前的数据记录删除;其中,所述镜像数据为在向主库中写入数据时,同步写入到设定存储空间的数据。所述用于数据备份的方法实现简单,成本较低,并且备份数据的安全性较高。

Description

一种用于数据备份的方法以及装置
技术领域
本申请涉及数据备份技术领域,具体涉及一种用于数据备份的方法。本申请同时涉及一种用于检测主备库数据差异的方法,一种用于数据备份的装置,以及一种用于检测主备库数据差异的装置。
背景技术
随着近几年来业务系统的高速发展,当前的数据库管理系统(DatabaseManagement System,DBMS)也随着客户的增加、业务的增长以及业务系统的交易数和交易复杂度的增长有了大规模的提升,同时也导致了DBMS中的数据变化更加频繁,DBMS的ACID(原子性Atomicity、一致性Consistency、隔离性Isolation和持久性Durability)实现,保证了DBMS中数据的稳定性和持久性。其中,持久性意味着在主机Host失效的时候,可以保证数据的持久一致。当前,DBMS采用的是开放的MySQL数据库产品,通过主备库进行异步数据复制来实现;主库(master)首先将数据的变化记录到二进制日志(binary log,binlog)中,binlog记录的是数据写入主库,或者主库中的数据发生改变的事件;备库(slave)将binlog中记录的事件复制到中继日志(relay log)中;slave执行relaylog中记录的事件,并以relay log中记录的数据更新自身存储的数据。在主备库进行异步数据复制的过程中,如果master突然出现异常,则可能会存在slave未能及时复制master中的数据,造成数据丢失。
目前,针对上述MySQL数据库主备库进行异步数据复制造成的数据丢失,主要的解决方案是基于MySQL数据库的半同步复制模式(Semi-synchronousReplication),所述半同步复制模式下设有一个master和至少一个slave,master执行完自身的某一事务后,设有一个延时等待,用于等待slave来执行该事务,直到有任意一个slave执行该事务,否则master会继续上述的延时等待,防止了由于master异常导致slave未能及时复制master中的数据造成的数据丢失。
上述提供的现有技术存在明显的缺陷,上述基于MySQL数据库的半同步复制模式,实现难度较大,并且在执行单条事务时增加了额外的延时等待,导致在备份数据时的耗时较长;此外,上述基于MySQL数据库的半同步复制模式,如果slave出现异常,则master无法接收slave发送的事务消息,master在延时等待结束之后,切换为异步复制模式,并一直处于异步复制模式,存在一定的缺陷。
发明内容
本申请提供一种用于数据备份的方法,以解决现有技术存在的数据备份耗时长和实现难度大的问题。本申请同时涉及一种用于检测主备库数据差异的方法,一种用于数据备份的装置,以及一种用于检测主备库数据差异的装置。
本申请提供一种用于数据备份的方法,包括:
向备库查询校验数据,其中,所述校验数据为在主库中插入的数据,且在将写入到主库中的数据通过日志方式备份至备库过程中,所述校验数据同时备份到备库中;
获取该校验数据插入主库的时间,并将该时间作为完备时间点;
将镜像数据中早于该完备时间点之前的数据记录删除;
其中,所述镜像数据为在向主库中写入数据时,同步写入到设定存储空间的数据。
可选的,所述校验数据为在主库中插入的数据,相应的,该校验数据插入主库的步骤,采用下述方式:
周期性的检测在预设的时间段内是否有数据写入主库;
若是,则检测主库中是否存在所述校验数据;
若存在,以替换主库中存储的校验数据的方式将该校验数据插入主库;
若不存在,则将该校验数据插入主库;
若否,则返回所述周期性的检测在预设的时间段内是否有数据写入主库的步骤。
可选的,所述写入到主库中的数据和校验数据,通过日志方式备份至备库,相应的,所述数据和校验数据通过日志方式备份至备库的步骤,采用下述方式:
将写入主库的数据和校验数据记录到二进制日志中;
将所述二进制日志中记录的数据事件复制到中继日志中;
执行所述中继日志中记录的数据事件,并以该中继日志中记录的数据和校验数据更新备库。
可选的,所述将镜像数据中早于该完备时间点之前的数据记录删除的步骤,包括:
获取所述镜像数据写入所述存储空间的时间;
将所述镜像数据写入所述存储空间的时间与所述完备时间点进行比较,获得该镜像数据中早于完备时间点之前的数据记录;
将所述镜像数据中早于完备时间点之前的数据记录删除。
可选的,所述获取该校验数据插入主库的时间的步骤,采用下述方式:
从所述校验数据中读取该校验数据插入主库的时间,并将该时间作为所述完备时间点。
可选的,所述获取该校验数据插入主库的时间的步骤,采用下述方式:
根据所述中继日志中记录的数据事件,从所述数据事件中读取所述校验数据插入主库的时间,并将该时间作为所述完备时间点。
可选的,所述镜像数据为在向主库中写入数据时,同步写入到设定存储空间的数据,相应的,所述数据同步写入到设定存储空间,采用下述任意一种方式:
将所述数据以本地存储的方式同步写入到设定存储空间;
将所述数据以远端存储的方式同步写入到设定存储空间。
可选的,所述存储空间包括内存和/或磁盘。
本申请另外提供一种用于检测主备库数据差异的方法,包括:
向备库查询校验数据,其中,所述校验数据为在主库中插入的数据,且在将写入到主库中的数据通过日志方式备份至备库过程中,所述校验数据同时备份到备库中;
获取该校验数据插入主库的时间,并将该时间作为完备时间点;
检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据;
若是,将所述写入主库的时间晚于所述完备时间点的数据视为主库和备库之间存在差异的数据。
可选的,所述检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据的步骤,包括:
周期性的检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据;
若是,则检测该写入主库的时间晚于所述完备时间点之后的数据在备库中是否存在;
若存在,则主库和备库之间没有存在差异的数据;
若不存在,则将所述写入主库的时间晚于所述完备时间点之后的数据视为主库和备库之间存在差异的数据。
本申请另外提供一种用于数据备份的装置,包括:
校验数据查询单元,用于向备库查询校验数据,其中,所述校验数据为在主库中插入的数据,且在将写入到主库中的数据通过日志方式备份至备库过程中,所述校验数据同时备份到备库中;
完备时间点获取单元,用于获取该校验数据插入主库的时间,并将该时间作为完备时间点;
数据记录删除单元,用于将镜像数据中早于该完备时间点之前的数据记录删除;
其中,所述镜像数据为在向主库中写入数据时,同步写入到设定存储空间的数据。
可选的,所述校验数据为在主库中插入的数据,相应的,该校验数据通过下述单元插入主库:
数据写入检测单元,用于周期性的检测在预设的时间段内是否有数据写入主库;
若是,则进入校验数据检测单元;
若否,则返回所述数据写入检测单元;
所述校验数据检测单元,用于检测主库中是否存在所述校验数据;
若存在,以替换主库中存储的校验数据的方式将该校验数据插入主库;
若不存在,则将该校验数据插入主库。
可选的,所述写入到主库中的数据和校验数据,通过日志方式备份至备库,相应的,所述数据和校验数据通过下述单元备份至备库:
数据写入单元,用于将写入主库的数据和校验数据记录到二进制日志中;
数据复制单元,用于将所述二进制日志中记录的数据事件复制到中继日志中;
数据更新单元,用于执行所述中继日志中记录的数据事件,并以该中继日志中记录的数据和校验数据更新备库。
可选的,所述数据记录删除单元,包括:
数据写入时间获取子单元,用于获取所述镜像数据写入所述存储空间的时间;
数据比较子单元,用于将所述镜像数据写入所述存储空间的时间与所述完备时间点进行比较,获得该镜像数据中早于完备时间点之前的数据记录;
数据删除子单元,用于将所述镜像数据中早于完备时间点之前的数据记录删除。
本申请另外提供一种用于检测主备库数据差异的装置,包括:
校验数据查询单元,用于向备库查询校验数据,其中,所述校验数据为在主库中插入的数据,且在将写入到主库中的数据通过日志方式备份至备库过程中,所述校验数据同时备份到备库中;
完备时间点获取单元,用于获取该校验数据插入主库的时间,并将该时间作为完备时间点;
数据检测单元,用于检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据;
若是,则进入差异数据生成单元;
所述差异数据生成单元,用于将所述写入主库的时间晚于所述完备时间点的数据视为主库和备库之间存在差异的数据。
可选的,所述数据检测单元,包括:
第一数据检测子单元,用于周期性的检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据;
若是,则进入第二数据检测子单元;
所述第二数据检测子单元,用于检测该写入主库的时间晚于所述完备时间点之后的数据在备库中是否存在;
若存在,则主库和备库之间没有存在差异的数据;
若不存在,则将所述写入主库的时间晚于所述完备时间点之后的数据视为主库和备库之间存在差异的数据。
与现有技术相比,本申请具有以下优点:
本申请所述的用于数据备份的方法,包括:向备库查询校验数据,其中,所述校验数据为在主库中插入的数据,且在将写入到主库中的数据通过日志方式备份至备库过程中,所述校验数据同时备份到备库中;获取该校验数据插入主库的时间,并将该时间作为完备时间点;将镜像数据中早于该完备时间点之前的数据记录删除;其中,所述镜像数据为在向主库中写入数据时,同步写入到设定存储空间的数据。
本申请所述的用于数据备份的方法,将数据备份到主库,并同时将所述数据以完整镜像的方式备份到独立于主库存储之外的存储空间,形成镜像数据,主库的数据通过日志的方式备份到备库,形成另外一个数据的备份,通过周期性的向主库插入校验数据,以及周期性的向备库查询所述校验数据在检测主库和备库之间重复的数据,将所述镜像数据中所述主库和备库之间重复的数据删除,使所述镜像数据和所述备库中的数据组成一个完整的数据备份,实现简单,成本较低,并且备份数据的安全性较高。
附图说明
图1是本申请实施例提供的一种用于数据备份的方法处理流程图;
图2是本申请实施例提供的一种用于检测主备库数据差异的方法处理流程图;
图3是本申请实施例提供的一种用于数据备份的装置示意图;
图4是本申请实施例提供的一种用于检测主备库数据差异的装置示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请提供一种用于数据备份的方法,此外,本申请还提供一种用于检测主备库数据差异的方法,一种用于数据备份的装置,以及一种用于检测主备库数据差异的装置。
本申请提供的一种用于数据备份的方法实施例如下:
参照图1,其示出了本实施例提供的一种用于数据备份的方法处理流程图。
以下结合图1对本实施例提供的一种用于数据备份的方法进行说明,并且对该方法的各个步骤进行说明;此外,本实施例提供的一种用于数据备份的方法的具体步骤之间的顺序关系请根据图1确定。
步骤S101,向备库查询校验数据。
本实施例以一种基于MySQL数据库的用于数据备份的方法为例,对本申请提供的所述用于数据备份的方法进行说明;因此,本实施例中,所述主库和备库是指MySQL数据库。
除此之外,还可以基于其他的数据库平台对本申请提供的用于数据备份的方法进行说明,在此不作限定。
所述校验数据,是指在主库中插入的数据,其中包含有特定的信息,区别于所述数据(即:待备份的数据)。
需要说明的是,在本步骤所述的向备库查询校验数据之前,包括将所述校验数据插入主库的步骤,具体实现如下:
1)周期性的检测在预设的时间段内是否有数据写入主库;
所述数据,是指待备份的数据,是由应用程序被业务系统调用后产生的有用数据,例如用户信息、交易信息等。
上述检测过程中设置周期的目的是为了减少数据的处理量,比如在深夜或者凌晨时,数据比较少,此时,校验数据的插入主库的频率大大降低。通过设置检测的周期,能够避免特殊情形下频繁将所述校验数据插入主库造成的系统资源的浪费。
若是,进入下述步骤2),检测主库中是否存在所述校验数据;
若否,则重复该步骤,返回所述周期性的检测在预设的时间段内是否有数据写入主库的步骤。
除此之外,上述周期性的检测在预设的时间段内是否有数据插入主库的步骤还可以通过其他方法实现,比如检测在特定时间段内是否有数据写入主库,在此不作限定。
2)检测主库中是否存在所述校验数据;
若存在,以替换主库中存储的校验数据的方式将该校验数据插入主库;
若不存在,则将该校验数据插入主库;
本实施例是以覆盖替换的方式在主库中插入所述校验数据;因此,在所述校验数据插入主库之前,需要进行检测,检测主库中是否存在所述校验数据,如果检测到主库中存在校验数据,则以替换主库中存储的校验数据的方式将该数据插入主库即可;如果检测到主库中不存在校验数据,则表明该校验数据是首次插入主库中,或者主库出现异常,则直接将该校验数据插入主库即可。
此外,需要说明的是,在本步骤所述的向备库查询校验数据之前,还包括:基于MySQL数据库的主备库异步复制原理,将主库中存储的数据和校验数据通过日志方式备份至备库,具体实现如下:
将写入主库的数据和校验数据记录到binlog中;
将所述binlog中记录的数据事件复制到relay log中;
执行所述relay log中记录的数据事件,并以该relay log中记录的数据和校验数据更新备库。
上述将主库中存储的数据和校验数据复制到备库的过程中,需要花费一定的时间,基于此,当主库突然出现异常时,很可能造成主库中的数据和/或校验数据并未全部复制到备库中,导致备库中的数据和/或校验数据缺失。
本发明正是为了解决这个缺陷,在将数据写入到主库的过程中,同时将该数据写入到设定存储空间中,生成该数据的一个镜像数据。
具体的,本实施例中,将数据进行序列化,序列化为可存储的数据格式之后,将数据写入到计算机本地的存储空间中,生成该数据的一个镜像数据;其中,所述存储空间包括内存、磁盘,以及内存与磁盘二者的组合。
除此之外,还可以将该据存储到远端服务器的存储空间中,或者存储到云存储空间中,在此不做限定。
步骤S102,获取该校验数据插入主库的时间,并将该时间作为完备时间点。
本步骤得以实施的前提是上述步骤S101中,在备库中查询到所述校验数据。
根据上述步骤S101在备库中查询到的所述校验数据,获取该校验数据插入主库的时间,并将该时间作为完备时间点,具体实现如下:
在备库的数据表中找到包含有该校验数据的relay log,根据所述relay log中记录的数据事件,从所述数据事件中读该校验数据插入主库的时间,并将该校验数据插入主库的时间作为所述完备时间点。
除此之外,上述获取该校验数据插入主库的时间的步骤还可以采用其他方法实现,比如从所述校验数据自身包含的时间信息中读取该校验数据插入主库的时间,并将该时间作为所述完备时间,在此不做限定。
步骤S103,将镜像数据中早于该完备时间点之前的数据记录删除。
上述步骤S101,向备库查询校验数据,上述步骤S102,获取所述完备时间点,本步骤中,将所述镜像数据和备库二者存储的数据中相互重复的部分数据删除,即:将镜像数据中早于该完备时间点之前的数据记录删除,具体实现如下:
1)获取所述镜像数据写入所述存储空间的时间;
所述镜像数据写入所述存储空间的时间,是指所述数据写入计算机本地的存储空间时的时间。
2)将所述镜像数据写入所述存储空间的时间与所述完备时间点进行比较,获得该镜像数据中早于完备时间点之前的数据记录;
3)将所述镜像数据中早于完备时间点之前的数据记录删除。
此处,基于上述步骤1)、2)和3),存在两种情况:
一是备库中的日志数据与主库中的日志数据相比,没有缺失;由于数据写入主库和写入所述存储空间是同步的,此时,所述完备时间点为插入主库的时间最晚的一个校验数据插入主库的时间,即:所述存储空间中的镜像数据全部都是完备时间点之前的数据,则将所述镜像数据中早于完备时间点之前的数据记录删除,即:删除存储空间中存储的全部镜像数据;
二是备库中的日志数据与主库中的日志数据相比,有一定的缺失;此时,存储空间的镜像数据中在完备时间点之前的数据为存储空间和备库二者之间重复的数据,则将存储空间中存储的镜像数据中在所述完备时间点之前的数据删除即可。
除此之外,上述将镜像数据中早于该完备时间点之前的数据记录删除的步骤还可以采用其他方法实现,在此不作限定。
本申请提供的一种用于检测主备库数据差异的方法实施例如下:
参照图2,其示出了本实施例提供的一种用于检测主备库数据差异的方法处理流程图。
以下结合图2对本实施例提供的一种用于检测主备库数据差异的方法进行说明,并且对该方法的各个步骤进行说明;此外,本实施例提供的一种用于检测主备库数据差异的方法的具体步骤之间的顺序关系请根据图2确定。
步骤S201,向备库查询校验数据。
本实施例以一种基于MySQL数据库的用于数据备份的方法为例,对本申请提供的所述用于数据备份的方法进行说明;因此,本实施例中,所述主库和备库是指MySQL数据库。
除此之外,还可以基于其他的数据库平台对本申请提供的用于数据备份的方法进行说明,在此不作限定。
所述校验数据,是指在主库中插入的数据,其中包含有特定的信息,区别于所述数据(即:待备份的数据)。
需要说明的是,在本步骤所述的向备库查询校验数据之前,包括将所述校验数据插入主库的步骤,具体实现如下:
1)周期性的检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据;
所述数据,是指待备份的数据,是由应用程序被业务系统调用后产生的有用数据,例如用户信息、交易信息等。
若是,进入下述步骤2),检测该写入主库的时间晚于所述完备时间点之后的数据在备库中是否存在;
若否,则重复该步骤,返回所述周期性的检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据的步骤。
除此之外,上述周期性的检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据的步骤还可以通过其他方法实现,比如在特定时间段检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据,在此不作限定。
2)检测该写入主库的时间晚于所述完备时间点之后的数据在备库中是否存在;
若存在,则表明主库和备库之间没有存在差异的数据;
若不存在,则将所述写入主库的时间晚于所述完备时间点之后的数据视为主库和备库之间存在差异的数据。
此外,需要说明的是,在本步骤所述的向备库查询校验数据之前,还包括:基于MySQL数据库的主备库异步复制原理,将主库中存储的将待备份的数据以及所述验证数据通过日志方式备份至备库,具体实现如下:
将写入主库的数据和校验数据记录到binlog中;
将所述binlog中记录的数据事件复制到relay log中;
执行所述relay log中记录的数据事件,并以该relay log中记录的数据和校验数据更新备库。
此处,需要说明的是,上述将主库中的数据和校验数据复制到备库中,需要花费一定的时间,基于此,当主库突然出现异常时,很可能造成主库中的数据和校验数据并未全部复制到备库中,备库中的数据和校验数据存在缺失,本发明正是基于此来检测主库和备库之间的数据的差异。
步骤S202,获取该校验数据插入主库的时间,并将该时间作为完备时间点。
本步骤得以实施的前提是上述步骤S201中,在备库中查询到所述校验数据;
根据上述步骤S201在备库中查询到的所述校验数据,获取该校验数据插入主库的时间,并将该时间作为完备时间点,具体实现如下:
在备库的数据表中找到包含有该校验数据的relay log,根据所述relay log中记录的数据事件,从所述数据事件中读该校验数据插入主库的时间,并将该校验数据插入主库的时间作为所述完备时间点。
除此之外,上述获取该校验数据插入主库的时间的步骤还可以采用其他方法实现,比如从所述校验数据中读取该校验数据插入主库的时间,并将该时间作为所述完备时间,在此不做限定。
步骤S203,检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据。
上述步骤S201,向备库查询校验数据,上述步骤S202,获取所述完备时间点,本步骤中,检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据,即:检测主库和备库之间是否有存在差异的数据。
在上述步骤S201中所述周期的时间间隔足够短的情况下,如果检测到主库中存在写入主库的时间晚于所述完备时间点之后的数据,则表明主库和备库之间有存在差异的数据,进入下述步骤S204;
如果检测到主库中不存在写入主库的时间晚于所述完备时间点之后的数据,则表明主库和备库之间的数据完全相同,主库和备库之间没有存在差异的数据。
步骤S204,将所述写入主库的时间晚于所述完备时间点的数据视为主库和备库之间存在差异的数据。
本步骤得以实施的前提是,上述步骤S103中检测到主库中存在写入主库的时间晚于所述完备时间点之后的数据。
在上述步骤S201中所述周期的时间间隔足够短的情况下,如果检测到主库中存在写入主库的时间晚于所述完备时间点之后的数据,则表明由于主备库异步复制的时间延时,使主库和备库之间有一部分存在差异的数据,该部分存在差异的数据在主库中存在,但是还未来得及复制到备库中,将该部分存在差异的数据作为主库和备库之间存在差异的数据。
本申请提供的一种用于数据备份的装置实施例如下:
在上述的实施例中,提供了一种用于数据备份的方法,与之相对应的,本申请提供了一种用于数据备份的装置,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述方法实施例对应说明即可。下述描述的装置实施例仅仅是示意性的。
参照图3,其示出了根据本实施例提供的一种用于数据备份的装置示意图。
本申请提供的一种用于数据备份的装置,包括:
校验数据查询单元301,用于向备库查询校验数据,其中,所述校验数据为在主库中插入的数据,且在将写入到主库中的数据通过日志方式备份至备库过程中,所述校验数据同时备份到备库中;
完备时间点获取单元302,用于获取该校验数据插入主库的时间,并将该时间作为完备时间点;
数据记录删除单元303,用于将镜像数据中早于该完备时间点之前的数据记录删除;
其中,所述镜像数据为在向主库中写入数据时,同步写入到设定存储空间的数据。
可选的,所述校验数据为在主库中插入的数据,相应的,该校验数据通过下述单元插入主库:
数据写入检测单元,用于周期性的检测在预设的时间段内是否有数据写入主库;
若是,则进入校验数据检测单元;
若否,则返回所述数据写入检测单元;
所述校验数据检测单元,用于检测主库中是否存在所述校验数据;
若存在,以替换主库中存储的校验数据的方式将该校验数据插入主库;
若不存在,则将该校验数据插入主库。
可选的,所述写入到主库中的数据和校验数据,通过日志方式备份至备库,相应的,所述数据和校验数据通过下述单元备份至备库:
数据写入单元,用于将写入主库的数据和校验数据记录到二进制日志中;
数据复制单元,用于将所述二进制日志中记录的数据事件复制到中继日志中;
数据更新单元,用于执行所述中继日志中记录的数据事件,并以该中继日志中记录的数据和校验数据更新备库。
可选的,所述数据记录删除单元303,包括:
数据写入时间获取子单元,用于获取所述镜像数据写入所述存储空间的时间;
数据比较子单元,用于将所述镜像数据写入所述存储空间的时间与所述完备时间点进行比较,获得该镜像数据中早于完备时间点之前的数据记录;
数据删除子单元,用于将所述镜像数据中早于完备时间点之前的数据记录删除。
本申请提供的一种用于检测主备库数据差异的装置实施例如下:
在上述的实施例中,提供了一种用于检测主备库数据差异的方法,与之相对应的,本申请提供了一种用于检测主备库数据差异的装置,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述方法实施例对应说明即可。下述描述的装置实施例仅仅是示意性的。
参照图4,其示出了根据本实施例提供的一种用于检测主备库数据差异的装置示意图。
本申请提供的一种用于检测主备库数据差异的装置,包括:
校验数据查询单元401,用于向备库查询校验数据,其中,所述校验数据为在主库中插入的数据,且在将写入到主库中的数据通过日志方式备份至备库过程中,所述校验数据同时备份到备库中;
完备时间点获取单元402,用于获取该校验数据插入主库的时间,并将该时间作为完备时间点;
数据检测单元403,用于检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据;
若是,则进入差异数据生成单元;
所述差异数据生成单元404,用于将所述写入主库的时间晚于所述完备时间点的数据视为主库和备库之间存在差异的数据。
可选的,所述数据检测单元403,包括:
第一数据检测子单元,用于周期性的检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据;
若是,则进入第二数据检测子单元;
所述第二数据检测子单元,用于检测该写入主库的时间晚于所述完备时间点之后的数据在备库中是否存在;
若存在,则主库和备库之间没有存在差异的数据;
若不存在,则将所述写入主库的时间晚于所述完备时间点之后的数据视为主库和备库之间存在差异的数据。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (16)

1.一种用于数据备份的方法,其特征在于,包括:
向备库查询校验数据,其中,所述校验数据为在主库中插入的数据,且在将写入到主库中的数据通过日志方式备份至备库过程中,所述校验数据同时备份到备库中;
获取该校验数据插入主库的时间,并将该时间作为完备时间点;
将镜像数据中早于该完备时间点之前的数据记录删除;
其中,所述镜像数据为在向主库中写入数据时,同步写入到设定存储空间的数据。
2.根据权利要求1所述的用于数据备份的方法,其特征在于,所述校验数据为在主库中插入的数据,相应的,该校验数据插入主库的步骤,采用下述方式:
周期性的检测在预设的时间段内是否有数据写入主库;
若是,则检测主库中是否存在所述校验数据;
若存在,以替换主库中存储的校验数据的方式将该校验数据插入主库;
若不存在,则将该校验数据插入主库;
若否,则返回所述周期性的检测在预设的时间段内是否有数据写入主库的步骤。
3.根据权利要求1所述的用于数据备份的方法,其特征在于,所述写入到主库中的数据和校验数据,通过日志方式备份至备库,相应的,所述数据和校验数据通过日志方式备份至备库的步骤,采用下述方式:
将写入主库的数据和校验数据记录到二进制日志中;
将所述二进制日志中记录的数据事件复制到中继日志中;
执行所述中继日志中记录的数据事件,并以该中继日志中记录的数据和校验数据更新备库。
4.根据权利要求1所述的用于数据备份的方法,其特征在于,所述将镜像数据中早于该完备时间点之前的数据记录删除的步骤,包括:
获取所述镜像数据写入所述存储空间的时间;
将所述镜像数据写入所述存储空间的时间与所述完备时间点进行比较,获得该镜像数据中早于完备时间点之前的数据记录;
将所述镜像数据中早于完备时间点之前的数据记录删除。
5.根据权利要求1所述的用于数据备份的方法,其特征在于,所述获取该校验数据插入主库的时间的步骤,采用下述方式:
从所述校验数据中读取该校验数据插入主库的时间,并将该时间作为所述完备时间点。
6.根据权利要求3所述的用于数据备份的方法,其特征在于,所述获取该校验数据插入主库的时间的步骤,采用下述方式:
根据所述中继日志中记录的数据事件,从所述数据事件中读取所述校验数据插入主库的时间,并将该时间作为所述完备时间点。
7.根据权利要求1所述的用于数据备份的方法,其特征在于,所述镜像数据为在向主库中写入数据时,同步写入到设定存储空间的数据,相应的,所述数据同步写入到设定存储空间,采用下述任意一种方式:
将所述数据以本地存储的方式同步写入到设定存储空间;
将所述数据以远端存储的方式同步写入到设定存储空间。
8.根据权利要求7所述的用于数据备份的方法,其特征在于,所述存储空间包括内存和/或磁盘。
9.一种用于检测主备库数据差异的方法,其特征在于,包括:
向备库查询校验数据,其中,所述校验数据为在主库中插入的数据,且在将写入到主库中的数据通过日志方式备份至备库过程中,所述校验数据同时备份到备库中;
获取该校验数据插入主库的时间,并将该时间作为完备时间点;
检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据;
若是,将所述写入主库的时间晚于所述完备时间点的数据视为主库和备库之间存在差异的数据。
10.根据权利要求9所述的用于检测主备库数据差异的方法,其特征在于,所述检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据的步骤,包括:
周期性的检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据;
若是,则检测该写入主库的时间晚于所述完备时间点之后的数据在备库中是否存在;
若存在,则主库和备库之间没有存在差异的数据;
若不存在,则将所述写入主库的时间晚于所述完备时间点之后的数据视为主库和备库之间存在差异的数据。
11.一种用于数据备份的装置,其特征在于,包括:
校验数据查询单元,用于向备库查询校验数据,其中,所述校验数据为在主库中插入的数据,且在将写入到主库中的数据通过日志方式备份至备库过程中,所述校验数据同时备份到备库中;
完备时间点获取单元,用于获取该校验数据插入主库的时间,并将该时间作为完备时间点;
数据记录删除单元,用于将镜像数据中早于该完备时间点之前的数据记录删除;
其中,所述镜像数据为在向主库中写入数据时,同步写入到设定存储空间的数据。
12.根据权利要求11所述的用于数据备份的装置,其特征在于,所述校验数据为在主库中插入的数据,相应的,该校验数据通过下述单元插入主库:
数据写入检测单元,用于周期性的检测在预设的时间段内是否有数据写入主库;
若是,则进入校验数据检测单元;
若否,则返回所述数据写入检测单元;
所述校验数据检测单元,用于检测主库中是否存在所述校验数据;
若存在,以替换主库中存储的校验数据的方式将该校验数据插入主库;
若不存在,则将该校验数据插入主库。
13.根据权利要求11所述的用于数据备份的装置,其特征在于,所述写入到主库中的数据和校验数据,通过日志方式备份至备库,相应的,所述数据和校验数据通过下述单元备份至备库:
数据写入单元,用于将写入主库的数据和校验数据记录到二进制日志中;
数据复制单元,用于将所述二进制日志中记录的数据事件复制到中继日志中;
数据更新单元,用于执行所述中继日志中记录的数据事件,并以该中继日志中记录的数据和校验数据更新备库。
14.根据权利要求11所述的用于数据备份的装置,其特征在于,所述数据记录删除单元,包括:
数据写入时间获取子单元,用于获取所述镜像数据写入所述存储空间的时间;
数据比较子单元,用于将所述镜像数据写入所述存储空间的时间与所述完备时间点进行比较,获得该镜像数据中早于完备时间点之前的数据记录;
数据删除子单元,用于将所述镜像数据中早于完备时间点之前的数据记录删除。
15.一种用于检测主备库数据差异的装置,其特征在于,包括:
校验数据查询单元,用于向备库查询校验数据,其中,所述校验数据为在主库中插入的数据,且在将写入到主库中的数据通过日志方式备份至备库过程中,所述校验数据同时备份到备库中;
完备时间点获取单元,用于获取该校验数据插入主库的时间,并将该时间作为完备时间点;
数据检测单元,用于检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据;
若是,则进入差异数据生成单元;
所述差异数据生成单元,用于将所述写入主库的时间晚于所述完备时间点的数据视为主库和备库之间存在差异的数据。
16.根据权利要求15所述的用于检测主备库数据差异的装置,其特征在于,所述数据检测单元,包括:
第一数据检测子单元,用于周期性的检测主库中是否存在写入主库的时间晚于所述完备时间点之后的数据;
若是,则进入第二数据检测子单元;
所述第二数据检测子单元,用于检测该写入主库的时间晚于所述完备时间点之后的数据在备库中是否存在;
若存在,则主库和备库之间没有存在差异的数据;
若不存在,则将所述写入主库的时间晚于所述完备时间点之后的数据视为主库和备库之间存在差异的数据。
CN201510019142.7A 2015-01-14 2015-01-14 一种用于数据备份的方法以及装置 Active CN105843702B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201510019142.7A CN105843702B (zh) 2015-01-14 2015-01-14 一种用于数据备份的方法以及装置
TW104128642A TWI683214B (zh) 2015-01-14 2015-08-31 用於資料備份的方法及裝置
US14/994,596 US10331699B2 (en) 2015-01-14 2016-01-13 Data backup method and apparatus
PCT/US2016/013188 WO2016115217A1 (en) 2015-01-14 2016-01-13 Data backup method and apparatus
US16/412,105 US11256715B2 (en) 2015-01-14 2019-05-14 Data backup method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510019142.7A CN105843702B (zh) 2015-01-14 2015-01-14 一种用于数据备份的方法以及装置

Publications (2)

Publication Number Publication Date
CN105843702A true CN105843702A (zh) 2016-08-10
CN105843702B CN105843702B (zh) 2019-04-12

Family

ID=56367715

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510019142.7A Active CN105843702B (zh) 2015-01-14 2015-01-14 一种用于数据备份的方法以及装置

Country Status (4)

Country Link
US (2) US10331699B2 (zh)
CN (1) CN105843702B (zh)
TW (1) TWI683214B (zh)
WO (1) WO2016115217A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407356A (zh) * 2016-09-07 2017-02-15 网易(杭州)网络有限公司 一种数据备份方法及装置
CN108804463A (zh) * 2017-05-03 2018-11-13 杭州海康威视数字技术股份有限公司 一种MySQL数据库的数据同步方法、装置及电子设备
CN109164985A (zh) * 2018-08-27 2019-01-08 华为技术有限公司 用于复制数据的方法、主设备以及从设备
CN109460318A (zh) * 2018-10-26 2019-03-12 珠海市时杰信息科技有限公司 一种可回滚档案采集数据的导入方法、计算机装置及计算机可读存储介质
CN109753222A (zh) * 2017-11-01 2019-05-14 腾讯科技(深圳)有限公司 数据删除方法、服务器及计算机可读介质
CN111694894A (zh) * 2020-04-26 2020-09-22 中国建设银行股份有限公司 对数据同步进行监控的方法、服务器、设备和存储介质
WO2021168697A1 (zh) * 2020-02-26 2021-09-02 深圳市欢太科技有限公司 数据同步方法、装置、数据存储系统及计算机可读介质
CN114817230A (zh) * 2022-06-29 2022-07-29 深圳市乐易网络股份有限公司 一种数据流过滤方法及系统

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10628444B1 (en) * 2016-06-24 2020-04-21 EMC IP Holding Company LLC Incremental backup operations for on-line availability groups
CN109033127B (zh) * 2018-05-31 2021-10-29 创新先进技术有限公司 一种同步数据校验方法、装置以及设备
CN112685331B (zh) * 2019-10-17 2024-03-29 伊姆西Ip控股有限责任公司 用于存储管理的方法、设备和计算机程序产品
CN111339200B (zh) * 2020-02-28 2024-07-26 中国平安人寿保险股份有限公司 一种基于数据库同步的数据校验方法及数据校验系统
CN111680010B (zh) * 2020-08-14 2020-12-22 北京东方通软件有限公司 适用于JavaEE应用服务器的日志系统的设计方法
CN112631839B (zh) * 2020-12-31 2024-08-06 中国农业银行股份有限公司 一种实现数据备份的方法、装置及设备
CN113766027B (zh) * 2021-09-09 2023-09-26 瀚高基础软件股份有限公司 一种流复制集群节点转发数据的方法及设备
US20230081785A1 (en) * 2021-09-10 2023-03-16 Huawei Technologies Co., Ltd. Data sending method and apparatus, data receiving method, apparatus, and system, and medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070016632A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. System and method for synchronizing between a user device and a server in a communication network
CN101706795A (zh) * 2009-11-30 2010-05-12 上海世范软件技术有限公司 主备服务器上数据库数据同步方法
CN103780638A (zh) * 2012-10-18 2014-05-07 腾讯科技(深圳)有限公司 数据同步方法及系统
US20140281257A1 (en) * 2013-03-13 2014-09-18 International Business Machines Corporation Caching Backed-Up Data Locally Until Successful Replication
CN104216802A (zh) * 2014-09-25 2014-12-17 北京金山安全软件有限公司 一种内存数据库恢复方法和设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5255388A (en) 1990-09-26 1993-10-19 Honeywell Inc. Synchronizing slave processors through eavesdrop by one on a write request message directed to another followed by comparison of individual status request replies
FI105870B (fi) 1997-03-21 2000-10-13 Nokia Networks Oy Menetelmä masterkeskuksen ja varakeskuksen datan epäkonsistenttiuden estämiseksi
JP2000322326A (ja) * 1999-05-14 2000-11-24 Sharp Corp バックアップメモリの情報管理方法
US7054910B1 (en) * 2001-12-20 2006-05-30 Emc Corporation Data replication facility for distributed computing environments
US7028155B2 (en) * 2003-04-22 2006-04-11 Hewlett-Packard Development Company, L.P. Master-slave data management system and method
US7366859B2 (en) 2005-10-06 2008-04-29 Acronis Inc. Fast incremental backup method and system
US7941404B2 (en) 2006-03-08 2011-05-10 International Business Machines Corporation Coordinated federated backup of a distributed application environment
JP4295326B2 (ja) * 2007-01-10 2009-07-15 株式会社日立製作所 計算機システム
KR100926880B1 (ko) * 2007-05-21 2009-11-16 엔에이치엔(주) Dbms에서의 데이터 복제 방법 및 시스템
CN103927236B (zh) * 2013-01-11 2018-01-16 深圳市腾讯计算机系统有限公司 在线校验方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070016632A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. System and method for synchronizing between a user device and a server in a communication network
CN101706795A (zh) * 2009-11-30 2010-05-12 上海世范软件技术有限公司 主备服务器上数据库数据同步方法
CN103780638A (zh) * 2012-10-18 2014-05-07 腾讯科技(深圳)有限公司 数据同步方法及系统
US20140281257A1 (en) * 2013-03-13 2014-09-18 International Business Machines Corporation Caching Backed-Up Data Locally Until Successful Replication
CN104216802A (zh) * 2014-09-25 2014-12-17 北京金山安全软件有限公司 一种内存数据库恢复方法和设备

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407356A (zh) * 2016-09-07 2017-02-15 网易(杭州)网络有限公司 一种数据备份方法及装置
CN108804463A (zh) * 2017-05-03 2018-11-13 杭州海康威视数字技术股份有限公司 一种MySQL数据库的数据同步方法、装置及电子设备
CN109753222A (zh) * 2017-11-01 2019-05-14 腾讯科技(深圳)有限公司 数据删除方法、服务器及计算机可读介质
CN109753222B (zh) * 2017-11-01 2021-03-26 腾讯科技(深圳)有限公司 数据删除方法、服务器及计算机可读介质
CN109164985A (zh) * 2018-08-27 2019-01-08 华为技术有限公司 用于复制数据的方法、主设备以及从设备
CN109460318A (zh) * 2018-10-26 2019-03-12 珠海市时杰信息科技有限公司 一种可回滚档案采集数据的导入方法、计算机装置及计算机可读存储介质
WO2021168697A1 (zh) * 2020-02-26 2021-09-02 深圳市欢太科技有限公司 数据同步方法、装置、数据存储系统及计算机可读介质
CN111694894A (zh) * 2020-04-26 2020-09-22 中国建设银行股份有限公司 对数据同步进行监控的方法、服务器、设备和存储介质
CN114817230A (zh) * 2022-06-29 2022-07-29 深圳市乐易网络股份有限公司 一种数据流过滤方法及系统

Also Published As

Publication number Publication date
WO2016115217A1 (en) 2016-07-21
US10331699B2 (en) 2019-06-25
US20160203201A1 (en) 2016-07-14
TWI683214B (zh) 2020-01-21
US20190266177A1 (en) 2019-08-29
US11256715B2 (en) 2022-02-22
TW201640346A (zh) 2016-11-16
CN105843702B (zh) 2019-04-12

Similar Documents

Publication Publication Date Title
CN105843702A (zh) 一种用于数据备份的方法以及装置
US8250033B1 (en) Replication of a data set using differential snapshots
US10430298B2 (en) Versatile in-memory database recovery using logical log records
CN102917072B (zh) 用于数据服务器集群之间进行数据迁移的设备、系统及方法
US7885922B2 (en) Apparatus and method for creating a real time database replica
CN108509462B (zh) 一种同步活动事务表的方法及装置
CN110019066A (zh) 数据库处理方法及装置、系统
US10210055B2 (en) Method and system for data storage upon database failure
CN105574187B (zh) 一种异构数据库复制事务一致性保障方法及系统
US10726042B2 (en) Replication control using eventually consistent meta-data
US20140156671A1 (en) Index Constructing Method, Search Method, Device and System
CN109144416B (zh) 查询数据的方法和装置
US20160147569A1 (en) Distributed technique for allocating long-lived jobs among worker processes
CN112131237A (zh) 数据同步方法、装置、设备及计算机可读介质
CN104750755B (zh) 一种数据库主备切换后的数据回补方法及系统
CN104881418B (zh) 用于MySQL的快速回收回滚空间的方法和装置
CN103973727B (zh) 数据同步方法及装置
KR20190026846A (ko) 데이터베이스 데이터 수정 요청 처리 방법 및 장치
US11687533B2 (en) Centralized storage for search servers
CN106339387A (zh) 一种数据库集群中新增服务器的数据同步方法及装置
CN105955989A (zh) 一种云平台数据库主从服务器的建立方法
CN105574026A (zh) 非关系型数据库支持事务的方法及装置
CN115658391A (zh) 基于QianBase MPP数据库的WAL机制的备份恢复方法
CN105659214B (zh) 数据单元集合的检查点设置
CN115408394A (zh) 一种数据存储方法和相关装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.