CN104881336A - 数据备份方法及装置 - Google Patents
数据备份方法及装置 Download PDFInfo
- Publication number
- CN104881336A CN104881336A CN201510267127.4A CN201510267127A CN104881336A CN 104881336 A CN104881336 A CN 104881336A CN 201510267127 A CN201510267127 A CN 201510267127A CN 104881336 A CN104881336 A CN 104881336A
- Authority
- CN
- China
- Prior art keywords
- data
- backup
- database
- object library
- clone
- 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.)
- Pending
Links
Abstract
本发明提供了一种数据库的数据备份方法及装置。该方法包括:在所述数据库为业务提供服务期间,接收所述数据库需进行数据备份的备份指令;调用所述数据库自身具备的克隆指令,对所述数据库的数据进行克隆;将克隆得到的数据备份至目标库。采用本发明能够实现业务的无缝衔接,大大提高了业务的抗灾能力和鲁棒性,提高业务对用户的服务感受。
Description
技术领域
本发明涉及计算机领域,特别是涉及数据备份方法及装置。
背景技术
MongoDB是一种当前比较常用的分布式数据库,主要用于为业务提供服务或支持。为业务提供的服务或支持需具备实时性,以保持业务的在线状态,因此MongoDB需要一直保持服务/支持的提供状态,而不能关闭。一旦MongoDB关闭,会造成业务中断,影响业务以及用户感受。
然而,MongoDB在使用过程中需要对数据进行备份,现有的备份方式如下:
1、关闭MongoDB,中断运行中的业务,拷贝所有数据,待数据拷贝完成后在本地重启MongoDB;
2、为MongoDB提供额外的隐藏数据节点,将数据导入到隐藏数据节点中。
对于上述方案而言,关闭MongoDB,业务一定会中断报错,影响业务稳定性;而提供额外的隐藏数据节点这一方式,虽然不需要关闭数据库,但是,每个数据节点都需要额外的一台独立服务器实现,费用高,且该独立服务器在不需要进行备份时不承担任何业务,极大地浪费资源。现有技术对此尚未提及存在较好的解决方案。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据库的数据备份方法及装置。
依据本发明的一个方面,提供了一种数据备份方法,包括:
在数据库为业务提供服务期间,接收所述数据库需进行数据备份的备份指令;
调用所述数据库自身具备的克隆指令,对所述数据库的数据进行克隆;
将克隆得到的数据备份至目标库。
可选地,所述将克隆得到的数据备份至目标库之后,还包括:对所述目标库中的备份数据进行补全操作。
可选地,其中,对所述目标库中的备份数据进行补全操作,包括:
在所述数据库的日志文件中读取备份时间内的所有数据操作,其中,所述备份时间是从所述数据库的数据开始备份直至所述数据库的数据备份结束的时间段;
逐条执行获取的数据操作,以将相关数据备份至所述目标库。
可选地,其中,所述备份时间内的所有数据操作包括下列至少之一:
所述数据库中的原有数据从所述数据库写入所述目标库的备份数据操作;
新的数据写入所述数据库的新数据写入操作。
可选地,其中,对目标库中的备份数据进行补全操作之后,还包括:
传递统一的时间标识至所述目标库,以对所述目标库中的本次所有备份数据统一时间标识。
可选地,所述时间标识利用时间戳实现。
可选地,所述数据库为MongoDB数据库。
依据本发明的另一个方面,提供了一种数据备份方法,应用于包括多个数据库的实例,所述方法包括:
在所述实例为业务提供服务期间,接收所述实例需要进行数据备份的备份指令;
调用所述实例中的各数据库自身具备的克隆指令,分别对各数据库的数据进行克隆;
将克隆得到的各数据库的数据备份至目标库。
可选地,所述将克隆得到的各数据库的数据备份至目标库之后,还包括:对所述目标库中的备份数据进行补全操作。
可选地,对所述目标库中的备份数据进行补全操作,包括:
按顺序依次对各数据库的备份数据进行顺序补全操作;或者
分别对各数据库的备份数据进行并行补全操作。
可选地,分别对各数据库的备份数据进行补全操作,包括:
在各数据库的日志文件中读取各自备份时间内的所有数据操作,其中,所述各数据库的备份时间是从该数据库的数据开始备份直至各数据库的数据备份均结束的时间段;
逐条执行获取的数据操作,以将相关数据备份至所述目标库。
可选地,若各数据库的数据的克隆顺序为依次克隆,则
第一个数据库的备份时间为所述第一个数据库备份开始到最后一个数据库备份结束;
第二个数据库库的备份时间为所述第二个数据库备份开始到所述最后一个数据库备份结束;
第I个数据库的备份时间为所述第I个数据库备份开始到所述最后一个数据库备份结束,其中,I为自然数,且不大于数据库总数;
最后一个数据库的备份时间为所述最后一个数据库备份开始到其备份结束。
可选地,各数据库支持不同的业务。
可选地,所述数据库为MongoDB数据库。
依据本发明的又一个方面,提供了一种数据备份装置,包括:
第一接收模块,适于在数据库为业务提供服务期间,接收所述数据库需进行数据备份的备份指令;
第一克隆模块,适于调用所述数据库自身具备的克隆指令,对所述数据库数据进行克隆;
第一备份模块,适于将克隆得到的数据备份至目标库。
可选地,数据备份装置还包括:
第一数据补全模块,适于将克隆得到的数据备份至目标库之后,对所述目标库中的备份数据进行补全操作。
可选地,所述第一数据补全模块还适于:
在所述数据库的日志文件中读取备份时间内的所有数据操作,其中,所述备份时间是从所述数据库的数据开始备份直至所述数据库的数据备份结束的时间段;
逐条执行获取的数据操作,以将相关数据备份至所述目标库。
可选地,所述备份时间内的所有数据操作包括下列至少之一:
所述数据库中的原有数据从所述数据库写入所述目标库的备份数据操作;
新的数据写入所述数据库的新数据写入操作。
可选地,所述第一备份模块还适于:传递统一的时间标识至所述目标库,以对所述目标库中的本次所有备份数据统一时间标识。
可选地,所述时间标识利用时间戳实现。
可选地,所述数据库为MongoDB数据库。
依据本发明的再一个方面,提供了一种数据备份装置,应用于包括多个数据库的实例,所述装置包括:
第二接收模块,适于在所述实例为业务提供服务期间,接收所述实例需要进行数据备份的备份指令;
第二克隆模块,适于调用所述实例中的各数据库自身具备的克隆指令,分别对各数据库的数据进行克隆;
第二备份模块,适于将克隆得到的各数据库的数据备份至目标库。
可选地,数据备份装置还包括:
第二数据补全模块,适于所述将克隆得到的各数据库的数据备份至目标库之后,对所述目标库中的备份数据进行补全操作。
可选地,所述第二数据补全模块还适于:
按顺序依次对各数据库的备份数据进行顺序补全操作;或者
分别对各数据库的备份数据进行并行补全操作。
可选地,所述第二数据补全模块还适于:
在各数据库的日志文件中读取各自备份时间内的所有数据操作,其中,所述各数据库的备份时间是从该数据库的数据开始备份直至各数据库的数据备份均结束的时间段;
逐条执行获取的数据操作,以将相关数据备份至所述目标库。
可选地,若各数据库的数据的克隆顺序为依次克隆,则
第一个数据库的备份时间为所述第一个数据库备份开始到最后一个数据库备份结束;
第二个数据库库的备份时间为所述第二个数据库备份开始到所述最后一个数据库备份结束;
第I个数据库的备份时间为所述第I个数据库备份开始到所述最后一个数据库备份结束,其中,I为自然数,且不大于数据库总数;
最后一个数据库的备份时间为所述最后一个数据库备份开始到其备份结束。
可选地,各数据库支持不同的业务。
可选地,所述数据库为MongoDB数据库。
在本发明实施例中,数据库为业务提供服务和支持,在此期间,接收到数据库需进行数据备份的备份指令,直接调用数据库自身具备的克隆指令进行数据备份,对于数据库而言,因调用的是自身的克隆指令,不需要中止为业务提供服务,在业务侧就可以继续为用户提供服务,不会出现服务中止或中断的情况,从而对数据库实现无痛备份。克隆指令能够实现完整的数据库数据的备份,无须使用外界提供的备份工具,避免出现因外界备份工具需先行读取数据库的数据导致数据的丢失或错误,大大增加了备份数据的准确性和可靠性。另外,克隆指令可以实现数据库数据的格式化备份,即,存储的数据与原始数据的格式相同,例如存储路径、存储分类等。若后续目标库的数据被调用为业务进行支持,因数据存储方式完全相同,能够实现业务的无缝衔接,大大提高了业务的抗灾能力和鲁棒性,提高业务对用户的服务感受。另外,本发明实施例无须为备份增加硬件或软件设备(例如现有技术中提及的独立服务器),该方法简单易用,节省大量资源。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的第一种数据备份方法的处理流程示意图;
图2示出了根据本发明一个实施例的第二种数据备份方法的处理流程示意图;
图3示出了根据本发明一个实施例的第一种数据备份装置的第一类结构示意图;
图4示出了根据本发明一个实施例的第一种数据备份装置的另一类结构示意图;
图5示出了根据本发明一个实施例的第二种数据备份装置的第一类结构示意图;以及
图6示出了根据本发明一个实施例的第二种数据备份装置的另一类结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为解决上述技术问题,本发明实施例提供了数据备份方法。图1示出了根据本发明一个实施例的第一种数据备份方法的处理流程示意图。参见图1,该方法至少包括:
步骤S102、在数据库为业务提供服务期间,接收数据库需进行数据备份的备份指令;
步骤S104、调用数据库自身具备的克隆指令,对数据库的数据进行克隆;
步骤S106、将克隆得到的数据依次备份至目标库。
在本发明实施例中,数据库为业务提供服务和支持,在此期间,接收到数据库需进行数据备份的备份指令,直接调用数据库自身具备的克隆指令进行数据备份,对于数据库而言,因调用的是自身的克隆指令,不需要中止为业务提供服务,在业务侧就可以继续为用户提供服务,不会出现服务中止或中断的情况,从而对数据库实现无痛备份。克隆指令能够实现完整的数据库数据的备份,无须使用外界提供的备份工具,避免出现因外界备份工具需先行读取数据库的数据导致数据的丢失或错误,大大增加了备份数据的准确性和可靠性。另外,克隆指令可以实现数据库数据的格式化备份,即,存储的数据与原始数据的格式相同,例如存储路径、存储分类等。若后续目标库的数据被调用为业务进行支持,因数据存储方式完全相同,能够实现业务的无缝衔接,大大提高了业务的抗灾能力和鲁棒性,提高业务对用户的服务感受。另外,本发明实施例无须为备份增加硬件或软件设备(例如现有技术中提及的独立服务器),该方法简单易用,节省大量资源。
本发明实施例中提及的数据库可以优选MongoDB数据库。MongoDB,分布式文档存储数据库,由C++语言编写,旨在为网络(WEB)应用提供可扩展的高性能数据存储解决方案。MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。
需要说明地是,当数据库的备份涉及备份时间的概念,根据数据库自身数据量,备份时间少至几秒钟,多至数小时数天甚至更多均是可能的。考虑到数据库在持续为用户提供业务期间,任何时间均可能有新数据写入,这就导致了数据库的当前数据与目标库的备份数据是不一致的。例如,用户在备份时间内再一次登录帐户并修改了帐户信息,此时,数据库的帐户信息已修改,但是目标库中的帐户信息仍为修改前的帐户信息,两者不一致。因此,为解决这一问题,本发明实施例执行步骤S106之后,为了保证目标库中的数据与数据库中数据的一致性,需要对目标库中的备份数据进行补全操作。
具体地,本发明实施例可以选择利用日志文件辅助进行补全操作。因日志文件中记录有数据库的所有数据操作,因此,可以获取数据备份过程中所有数据操作,即,在数据库的日志文件中读取备份时间内的所有数据操作。其中,备份时间是从第一个数据开始备份直至最后一个数据备份结束的时间段,例如,从第一个数据开始备份,直至最后一个数据备份结束,若第一个数据的备份开始时间为11:00,最后一个数据的备份结束时间为12:00,则备份时间即为【11:00-12:00】这一时间窗口。本例中优选的日志文件为Oplog日志。
在获取的备份时间段的日志文件中,逐条执行获取的各数据操作,以将相关数据备份至目标库。因日志文件中包含的数据操作是最全面的,根据日志文件对备份数据进行补全后,备份数据为备份结束时间的最完整数据。这一补全操作也可以称为二次备份,本发明实施例采用这一方式大大增加了备份数据的完整性和可靠性,保证了备份数据的精确度。并且,根据确定的时间窗口(包括精确的起始时间和结束时间)去读取日志文件,保证了所读取数据操作的时效性和准确性,并提高了数据读取的效率。
进一步,在对备份数据进行补全操作之后,本发明实施例还可以传递统一的时间标识至目标库,以对目标库中的本次所有备份数据统一时间标识。例如,数据库最后一个数据备份的时间为11:30,补全操作结束的时间为12:00,把目标库中的时间更新为12:00。即,此时的目标库中存储有数据库在12:00的完整数据。
优选的,本发明实施例采用时间戳(time-stamp)的形式标记时间,精确度高。时间戳所采用的数字时间戳技术就是数字签名技术一种变种的应用。在电子商务交易文件中,时间是十分重要的信息。在书面合同中,文件签署的日期和签名一样均是十分重要的防止文件被伪造和篡改的关键性内容。数字时间戳服务(DTS:digita1time stamp service)是网上电子商务安全服务项目之一,能提供电子文件的日期和时间信息的安全保护。
时间戳(time-stamp)是一个经加密后形成的凭证文档,它包括三个部分:
(1)需加时间戳的文件的摘要(digest);
(2)DTS收到文件的日期和时间;
(3)DTS的数字签名。
综上,本发明实施例提供的第一种数据备份方法采用了数据库自身的克隆指令对数据库进行备份,方便快捷,无须使用外部备份工具,大大提高了备份的速度和准确度。
进一步,本发明实施例还提供了另外一种数据备份方法。该数据备份方法应用于包括多个数据库的实例。与上文相同,本发明实施例中提及的数据库可以优选MongoDB数据库。图2示出了根据本发明一个实施例的数据备份方法的处理流程图。该数据备份方法包括:
步骤S202、在实例为业务提供服务期间,接收该实例需要进行数据备份的备份指令;
步骤S204、调用该实例中的各数据库自身具备的克隆指令,分别对各数据库的数据进行克隆;
步骤S206、将克隆得到的各数据库的数据备份至目标库。
在本发明实施例中,一个实例包括多个数据库,在实例为业务提供服务期间,若需要对该实例进行备份,则需要对实例中的各数据库均进行备份。对于各数据库,调用其自身具备的克隆指令,对各数据库进行克隆,进而将克隆得到的各数据库的数据备份至目标库。对于数据库而言,因调用的是自身的克隆指令,不需要中止为业务提供服务,在业务侧就可以继续为用户提供服务,不会出现服务中止或中断的情况,从而对数据库实现无痛备份。克隆指令能够实现完整的数据库数据的备份,无须使用外界提供的备份工具,避免出现因外界备份工具需先行读取数据库的数据导致数据的丢失或错误,大大增加了备份数据的准确性和可靠性。另外,克隆指令可以实现数据库数据的格式化备份,即,存储的数据与原始数据的格式相同,例如存储路径、存储分类等。若后续目标库的数据被调用为业务进行支持,因数据存储方式完全相同,能够实现业务的无缝衔接,大大提高了业务的抗灾能力和鲁棒性,提高业务对用户的服务感受。另外,本发明实施例无须为备份增加硬件或软件设备(例如现有技术中提及的独立服务器),该方法简单易用,节省大量资源。本例中对属于同一个实例的多个数据库分别进行备份,实现了实例的整体备份,保证业务的平稳平移。
而当实例中存在两个以上数据库时,将克隆得到的数据库数据分别备份至目标库,直到整个实例均备份结束。在备份时,可以对数据库进行排序,根据排序结果依次对每个数据库进行备份,也可以同步对每个数据库进行备份,还可以分批次对各数据库进行备份,具体采用何种方式由具体情况而定。现提供一个包括三个数据库的实例的备份过程,本例中,实例中存在A数据库、B数据库和C数据库,且备份顺序为依次备份。首先,利用克隆指令克隆A,在克隆结束之后,将克隆的A数据库备份到目标库;在A数据库克隆结束后,克隆指令继续克隆B数据,进而将克隆的B数据库备份到目标库;然后,在B数据库克隆结束后,克隆指令会继续克隆C数据库,进而将克隆的C数据备份到目标库。其中,备份到目标库的过程不影响克隆指令的操作。
需要说明地是,当实例中存在两个以上数据库的情况下,考虑到数据依次备份,会导致在先备份的数据无法保证是最新数据。例如,仍以顺序备份为例,C数据库备份结束时,A数据库和B数据库可能有新的数据写入,以即时通信业务为例,C数据库备份需要5分钟,此时A数据库和B数据库可能会增加新的数据记录。为保证数据备份的完整性,在最后一个数据库完成备份至目标库的操作时,需要对备份数据进行补全操作,保证目标库中数据的准确性。
其中,涉及到多个数据库的数据均需要在目标库中进行补全时,可以对其进行排序,得到一个排序列表,进而根据列表中的数据库顺序依次进行补全,也可以对各数据库的补全操作进行并行实现,以达到节省时间的目的。
具体地,本发明实施例可以选择利用日志文件辅助进行补全操作,本例中优选的日志文件为Oplog日志。因日志文件中记录有数据库的所有数据操作,因此,可以获取数据备份过程中所有数据操作,即,在数据库的日志文件中读取备份时间内的所有数据操作。其中,与前文提及的一个数据库的备份时间不同,多个数据库的情况下,备份时间是指从本数据库数据开始备份直至各数据库的数据备份均结束的时间段。在本发明实施例中,需要说明地是,若各数据库的数据的克隆顺序为依次克隆,则
第一个数据库的备份时间为第一个数据库备份开始到最后一个数据库备份结束;
第二个数据库库的备份时间为第二个数据库备份开始到最后一个数据库备份结束;
第I个数据库的备份时间为第I个数据库备份开始到最后一个数据库备份结束,其中,I为自然数,且不大于数据库总数N;例如,I取值为1、2、3直至N;
最后一个数据库的备份时间为最后一个数据库备份开始到其备份结束。
例如,从A数据库开始备份,按顺序继续备份B数据库,直至C数据库备份结束,若A的备份开始时间为11:00,C的备份结束时间为12:00,则备份时间即为【11:00-12:00】这一时间窗口。
在获取的备份时间段的日志文件中,逐条获取各数据操作的数据,并将获取的数据再次备份至目标库,对备份数据进行补全操作。因日志文件中包含的数据操作是最全面的,根据日志文件对备份数据进行补全后,备份数据为备份结束时间的最完整数据。这一补全操作也可以称为二次备份,本发明实施例采用这一方式大大增加了备份数据的完整性和可靠性,保证了备份数据的精确度。并且,根据确定的时间窗口(包括精确的起始时间和结束时间)去读取日志文件,保证了所读取数据操作的时效性和准确性,并提高了数据读取的效率。优选的,本发明实施例采用时间戳的形式标记时间,精确度高。
在本发明实施例中,备份时间内的所有数据操作通常包括两种,一种是备份操作所引起的日志记录,即,数据从数据库克隆写入目标库;另一种是数据库自身数据的变更,即存在新的数据写入数据库。例如,C数据库备份结束时,A数据库和B数据库均有新的数据写入,此时A数据库的实时数据为A+A1,B数据库的实时数据是B+B1,C数据库的实时数据为C+C1。此时,采用A+A1对目标库中的A进行更新,采用B+B1对目标库中的B进行更新,采用C+C1对目标库中的C进行更新。若某条日志记录写入的数据在目标库中已存在,本例可以选择跳过或直接覆盖。优选地,直接将目标库中的原数据进行覆盖,以保证写入数据的时效性和准确性。
前文提及了对备份的所有数据进行补全操作的一种实施方式,即从日志文件中读取备份时间内的所有数据操作,对已备份数据进行补全,这种操作方式简单快捷,无须用户对日志文件进行再处理,得到的数据准确度较高。采用这一方式时,数据库依次将A+A1、B+B1、C+C1再次写入目标库,替换原来的A、B、C。
除此之外,本发明实施例还提供了另外一种补全操作,即,在数据库的日志文件中并非读取所有的数据操作,而是仅读取备份时间内的新的数据写入操作,随后,仅将写入的新的数据再次备份至目标库,对备份数据进行补全操作。这种方式在补全阶段写入数据较少,节省补全时间,但是前期需对日志文件进行分析,筛选出其中的新的数据写入操作。采用这一方式时,数据库仅将A1、B1、C1写入目标库对应位置,使得A增加A1得到A+A1,B增加B1得到B+B1,C增加C1得到C+C1。
在保证数据的准确性的前提下,使用者可以采用上述任意一种方式进行补全。本发明仅仅是提供了补全操作的两种例举,在实际操作中,还可以采用其他方式进行补全,能够获取到实时数据即可,本发明对此并不造成限定。
进一步,在对备份数据进行补全操作之后,本发明实施例还可以传递统一的时间标识至目标库,以对目标库中的本次所有备份数据统一时间标识。例如,A的时间戳为11:30,B的时间戳为11:40,C的时间戳为12:00,在补全操作结束后,把A、B、C所有的时间戳均更新为12:00。此时的目标库中存储有12:00的完整数据。
因数据备份操作对数据库而言需不停扫描数据库本身数据,会对数据库提供服务的速率产生少许影响,因此,本发明实施例的数据备份操作通常选择避开高峰期的策略,在业务流量较小的时间进行备份操作,例如凌晨。
进一步,因备份数据的传输时间与地理位置也存在一定的关系,因此,本发明实施例优选地理位置较近的目标库,以尽量减少数据备份传输所造成的影响。
基于同一发明构思,本发明实施例还提供了一种数据备份装置,用于支持本发明实施例的第一种数据备份装置。图3示出了根据本发明一个实施例的数据库的第一种数据备份装置的第一类结构示意图。参见图3,数据库的数据备份装置至少包括:
第一接收模块310,适于在数据库为业务提供服务期间,接收数据库需进行数据备份的备份指令;
第一克隆模块320,与第一接收模块310耦合,适于调用数据库自身具备的克隆指令,对数据库数据进行克隆;
第一备份模块330,与第一克隆模块320耦合,适于将克隆得到的数据备份至目标库。
在一个优选的实施例中,参见图4,该数据库的数据备份装置还包括:
第一数据补全模块340,与第一备份模块330耦合,适于将克隆得到的数据备份至目标库之后,对目标库中的备份数据进行补全操作。
在一个优选的实施例中,第一数据补全模块340还适于:
在数据库的日志文件中读取备份时间内的所有数据操作,其中,备份时间是从数据库的数据开始备份直至数据库的数据备份结束的时间段;
逐条执行获取的数据操作,以将相关数据备份至目标库。
在一个优选的实施例中,备份时间内的所有数据操作包括下列至少之一:
数据库中的原有数据从数据库写入目标库的备份数据操作;
新的数据写入数据库的新数据写入操作。
在一个优选的实施例中,第一备份模块330还适于:传递统一的时间标识至目标库,以对目标库中的本次所有备份数据统一时间标识。
在一个优选的实施例中,时间标识利用时间戳实现。
在一个优选的实施例中,数据库为MongoDB数据库。
基于同一发明构思,本发明实施例还提供了另外一种数据备份装置,应用于包括多个数据库的实例。图5示出了根据本发明一个实施例的第二种数据备份装置的第一类结构示意图。参见图5,第二数据备份装置至少包括:
第二接收模块510,适于在实例为业务提供服务期间,接收实例需要进行数据备份的备份指令;
第二克隆模块520,适于调用实例中的各数据库自身具备的克隆指令,分别对各数据库的数据进行克隆;
第二备份模块530,适于将克隆得到的各数据库的数据备份至目标库。
在一个优选的实施例中,参见图6,该数据库的数据备份装置还包括:
第二数据补全模块540,与第二备份模块530耦合,适于将克隆得到的各数据库的数据备份至目标库之后,对目标库中的备份数据进行补全操作。
在一个优选的实施例中,第二数据补全模块540还适于:
按顺序依次对各数据库的备份数据进行顺序补全操作;或者
分别对各数据库的备份数据进行并行补全操作。
在一个优选的实施例中,第二数据补全模块540还适于:
在各数据库的日志文件中读取各自备份时间内的所有数据操作,其中,各数据库的备份时间是从该数据库的数据开始备份直至各数据库的数据备份均结束的时间段;
逐条执行获取的数据操作,以将相关数据备份至目标库。
在一个优选的实施例中,若各数据库的数据的克隆顺序为依次克隆,则
第一个数据库的备份时间为第一个数据库备份开始到最后一个数据库备份结束;
第二个数据库库的备份时间为第二个数据库备份开始到最后一个数据库备份结束;
第I个数据库的备份时间为第I个数据库备份开始到最后一个数据库备份结束,其中,I为自然数,且不大于数据库总数;
最后一个数据库的备份时间为最后一个数据库备份开始到其备份结束。
在一个优选的实施例中,各数据库支持不同的业务。
在一个优选的实施例中,数据库为MongoDB数据库。
采用本发明实施例所提供的方法及装置能够达到如下有益效果:
在本发明实施例中,数据库为业务提供服务和支持,在此期间,接收到数据库需进行数据备份的备份指令,直接调用数据库自身具备的克隆指令进行数据备份,对于数据库而言,因调用的是自身的克隆指令,不需要中止为业务提供服务,在业务侧就可以继续为用户提供服务,不会出现服务中止或中断的情况,从而对数据库实现无痛备份。克隆指令能够实现完整的数据库数据的备份,无须使用外界提供的备份工具,避免出现因外界备份工具需先行读取数据库的数据导致数据的丢失或错误,大大增加了备份数据的准确性和可靠性。另外,克隆指令可以实现数据库数据的格式化备份,即,存储的数据与原始数据的格式相同,例如存储路径、存储分类等。若后续目标库的数据被调用为业务进行支持,因数据存储方式完全相同,能够实现业务的无缝衔接,大大提高了业务的抗灾能力和鲁棒性,提高业务对用户的服务感受。另外,本发明实施例无须为备份增加硬件或软件设备(例如现有技术中提及的独立服务器),该方法简单易用,节省大量资源。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据库的数据备份装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
本发明实施例还公开了:A1、一种数据备份方法,包括:
在数据库为业务提供服务期间,接收所述数据库需进行数据备份的备份指令;
调用所述数据库自身具备的克隆指令,对所述数据库的数据进行克隆;
将克隆得到的数据备份至目标库。
A2、根据A1所述的方法,其中,所述将克隆得到的数据备份至目标库之后,还包括:对所述目标库中的备份数据进行补全操作。
A3、根据A2所述的方法,其中,对所述目标库中的备份数据进行补全操作,包括:
在所述数据库的日志文件中读取备份时间内的所有数据操作,其中,所述备份时间是从所述数据库的数据开始备份直至所述数据库的数据备份结束的时间段;
逐条执行获取的数据操作,以将相关数据备份至所述目标库。
A4、根据A3所述的方法,其中,所述备份时间内的所有数据操作包括下列至少之一:
所述数据库中的原有数据从所述数据库写入所述目标库的备份数据操作;
新的数据写入所述数据库的新数据写入操作。
A5、根据A2至A4任一项所述的方法,其中,对目标库中的备份数据进行补全操作之后,还包括:
传递统一的时间标识至所述目标库,以对所述目标库中的本次所有备份数据统一时间标识。
A6、根据A5所述的方法,其中,所述时间标识利用时间戳实现。
A7、根据A1至A6任一项所述的方法,其中,所述数据库为MongoDB数据库。
A8、一种数据备份方法,应用于包括多个数据库的实例,所述方法包括:
在所述实例为业务提供服务期间,接收所述实例需要进行数据备份的备份指令;
调用所述实例中的各数据库自身具备的克隆指令,分别对各数据库的数据进行克隆;
将克隆得到的各数据库的数据备份至目标库。
A9、根据A8所述的方法,其中,所述将克隆得到的各数据库的数据备份至目标库之后,还包括:对所述目标库中的备份数据进行补全操作。
A10、根据A9所述的方法,其中,对所述目标库中的备份数据进行补全操作,包括:
按顺序依次对各数据库的备份数据进行顺序补全操作;或者
分别对各数据库的备份数据进行并行补全操作。
A11、根据A10所述的方法,其中,分别对各数据库的备份数据进行补全操作,包括:
在各数据库的日志文件中读取各自备份时间内的所有数据操作,其中,所述各数据库的备份时间是从该数据库的数据开始备份直至各数据库的数据备份均结束的时间段;
逐条执行获取的数据操作,以将相关数据备份至所述目标库。
A12、根据A11所述的方法,其中,若各数据库的数据的克隆顺序为依次克隆,则
第一个数据库的备份时间为所述第一个数据库备份开始到最后一个数据库备份结束;
第二个数据库库的备份时间为所述第二个数据库备份开始到所述最后一个数据库备份结束;
第I个数据库的备份时间为所述第I个数据库备份开始到所述最后一个数据库备份结束,其中,I为自然数,且不大于数据库总数;
最后一个数据库的备份时间为所述最后一个数据库备份开始到其备份结束。
A13、根据A8至A12任一项所述的方法,其中,各数据库支持不同的业务。
A14、根据A8至A13任一项所述的方法,其中,所述数据库为MongoDB数据库。
B15、一种数据备份装置,包括:
第一接收模块,适于在数据库为业务提供服务期间,接收所述数据库需进行数据备份的备份指令;
第一克隆模块,适于调用所述数据库自身具备的克隆指令,对所述数据库数据进行克隆;
第一备份模块,适于将克隆得到的数据备份至目标库。
B16、根据B15所述的装置,其中,还包括:
第一数据补全模块,适于将克隆得到的数据备份至目标库之后,对所述目标库中的备份数据进行补全操作。
B17、根据B16所述的装置,其中,所述第一数据补全模块还适于:
在所述数据库的日志文件中读取备份时间内的所有数据操作,其中,所述备份时间是从所述数据库的数据开始备份直至所述数据库的数据备份结束的时间段;
逐条执行获取的数据操作,以将相关数据备份至所述目标库。
B18、根据B17所述的装置,其中,所述备份时间内的所有数据操作包括下列至少之一:
所述数据库中的原有数据从所述数据库写入所述目标库的备份数据操作;
新的数据写入所述数据库的新数据写入操作。
B19、根据B16至B18任一项所述的装置,其中,所述第一备份模块还适于:传递统一的时间标识至所述目标库,以对所述目标库中的本次所有备份数据统一时间标识。
B20、根据B19所述的装置,其中,所述时间标识利用时间戳实现。
B21、根据B15至B20任一项所述的装置,其中,所述数据库为MongoDB数据库。
B22、一种数据备份装置,应用于包括多个数据库的实例,所述装置包括:
第二接收模块,适于在所述实例为业务提供服务期间,接收所述实例需要进行数据备份的备份指令;
第二克隆模块,适于调用所述实例中的各数据库自身具备的克隆指令,分别对各数据库的数据进行克隆;
第二备份模块,适于将克隆得到的各数据库的数据备份至目标库。
B23、根据B22所述的装置,其中,还包括:
第二数据补全模块,适于所述将克隆得到的各数据库的数据备份至目标库之后,对所述目标库中的备份数据进行补全操作。
B24、根据B23所述的装置,其中,所述第二数据补全模块还适于:
按顺序依次对各数据库的备份数据进行顺序补全操作;或者
分别对各数据库的备份数据进行并行补全操作。
B25、根据B24所述的装置,其中,所述第二数据补全模块还适于:
在各数据库的日志文件中读取各自备份时间内的所有数据操作,其中,所述各数据库的备份时间是从该数据库的数据开始备份直至各数据库的数据备份均结束的时间段;
逐条执行获取的数据操作,以将相关数据备份至所述目标库。
B26、根据B25所述的装置,其中,若各数据库的数据的克隆顺序为依次克隆,则
第一个数据库的备份时间为所述第一个数据库备份开始到最后一个数据库备份结束;
第二个数据库库的备份时间为所述第二个数据库备份开始到所述最后一个数据库备份结束;
第I个数据库的备份时间为所述第I个数据库备份开始到所述最后一个数据库备份结束,其中,I为自然数,且不大于数据库总数;
最后一个数据库的备份时间为所述最后一个数据库备份开始到其备份结束。
B27、根据B22至B26任一项所述的装置,其中,各数据库支持不同的业务。
B28、根据B22至B27任一项所述的装置,其中,所述数据库为MongoDB数据库。
Claims (10)
1.一种数据备份方法,包括:
在数据库为业务提供服务期间,接收所述数据库需进行数据备份的备份指令;
调用所述数据库自身具备的克隆指令,对所述数据库的数据进行克隆;
将克隆得到的数据备份至目标库。
2.根据权利要求1所述的方法,其中,所述将克隆得到的数据备份至目标库之后,还包括:对所述目标库中的备份数据进行补全操作。
3.根据权利要求2所述的方法,其中,对所述目标库中的备份数据进行补全操作,包括:
在所述数据库的日志文件中读取备份时间内的所有数据操作,其中,所述备份时间是从所述数据库的数据开始备份直至所述数据库的数据备份结束的时间段;
逐条执行获取的数据操作,以将相关数据备份至所述目标库。
4.根据权利要求3所述的方法,其中,所述备份时间内的所有数据操作包括下列至少之一:
所述数据库中的原有数据从所述数据库写入所述目标库的备份数据操作;
新的数据写入所述数据库的新数据写入操作。
5.根据权利要求2至4任一项所述的方法,其中,对目标库中的备份数据进行补全操作之后,还包括:
传递统一的时间标识至所述目标库,以对所述目标库中的本次所有备份数据统一时间标识。
6.根据权利要求5所述的方法,其中,所述时间标识利用时间戳实现。
7.根据权利要求1至6任一项所述的方法,其中,所述数据库为MongoDB数据库。
8.一种数据备份方法,应用于包括多个数据库的实例,所述方法包括:
在所述实例为业务提供服务期间,接收所述实例需要进行数据备份的备份指令;
调用所述实例中的各数据库自身具备的克隆指令,分别对各数据库的数据进行克隆;
将克隆得到的各数据库的数据备份至目标库。
9.一种数据备份装置,包括:
第一接收模块,适于在数据库为业务提供服务期间,接收所述数据库需进行数据备份的备份指令;
第一克隆模块,适于调用所述数据库自身具备的克隆指令,对所述数据库数据进行克隆;
第一备份模块,适于将克隆得到的数据备份至目标库。
10.一种数据备份装置,应用于包括多个数据库的实例,所述装置包括:
第二接收模块,适于在所述实例为业务提供服务期间,接收所述实例需要进行数据备份的备份指令;
第二克隆模块,适于调用所述实例中的各数据库自身具备的克隆指令,分别对各数据库的数据进行克隆;
第二备份模块,适于将克隆得到的各数据库的数据备份至目标库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510267127.4A CN104881336A (zh) | 2015-05-22 | 2015-05-22 | 数据备份方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510267127.4A CN104881336A (zh) | 2015-05-22 | 2015-05-22 | 数据备份方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104881336A true CN104881336A (zh) | 2015-09-02 |
Family
ID=53948841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510267127.4A Pending CN104881336A (zh) | 2015-05-22 | 2015-05-22 | 数据备份方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104881336A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107153649A (zh) * | 2016-03-02 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 一种数据备份方法及装置 |
WO2017215432A1 (zh) * | 2016-06-15 | 2017-12-21 | 腾讯科技(深圳)有限公司 | 数据回档方法、装置及系统 |
CN108647117A (zh) * | 2018-04-26 | 2018-10-12 | 郑州云海信息技术有限公司 | 一种数据备份的方法、主系统、设备及计算机可读存储介质 |
CN112968970A (zh) * | 2021-02-26 | 2021-06-15 | 杭州迪普信息技术有限公司 | 配置信息备份方法、装置及网络设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040260896A1 (en) * | 2003-06-18 | 2004-12-23 | Werner Sam Clark | Method, system, and article of manufacture for consistent copying of storage volumes |
CN1851662A (zh) * | 2006-06-01 | 2006-10-25 | 中山大学 | 一种数据备份系统 |
CN101122924A (zh) * | 2007-09-30 | 2008-02-13 | 华为技术有限公司 | 逻辑日志生成方法、数据库备份/恢复方法与系统 |
CN102609281A (zh) * | 2012-02-24 | 2012-07-25 | 中国电子科技集团公司第十五研究所 | 分布式软件补丁更新方法及系统 |
CN103678592A (zh) * | 2013-12-12 | 2014-03-26 | 浪潮(北京)电子信息产业有限公司 | 一种数据备份方法及系统 |
CN104239167A (zh) * | 2014-09-25 | 2014-12-24 | 珠海市君天电子科技有限公司 | 数据库的备份方法、装置和电子设备 |
CN104461774A (zh) * | 2014-11-24 | 2015-03-25 | 华为技术有限公司 | 异步复制方法、装置与系统 |
-
2015
- 2015-05-22 CN CN201510267127.4A patent/CN104881336A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040260896A1 (en) * | 2003-06-18 | 2004-12-23 | Werner Sam Clark | Method, system, and article of manufacture for consistent copying of storage volumes |
CN1851662A (zh) * | 2006-06-01 | 2006-10-25 | 中山大学 | 一种数据备份系统 |
CN101122924A (zh) * | 2007-09-30 | 2008-02-13 | 华为技术有限公司 | 逻辑日志生成方法、数据库备份/恢复方法与系统 |
CN102609281A (zh) * | 2012-02-24 | 2012-07-25 | 中国电子科技集团公司第十五研究所 | 分布式软件补丁更新方法及系统 |
CN103678592A (zh) * | 2013-12-12 | 2014-03-26 | 浪潮(北京)电子信息产业有限公司 | 一种数据备份方法及系统 |
CN104239167A (zh) * | 2014-09-25 | 2014-12-24 | 珠海市君天电子科技有限公司 | 数据库的备份方法、装置和电子设备 |
CN104461774A (zh) * | 2014-11-24 | 2015-03-25 | 华为技术有限公司 | 异步复制方法、装置与系统 |
Non-Patent Citations (1)
Title |
---|
邹贵金: "《深入云计算MongoDB管理与开发实战详解》", 30 June 2013 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107153649A (zh) * | 2016-03-02 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 一种数据备份方法及装置 |
CN107153649B (zh) * | 2016-03-02 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 一种数据备份方法及装置 |
WO2017215432A1 (zh) * | 2016-06-15 | 2017-12-21 | 腾讯科技(深圳)有限公司 | 数据回档方法、装置及系统 |
US10956374B2 (en) | 2016-06-15 | 2021-03-23 | Tencent Technology (Shenzhen) Company Limited | Data recovery method, apparatus, and system |
CN108647117A (zh) * | 2018-04-26 | 2018-10-12 | 郑州云海信息技术有限公司 | 一种数据备份的方法、主系统、设备及计算机可读存储介质 |
CN112968970A (zh) * | 2021-02-26 | 2021-06-15 | 杭州迪普信息技术有限公司 | 配置信息备份方法、装置及网络设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108536761B (zh) | 报表数据查询方法及服务器 | |
US20170316046A1 (en) | Importation, presentation, and persistent storage of data | |
US11328093B1 (en) | Protecting sensitive data | |
CN110704398B (zh) | 从MySQL到Oracle的数据库迁移方法、装置及计算机设备 | |
US20200358667A1 (en) | System and method for tracking service requests | |
US20130132354A1 (en) | Multiple source data management using a conflict rule | |
US8078914B2 (en) | Open error-handling system | |
US20210383370A1 (en) | Enhanced multi-party user data deletion | |
US20130159281A1 (en) | Efficient querying using on-demand indexing of monitoring tables | |
CN104881336A (zh) | 数据备份方法及装置 | |
US20200104404A1 (en) | Seamless migration of distributed systems | |
WO2023231665A1 (zh) | 分布式事务处理方法、系统、设备及可读存储介质 | |
EP2610768B1 (en) | Data archiving and de-archiving in a business environment | |
US20130254156A1 (en) | Algorithm and System for Automated Enterprise-wide Data Quality Improvement | |
CN111966692A (zh) | 针对数据仓库的数据处理方法、介质、装置和计算设备 | |
Vaughn | Client/server system design and implementation | |
CN105975489A (zh) | 一种基于元数据的在线sql代码补全方法 | |
CN114444478A (zh) | 一种凭证可视化方法、装置、电子设备及存储介质 | |
WO2021088350A1 (zh) | 一种基于脚本的web服务分页数据采集系统 | |
CN105653341A (zh) | 一种网络发票客户端的升级方法、装置及系统 | |
CN103809915B (zh) | 一种磁盘文件的读写方法和装置 | |
US9230011B1 (en) | Index-based querying of archived data sets | |
US20190087238A1 (en) | Incremental workflow execution | |
CN114969215A (zh) | 数据仓库贴源层自动批量装载数据的方法及相关设备 | |
US9009073B1 (en) | Product availability check using image processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150902 |
|
RJ01 | Rejection of invention patent application after publication |