CN111104258A - MongoDB数据库的备份方法、装置及电子设备 - Google Patents

MongoDB数据库的备份方法、装置及电子设备 Download PDF

Info

Publication number
CN111104258A
CN111104258A CN201911340638.9A CN201911340638A CN111104258A CN 111104258 A CN111104258 A CN 111104258A CN 201911340638 A CN201911340638 A CN 201911340638A CN 111104258 A CN111104258 A CN 111104258A
Authority
CN
China
Prior art keywords
data
block
file
mongodb database
backup
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
Application number
CN201911340638.9A
Other languages
English (en)
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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201911340638.9A priority Critical patent/CN111104258A/zh
Publication of CN111104258A publication Critical patent/CN111104258A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及MongoDB数据库的备份方法、装置及电子设备。该方法包括:获取数据文件的文件路径;获取数据文件的文件路径;根据文件路径,基于预设的块大小逐块读取数据文件,得到至少一个数据块;将每个数据块封装为预设格式的数据包,并基于数据流方式将全部数据包传输至目标设备,以形成MongoDB数据库的一个备份文件,其中,数据包中含有数据块在MongoDB数据库中的定位信息。该方法采用物理备份的方法,无需停掉MongoDB数据库服务,对数据库正常的读写服务没有明显的影响,也无需在本地或者目标设备中占用额外的磁盘空间,并且备份文件能够存储在对象存储系统中。

Description

MongoDB数据库的备份方法、装置及电子设备
技术领域
本发明涉及数据库技术领域,更具体地,涉及一种MongoDB数据库的备份方法、一种MongoDB数据库的恢复方法、一种MongoDB数据库的备份装置、一种MongoDB数据库的恢复装置以及一种电子设备。
背景技术
MongoDB是一个介于关系数据库和非关系数据库之间的数据库,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
为了保证数据库服务的可靠性,需要对MongoDB数据库进行备份。常见的MongoDB数据库备份方法包括以下几种。逻辑备份,即使用开源工具mongodump从MongoDB数据库中导出全量数据。其缺点是占用大量CPU资源,严重影响数据库的性能,备份时间长,恢复时需要使用开源工具mongorestore全部导入,恢复所用的时间成本高。物理备份,将数据文件备份成一个文件夹,该文件夹包括子文件,其缺点是如果将备份文件存储在对象存储系统中,由于对象存储系统对零散文件的上传和下载非常慢,会造成该方法的实用性较低。为了解决上述物理备份存在的问题,可以将包含文件夹用tar命令打包,从而形成一个大的tar文件,这解决了存放在对象存储系统时的上传和下载问题,但是这种方案需要先把文件备份成备份目录,这个文件无论是放在本地,还是放在其他存储上,都需要额外的空间来存放,是对磁盘的一种浪费。
因此,有必要提出一种MongoDB数据库备份的新的技术方案。
发明内容
本发明的一个目的是提供一种MongoDB数据库备份的新的技术方案。
根据本发明的第一方面,提供了一种MongoDB数据库的备份方法,所述MongoDB数据库包括至少一个数据文件,所述方法包括:
获取所述数据文件的文件路径;
根据所述文件路径,基于预设的块大小逐块读取所述数据文件,得到至少一个数据块;
将每个所述数据块封装为预设格式的数据包,并基于数据流方式将全部所述数据包传输至目标设备,以形成所述MongoDB数据库的一个备份文件,其中,所述数据包中含有所述数据块在所述MongoDB数据库中的定位信息。
可选地,所述将每个所述数据块封装为预设格式的数据包,包括:
基于预设的压缩算法对所述数据块进行压缩处理,得到对应的压缩块;
将所述压缩块转封装为所述数据包。
可选地,所述获取所述数据文件的文件路径,包括:
通过所述MongoDB数据库的存储引擎的热备接口,获得所述文件路径。
可选地,基于至少一个读取线程读取所述数据文件,基于至少一个压缩线程对所述数据块进行压缩,基于至少一个流式输出线程将所述压缩块封装为所述数据包并基于数据流方式将全部所述数据包传输至目标设备;其中,所述读取线程、所述压缩线程和所述流式输出线程并行运行。
可选地,所述基于预设的压缩算法将所述数据块进行压缩,包括:
基于多个压缩线程,并行执行对所述数据块进行压缩的步骤。
根据本发明的第二方面,提供了一种MongoDB数据库的恢复方法,包括:
根据基于本发明第一方面所述方法所获得的备份文件,获得所述数据包;
根据所述数据包,获得所述数据块和所述定位信息;
根据所述数据块和所述定位信息,获得所述数据文件;
基于全部所述数据文件启动所述MongoDB数据库,完成所述MongoDB数据库的恢复。
可选地,所述根据所述数据包,获得所述数据块,包括:
根据所述数据包,获得所述压缩块;
基于与所述压缩算法对应的解压算法,对所述压缩块进行解压处理,得到所述数据块。
根据本发明的第三方面,提供了一种MongoDB数据库的备份装置,所述MongoDB数据库包括至少一个数据文件,所述装置包括:
地址获取模块,用于获取所述数据文件的文件路径;
读取模块,用于根据所述文件路径,基于预设的块大小逐块读取所述数据文件,得到至少一个数据块;
流式输出模块,用于将每个所述数据块封装为预设格式的数据包,并基于数据流方式将全部所述数据包传输至目标设备,以形成所述MongoDB数据库的一个备份文件,其中,所述数据包中含有所述数据块在所述MongoDB数据库中的定位信息。
可选地,流式输出模块包括压缩单元,所述压缩单元用于:
基于预设的压缩算法对所述数据块进行压缩处理,得到对应的压缩块;
将所述压缩块转封装为所述数据包。
可选地,读取模块用于:
通过所述MongoDB数据库的存储引擎的热备接口,获得所述文件路径。
可选地,所述装置基于至少一个读取线程读取所述数据文件,基于至少一个压缩线程对所述数据块进行压缩,基于至少一个流式输出线程将所述压缩块封装为所述数据包并基于数据流方式将全部所述数据包传输至目标设备;其中,所述读取线程、所述压缩线程和所述流式输出线程并行运行。
可选地,所述压缩单元用于:
基于多个压缩线程,并行执行对所述数据块进行压缩的步骤。
根据本发明的第四方面,提供了一种MongoDB数据库的恢复装置,包括:
第一解析模块,用于根据基于本发明第一方面所述方法所获得的备份文件,获得所述数据包;
第二解析模块,用于根据所述数据包,获得所述数据块和所述定位信息;
第三解析模块,用于根据所述数据块和所述定位信息,获得所述数据文件;
恢复模块,用于基于全部所述数据文件启动所述MongoDB数据库,完成所述MongoDB数据库的恢复。
可选地,所述第二解析模块用于:
根据所述数据包,获得所述压缩块;
基于与所述压缩算法对应的解压算法,对所述压缩块进行解压处理,得到所述数据块。
根据本发明的第五方面,提供了一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现本发明第一方面或者第二方面所述的方法。
本实施例中MongoDB数据库的备份方法,采用物理备份的方法,无需停掉MongoDB数据库服务,对数据库正常的读写服务没有明显的影响。采用数据流的方式输出,能够在目标设备中直接形成单个的备份文件,无需在本地或者目标设备中占用额外的磁盘空间,并且备份文件能够存储在对象存储系统中。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是可用于实现本发明实施例的电子设备的示意图。
图2是根据本发明实施例的MongoDB数据库的备份方法的流程图。
图3是根据本发明实施例的数据转化示意图。
图4是根据本发明实施例的执行线程的示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1示出了可用于实现本发明的实施例的电子设备的硬件配置。
参见图1,电子设备1000包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500和输入装置1600。处理器1100例如可以是中央处理器CPU、微控制单元MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、串行接口等。通信装置1400例如是有线网卡或无线网卡。显示装置1500例如是液晶显示屏。输入装置1600例如包括触摸屏、键盘、鼠标、麦克风等。
应用于本说明书的实施例中,电子设备1100的存储器1120用于存储指令,该指令用于控制处理器1110进行操作以支持实现根据本说明书任意实施例的方法。技术人员可以根据本说明书所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
本领域技术人员应当理解,尽管在图1中示出了电子设备1100的多个装置,但是,本说明书实施例的电子设备1100可以仅涉及其中的部分装置,例如,只涉及处理器1110、存储器1120和通信装置1140。
本实施例中,电子设备1000例如是MongoDB数据库服务器。
图1所示的硬件配置仅是解释性的,并且决不是为了要限制本发明、其应用或用途。
<方法实施例>
本实施例提供了一种MongoDB数据库的备份方法,例如由图1所示的MongoDB数据库服务器实施。如图2所示,该方法包括以下步骤S1100-S1300。
在步骤S1100中,获取数据文件的文件路径。
本实施例中,MongoDB数据库包括至少一个数据文件。数据文件的文件路径(或者称为物理地址)是指数据文件存储在存储系统中的位置或者路径,根据文件路径可直接读取数据文件。
本说明书背景技术部分提到的逻辑备份基于数据库的读取服务获得全部数据,进而完成备份。这种备份方式需要通过数据库的运行来读取数据,因此需要占用大量CPU资源,会对备份功能之外的正常服务产生影响。而本实施例中的数据库备份方法根据文件路径直接读取数据文件,无需数据库提供服务,因此减少了读取数据过程对CPU资源的占用以及对数据库服务造成的妨碍。
在一个例子中,通过MongoDB数据库的存储引擎的热备接口,获得文件路径。例如,在MongoDB数据库服务正常运行的过程中,调用wiredTiger存储引擎的热备接口,获取数据文件的文件路径。这样做的优势在于,采用在线备份(或者热备份)的方式,相对于离线物理备份的方式,无需停掉MongoDB数据库服务,不会对数据库的可用性造成影响。
在其他例子中,可以同样采用wired Tiger存储引擎,重新实现一套类似wiredTiger热备接口的在线备份接口。或者,使用rocksdb或者其他存储引擎,采用对应存储引擎的热备接口来实现在线备份。总之,可采用多种获取数据文件的文件路径,本实施例对此不作限定。
在步骤S1200中,根据文件路径,基于预设的块大小逐块读取数据文件,得到至少一个数据块。
本实施例中,在读取数据文件时,将较大的数据文件划分为较小的数据库,以降低备份过程中的需要处理的单元大小。块大小可以基于实际情况进行设置。在一个例子中,将块大小设置100M,即每次读取100M大小的数据文件。这种情况下,假设某个数据文件的大小为500M,则该数据文件最终被读取为5个大小为100M的数据块。
在一个例子中,对数据块还可以进行压缩处理,即,基于预设的压缩算法将数据库压缩为对应的压缩块。例如,对于大小为100M的数据块,将其压缩为大小为50M的压缩块。本领域技术人员根据实际情况选择压缩算法,本实施例对此不作限定。容易理解,通过对数据块进行压缩处理,一方面可以进一步降低备份过程中的需要处理的单元大小,另一方面可以降低最终的备份文件的大小。例如,可以减少网络IO,磁盘IO,以及磁盘空间的占用,同时可以提高备份下载的效率。
在步骤S1300中,将每个数据块封装为预设格式的数据包,并基于数据流方式将全部数据包传输至目标设备,以形成MongoDB数据库的一个备份文件,其中,数据包中含有数据块在MongoDB数据库中的定位信息。
数据流(data stream)是一组有序,有起点和终点的字节的数据序列。采用数据流方式传输数据时,通常在传输协议中指定传输单元(也就是数据包)的格式。例如,在实时流传输协议(Real-time Transport Protocol,RTP)中,数据包的格式包括标示位、载荷类型、序号、时间戳等。
本实施例中,预先设置了数据包的格式,包括文件头、块头和数据本体。
文件头包括数据块对应的数据文件的名称,该文件名称包含文件文件路径的相对路径。相对路径是指相对于某个路径的路径,或者说,在某个路径基础上进一步的路径。举例来说,假设某个文件的绝对路径为“dbPath=/var/lib/mongodata/”,其中,“dbPath”本身也是一个路径,因此该文件相对于“dbPath”路径的相对路径为“/var/lib/mongodata/”。基于相对路径,在存储设备发生变化的情况下仍然可以还原出多个数据文件的结构关系。
块头包括数据块的序号和块大小。数据块的序号可表示该数据块在对应的数据文件中的位置。块大小可用于在恢复数据库时从备份文件中解析出数据块。
数据本体即为数据块或者压缩块本身的数据内容。
容易理解,根据文件头和块头可确定数据块在MongoDB数据库中的定位信息,从而在恢复数据库时能够最终还原出原本的数据文件结构。
从内容上看,数据包中包括了数据块在MongoDB数据库中的定位信息以及数据块的本身内容。
本实施例中,MongoDB数据库服务器将数据流式输出至目标设备的指定路径,从而形成一个完整的备份文件。单个的备份文件可以很方便地存储在对象存储系统中。
本实施例中,目标设备可以是MongoDB数据库服务器之外的设备,包括单独的设备或者设备集群,也可以说MongoDB数据库服务器自身,本实施例对此不作限定。
本实施例中,数据流的输出方式至少包括以下两种。第一种输出到标准输出,再进一步输出到目标设备。第二种直接写入指定文件,其中,指定的文件可以直接指定在对象存储上,也可以指定在分布式文件系统上,还可以指定到本地文件系统或者其他存储上,对此不作限定。
下面结合图3具体说明本实施例中数据转化的过程。如图3所示,MongoDB数据库包括文件1、文件2……文件n等n个数据文件。根据设定的块大小将每个数据文件读取为多个数据块,例如,将文件1读取为数据块1、数据块2……数据块m,将文件2读取为数据块1、数据块2……数据块m……将文件n读取为数据块1、数据块2……数据块q。之后,将每个数据块进行压缩,得到对应的压缩块。例如,将文件1的数据块1压缩为压缩块1,将文件1的数据块2压缩为压缩块2……将文件1的数据块m压缩为压缩块m。最后,将每个压缩块均封装为数据包,并将全部数据包流式传输至目标设备,目标设备据此形成最终备份文件。
本实施例中,可以采用并行方式执行多个步骤。例如,基于至少一个读取线程读取所述数据文件,基于至少一个压缩线程对所述数据块进行压缩,基于至少一个流式输出线程将所述压缩块封装为所述数据包并基于数据流方式将全部所述数据包传输至目标设备;其中,所述读取线程、所述压缩线程和所述流式输出线程并行运行。又例如,基于多个压缩线程,并行执行对数据块进行压缩。
图4示出了根据本发明实施例的执行线程的示意图,其中,文件读取线程将待备份文件读取为数据块并写入到缓存池,数据压缩线程读取块缓存池中的数据块并进行压缩,得到压缩块并写入到压缩块缓存池,流式转换和输出线程读取压缩块并将其转换为数据流,进而输出到目标地址,得到备份目标文件。
备份完成之后,关闭数据压缩等相关线程,并关闭MongoDB数据库存储引擎的热备接口。
以上流程的实现封装成MongoDB的一个命令,该命令可基于Mongodb数据库服务本身自带的mongod命令实现,备份时只需要执行这个命令即可,使用起来方便,不需要数据库额外的工具。mongodb执行命令的语法本身为:db.runCommand({<command>})。在本实施例中,备份到一个文件目录的命令为db.runCommand({createHotBackup:1,backupDir:"/data/ks3/backupDir"}),流式压缩备份命令为db.runCommand({createHotBackup:1,backupFile:"/data/ks3/backupFile"})。
本实施例中MongoDB数据库的备份方法,采用物理备份的方法,无需停掉MongoDB数据库服务,不会对数据库的可用性造成影响。采用数据流的方式输出,能够在目标设备中直接形成单个的备份文件,无需在本地或者目标设备中占用额外的磁盘空间,并且备份文件能够存储在对象存储系统中。
与备份方法相对应,本实施例还提供一种MongoDB数据库的恢复方法,包括:根据基于上述数据库备份方法所获得的备份文件,获得数据包;根据数据包,获得数据块和定位信息;根据数据块和定位信息,获得数据文件;基于全部数据文件启动MongoDB数据库,完成MongoDB数据库的恢复。上述恢复过程可以视为备份过程的逆过程。
在一个例子中,对数据库进行了压缩处理。相应地,根据数据包,获得数据块,包括:根据数据包,获得压缩块;基于与压缩算法对应的解压算法,对压缩块进行解压处理,得到数据块。
<装置实施例>
本实施例提供了一种MongoDB数据库的备份装置,MongoDB数据库包括至少一个数据文件,该装置包括地址获取模块、读取模块、流式输出模块。
地址获取模块,用于获取数据文件的文件路径。
读取模块,用于根据文件路径,基于预设的块大小逐块读取数据文件,得到至少一个数据块。
流式输出模块,用于将每个数据块封装为预设格式的数据包,并基于数据流方式将全部数据包传输至目标设备,以形成MongoDB数据库的一个备份文件,其中,数据包中含有数据块在MongoDB数据库中的定位信息。
在一个例子中,流式输出模块包括压缩单元,压缩单元用于:基于预设的压缩算法对数据块进行压缩处理,得到对应的压缩块;将压缩块转封装为数据包。
在一个例子中,读取模块用于:通过MongoDB数据库的存储引擎的热备接口,获得文件路径。
在一个例子中,该装置基于至少一个读取线程读取所述数据文件,基于至少一个压缩线程对所述数据块进行压缩,基于至少一个流式输出线程将所述压缩块封装为所述数据包并基于数据流方式将全部所述数据包传输至目标设备;其中,所述读取线程、所述压缩线程和所述流式输出线程并行运行。
在一个例子中,压缩单元用于:基于多个压缩线程,并行执行对数据块进行压缩的步骤。
本实施例还提供了一种MongoDB数据库的恢复装置,包括第一解析模块、第二解析模块、第三解析模块和恢复模块。
第一解析模块,用于根据基于本发明第一方面方法所获得的备份文件,获得数据包。
第二解析模块,用于根据数据包,获得数据块和定位信息。
第三解析模块,用于根据数据块和定位信息,获得数据文件。
恢复模块,用于基于全部数据文件启动MongoDB数据库,完成MongoDB数据库的恢复。
在一个例子中,第二解析模块用于:根据数据包,获得压缩块;基于与压缩算法对应的解压算法,对压缩块进行解压处理,得到数据块。
<电子设备实施例>
本实施例提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现本发明方法实施例描述的MongoDB数据库的恢复或者备份方法。
<机器可读存储介质实施例>
本实施例提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现本发明方法实施例描述的MongoDB数据库的恢复或者备份方法。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (10)

1.一种MongoDB数据库的备份方法,所述MongoDB数据库包括至少一个数据文件,所述方法包括:
获取所述数据文件的文件路径;
根据所述文件路径,基于预设的块大小逐块读取所述数据文件,得到至少一个数据块;
将每个所述数据块封装为预设格式的数据包,并基于数据流方式将全部所述数据包传输至目标设备,以形成所述MongoDB数据库的一个备份文件,其中,所述数据包中含有所述数据块在所述MongoDB数据库中的定位信息。
2.根据权利要求1所述的方法,其中,所述将每个所述数据块封装为预设格式的数据包,包括:
基于预设的压缩算法对所述数据块进行压缩处理,得到对应的压缩块;
将所述压缩块转封装为所述数据包。
3.根据权利要求1所述的方法,其中,所述获取所述数据文件的文件路径,包括:
通过所述MongoDB数据库的存储引擎的热备接口,获得所述文件路径。
4.根据权利要求2所述的方法,其中,基于至少一个读取线程读取所述数据文件,基于至少一个压缩线程对所述数据块进行压缩,基于至少一个流式输出线程将所述压缩块封装为所述数据包并基于数据流方式将全部所述数据包传输至目标设备;其中,所述读取线程、所述压缩线程和所述流式输出线程并行运行。
5.根据权利要求4所述的方法,其中,所述基于预设的压缩算法将所述数据块进行压缩,包括:
基于多个压缩线程,并行执行对所述数据块进行压缩的步骤。
6.一种MongoDB数据库的恢复方法,包括:
根据基于权利要求1-5中任一项所述方法所获得的备份文件,获得所述数据包;
根据所述数据包,获得所述数据块和所述定位信息;
根据所述数据块和所述定位信息,获得所述数据文件;
基于全部所述数据文件启动所述MongoDB数据库,完成所述MongoDB数据库的恢复。
7.根据权利要求1所述的方法,其中,所述根据所述数据包,获得所述数据块,包括:
根据所述数据包,获得所述压缩块;
基于与所述压缩算法对应的解压算法,对所述压缩块进行解压处理,得到所述数据块。
8.一种MongoDB数据库的备份装置,所述MongoDB数据库包括至少一个数据文件,所述装置包括:
地址获取模块,用于获取所述数据文件的文件路径;
读取模块,用于根据所述文件路径,基于预设的块大小逐块读取所述数据文件,得到至少一个数据块;
流式输出模块,用于将每个所述数据块封装为预设格式的数据包,并基于数据流方式将全部所述数据包传输至目标设备,以形成所述MongoDB数据库的一个备份文件,其中,所述数据包中含有所述数据块在所述MongoDB数据库中的定位信息。
9.一种MongoDB数据库的恢复装置,包括:
第一解析模块,用于根据基于权利要求1-5中任一项所述方法所获得的备份文件,获得所述数据包;
第二解析模块,用于根据所述数据包,获得所述数据块和所述定位信息;
第三解析模块,用于根据所述数据块和所述定位信息,获得所述数据文件;
恢复模块,用于基于全部所述数据文件启动所述MongoDB数据库,完成所述MongoDB数据库的恢复。
10.一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1至7中任一项所述的方法。
CN201911340638.9A 2019-12-23 2019-12-23 MongoDB数据库的备份方法、装置及电子设备 Pending CN111104258A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911340638.9A CN111104258A (zh) 2019-12-23 2019-12-23 MongoDB数据库的备份方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911340638.9A CN111104258A (zh) 2019-12-23 2019-12-23 MongoDB数据库的备份方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN111104258A true CN111104258A (zh) 2020-05-05

Family

ID=70423272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911340638.9A Pending CN111104258A (zh) 2019-12-23 2019-12-23 MongoDB数据库的备份方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN111104258A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880967A (zh) * 2020-07-28 2020-11-03 平安科技(深圳)有限公司 云场景下的文件备份方法、装置、介质和电子设备
CN112100169A (zh) * 2020-08-05 2020-12-18 中科驭数(北京)科技有限公司 数据库交互数据编码方法及装置
CN112650625A (zh) * 2020-12-28 2021-04-13 武汉达梦数据技术有限公司 一种针对数据库的流式备份还原方法、存储介质及装置
WO2023000674A1 (zh) * 2021-07-23 2023-01-26 苏州浪潮智能科技有限公司 云硬盘数据压缩备份及恢复方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1492362A (zh) * 2002-10-25 2004-04-28 联想(北京)有限公司 一种嵌入式数据库的数据备份和恢复方法
CN1731364A (zh) * 2005-08-05 2006-02-08 北京九州软件有限公司 数据库备份数据的压缩和检索方法
US20170169059A1 (en) * 2015-12-15 2017-06-15 Mongodb, Inc. Systems and methods for automating management of distributed databases
CN107957920A (zh) * 2017-10-31 2018-04-24 清远恒成智道信息科技有限公司 数据库备份系统
CN108874584A (zh) * 2018-05-04 2018-11-23 上海达梦数据库有限公司 数据备份方法、数据还原方法、装置、设备及存储介质
CN109634774A (zh) * 2017-10-09 2019-04-16 北京国双科技有限公司 数据备份、恢复方法及装置
CN109697139A (zh) * 2018-10-31 2019-04-30 武汉艺果互动科技股份有限公司 一种基于MongoDB的数据库自动备份方法、设备及存储设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1492362A (zh) * 2002-10-25 2004-04-28 联想(北京)有限公司 一种嵌入式数据库的数据备份和恢复方法
CN1731364A (zh) * 2005-08-05 2006-02-08 北京九州软件有限公司 数据库备份数据的压缩和检索方法
US20170169059A1 (en) * 2015-12-15 2017-06-15 Mongodb, Inc. Systems and methods for automating management of distributed databases
CN109634774A (zh) * 2017-10-09 2019-04-16 北京国双科技有限公司 数据备份、恢复方法及装置
CN107957920A (zh) * 2017-10-31 2018-04-24 清远恒成智道信息科技有限公司 数据库备份系统
CN108874584A (zh) * 2018-05-04 2018-11-23 上海达梦数据库有限公司 数据备份方法、数据还原方法、装置、设备及存储介质
CN109697139A (zh) * 2018-10-31 2019-04-30 武汉艺果互动科技股份有限公司 一种基于MongoDB的数据库自动备份方法、设备及存储设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880967A (zh) * 2020-07-28 2020-11-03 平安科技(深圳)有限公司 云场景下的文件备份方法、装置、介质和电子设备
CN112100169A (zh) * 2020-08-05 2020-12-18 中科驭数(北京)科技有限公司 数据库交互数据编码方法及装置
CN112100169B (zh) * 2020-08-05 2021-09-21 中科驭数(北京)科技有限公司 数据库交互数据编码方法及装置
CN112650625A (zh) * 2020-12-28 2021-04-13 武汉达梦数据技术有限公司 一种针对数据库的流式备份还原方法、存储介质及装置
WO2023000674A1 (zh) * 2021-07-23 2023-01-26 苏州浪潮智能科技有限公司 云硬盘数据压缩备份及恢复方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US10180891B2 (en) Monitoring processes running on a platform as a service architecture
CN111104258A (zh) MongoDB数据库的备份方法、装置及电子设备
US11036408B2 (en) Rule-based modifications in a data storage appliance monitor
EP3566130B1 (en) Hybrid cloud mirroring to facilitate performance, migration, and availability
US9483533B2 (en) Method and apparatus for processing time series data
US10073899B2 (en) Efficient storage using automatic data translation
US9031997B2 (en) Log file compression
CN109522029A (zh) 一种部署云平台技术组件的方法及装置
CN113641693B (zh) 流式计算系统的数据处理方法及装置、电子设备和介质
CN112231409B (zh) 数据库同步的初始化装载方法、装置、设备和存储介质
CN113342836A (zh) 同步数据处理方法、装置、计算机设备及存储介质
US20170212947A1 (en) Database and service upgrade without downtime
KR0126590B1 (ko) 멀티미디어 정보처리 시스팀을 이용한 멀티미디어 정보 프리젠테이션용 엔진 및 그 운용방법
Park et al. Adaptable I/O system based I/O reduction for improving the performance of HDFS
CN115543528A (zh) 一种数据处理的方法、相关装置及存储介质
CN114840483A (zh) 数据压缩方法、数据解压方法、装置、电子设备、介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination