CN116149902A - 数据恢复方法及装置、电子设备、计算机可读存储介质 - Google Patents
数据恢复方法及装置、电子设备、计算机可读存储介质 Download PDFInfo
- Publication number
- CN116149902A CN116149902A CN202211273485.2A CN202211273485A CN116149902A CN 116149902 A CN116149902 A CN 116149902A CN 202211273485 A CN202211273485 A CN 202211273485A CN 116149902 A CN116149902 A CN 116149902A
- Authority
- CN
- China
- Prior art keywords
- target
- backup
- point
- file
- backup file
- 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
- 238000011084 recovery Methods 0.000 title claims abstract description 221
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000012545 processing Methods 0.000 claims abstract description 57
- 230000008569 process Effects 0.000 claims abstract description 21
- 238000004590 computer program Methods 0.000 claims description 18
- 230000008676 import Effects 0.000 claims description 6
- 230000001174 ascending effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 11
- 230000004044 response Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
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
本公开提供了一种数据恢复方法及装置、电子设备、计算机可读存储介质,该方法包括:获取待恢复的数据库对象的对象标识和目标恢复点,目标恢复点包括数据库对象被恢复到的预设时刻点或者事务点;根据对象标识,确定数据库对象的对象类型;根据对象类型和目标恢复点,确定目标备份文件,其中,目标备份文件包括承载数据库对象的数据库在运行过程中生成的、与目标恢复点对应的全量类型的备份文件和/或增量类型的备份文件;目标备份文件的文件类型根据对象类型确定;根据目标备份文件,对数据库对象执行数据恢复处理。根据本公开的实施例能够高效且准确地完成对数据库对象的数据恢复处理。
Description
技术领域
本公开涉及数据处理技术领域,特别涉及一种数据恢复方法及装置、电子设备、计算机可读存储介质。
背景技术
目前,在进行数据库恢复处理时,一般依赖于人工处理,即,需要由用户手动执行选择空闲主机、选择需要使用的备份文件并在空闲主机上下载备份文件、人工基于恢复点确定备份点、以及基于备份点进行数据恢复等一系列步骤。
由此可知,现有技术中的该种方法至少存在步骤繁琐、耗时长以及不够准确的问题。
发明内容
本公开提供一种数据恢复方法及装置、电子设备、计算机可读存储介质。
第一方面,本公开提供了一种数据恢复方法,该数据恢复方法包括:
获取待恢复的数据库对象的对象标识和目标恢复点,所述目标恢复点包括所述数据库对象被恢复到的预设时刻点或者事务点;
根据所述对象标识,确定所述数据库对象的对象类型;
根据所述对象类型和所述目标恢复点,确定目标备份文件,其中,所述目标备份文件包括承载所述数据库对象的数据库在运行过程中生成的、与所述目标恢复点对应的全量类型的备份文件和/或增量类型的备份文件;所述目标备份文件的文件类型根据所述对象类型确定;
根据所述目标备份文件,对所述数据库对象执行数据恢复处理。
第二方面,本公开提供了一种数据恢复装置,该数据恢复装置包括:
获取单元,用于获取待恢复的数据库对象的对象标识和目标恢复点,所述目标恢复点包括所述数据库对象被恢复到的预设时刻点或者事务点;
第一确定单元,用于根据所述对象标识,确定所述数据库对象的对象类型;
第二确定单元,用于根据所述对象类型和所述目标恢复点,确定目标备份文件,其中,所述目标备份文件包括承载所述数据库对象的数据库在运行过程中生成的、与所述目标恢复点对应的全量类型的备份文件和/或增量类型的备份文件;所述目标备份文件的文件类型根据所述对象类型确定;
处理单元,用于根据所述目标备份文件,对所述数据库对象执行数据恢复处理。
第三方面,本公开提供了一种电子设备,该电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的数据恢复方法。
第四方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器执行时实现上述的数据恢复方法。
本公开所提供的实施例,可以不必依赖于人工,而是由电子设备在获取到待恢复的数据库对象的对象标识和目标恢复点之后,根据该对象标识,确定数据库对象的对象类型,并根据该对象类型和目标恢复点,确定目标备份文件,从而基于该目标备份文件高效且准确地完成对数据库对象的数据恢复处理。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1为本公开实施例提供的数据恢复方法的实施环境的示意图;
图2为本公开实施例提供的数据恢复方法的流程图;
图3为本公开实施例提供的确定目标备份文件的第一流程图;
图4为本公开实施例提供的备份点与目标恢复点的关系示意图;
图5为本公开实施例提供的数据恢复处理的第一流程图;
图6为本公开实施例提供的数据恢复处理的示意图;
图7为本公开实施例提供的确定目标备份文件的第二流程图;
图8为本公开实施例提供的确定目标备份文件的第二流程图;
图9为本公开实施例提供的一种数据恢复装置的框图;
图10为本公开实施例提供的一种电子设备的框图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
通常,数据库,例如mysql数据库在运行过程中,一般会采用全量备份和增量备份相结合的方式进行数据备份,从而在需要进行数据库恢复时,基于备份文件将数据库恢复到某个指定的恢复点,其中,恢复点可以为时刻点,或者也可以为事务点,事务点也可以称为全局事务标识(GTID,Global Transaction Identifiers)。
在相关技术中,在进行数据库恢复处理时,一般需要执行的步骤是:1、人工选择一用于执行恢复任务的空闲主机;2、根据恢复点,人工从基于全量备份方式生成的全量备份文件中确定合适的全量备份文件下载到该空闲主机上;3、在该空闲主机上基于该全量备份文件先恢复数据库实例到最近日期的备份点上,并启动数据库实例;4、人工从基于增量备份方式生成的增量备份文件中确定合适的增量备份文件并下载到该空闲主机上;5、在该空闲主机上基于确定的增量备份文件将数据库实例中的数据恢复到恢复点;6、停止原数据库实例,并将依赖原数据库实例的应用中的数据库地址设置为该数据库实例主的地址,或者,若仅仅是为了恢复原数据库实例中某个数据表或者某些数据记录,则可以从该数据库实例上导出该数据表或该数据记录,并导入原数据库实例。
由此可知,相关技术中的该种数据恢复方法,至少可能存在以下问题:1、每次恢复处理都依赖人工选择空闲主机,对主机资源,例如,磁盘容量、CPU和内存以及端口等均有额外要求,可能存在资源占用以及资源浪费问题;2、每次恢复均需要在空闲主机上下载确定的全量备份文件和增量备份文件,对网络带宽要求较高,若网络带宽较小,则由于文件传输耗时,会造成整个恢复处理的耗时增加;3、需要人工确定恢复点与全量备份集的备份点以及增量备份文件中备份点之间的差值,以准确将数据恢复到恢复点,若计算错误,则可能会导致数据恢复出错;4、在基于增量备份文件进行数据恢复时,由于整个过程是缓慢且是串行的,因此,在增量备份文件较多的情况下,也会造成整个恢复处理的耗时增加;5、无论何种应用场景,即,即使只需要恢复一张表或者一行数据记录,该种方法也需要进行整个数据库实例的恢复处理,效率低并且也不够精确。
请参看图1,其为本公开实施例提供的数据恢复方法的实施环境的示意图。如图1所示,该实施环境可以包括第一服务器101、第二服务器102、终端设备103以及网络104。
第一服务器101、第二服务器102可以是物理服务器,例如可以为刀片服务器、机架式服务器等,第一服务器101、第二服务器102也可以是虚拟服务器,例如可以是部署在云端的服务器集群,在此不做限定。
在本公开实施例中,第一服务器101可用于实现本公开任意实施例的数据恢复方法,以对待恢复的数据库对象进行数据恢复处理,该数据库对象例如可以为数据库中的数据库实例、数据表、数据表中的数据记录中的任意一种,该数据库可以部署于第二服务器103中。
第二服务器102可以部署有承载待恢复的数据对象的数据库,即,第二服务器102可以为数据库服务器,该数据库在运行过程中以全量备份和增量备份相结合的方式进行数据备份,得到的全量类型和增量类型的备份文件可以存储于第二服务器102中,其中,在本公开实施例中,如无特殊说明,以承载待恢复的数据库对象的数据库为mysql数据库为例进行说明,该全量类型的备份文件可以为mysql数据库基于全量备份机制生成的全量物理备份文件,该增量备份文件可以为mysql的binlog日志文件,当然,该数据库也可以为其他数据库,例如也可以为oracle数据库;可以理解的是,该全量类型和增量类型的备份文件也可以存储于其他服务器中,例如也可以存储于第一服务器101上,在此不做限定。
终端设备103可以是智能手机、便携式电脑、台式计算机、平板电脑等。在本公开实施例中,终端设备103可以用于向第一服务器101提供待恢复的数据库对象的对象标识以及目标恢复点,其中,目标恢复点可以为数据库对象被恢复到的预设时刻点或者事务点。
网络104可以是无线网络也可以是有线网络,可以是局域网也可以是广域网。第一服务器101、第二服务器102和终端设备103相互之间可以通过网络104进行通信。
在本公开实施例中,第一服务器101可用于参与实现根据本公开任意实施例的数据恢复方法。例如可以用于:获取终端设备102发送的处于第二服务器102上的待恢复的数据库对象的对象标识和目标恢复点,目标恢复点包括数据库对象被恢复到的预设时刻点或者事务点;根据对象标识,确定数据库对象的对象类型;根据对象类型和目标恢复点,确定目标备份文件,其中,目标备份文件包括承载数据库对象的数据库在运行过程中生成的、与目标恢复点对应的全量类型的备份文件和/或增量类型的备份文件;目标备份文件的文件类型根据对象类型确定;根据目标备份文件,对数据库对象执行恢复处理。
在本公开实施例中,在待恢复的数据库对象为数据库中的数据表或者数据记录的情况下,第一服务器101可以通过向第二服务器102发送控制指令的方式,以在第二服务器102的原数据库实例上直接进行针对数据库对象的数据恢复处理。
可以理解的是,图1所示的实施环境仅是解释性的,并且决不是为了要限制本公开、其应用或用途。例如,尽管图1仅示出一个第一服务器101、一个第二服务器102和一个终端设备102,但不意味着限制各自的数量,该实施环境中可以包含多个第一服务器101、多个第二服务器103以及多个终端设备102。
为解决相关技术中在进行数据库对象的数据恢复处理时所存在的至少一个问题,本公开实施例提供一种数据恢复方法,请参看图2,其为本公开实施例提供的数据恢复方法的流程图。该方法可以应用于电子设备中,该电子设备例如可以为图1所示的第一服务器101;当然,在一些实施例中,该电子设备也可以为终端设备,例如,也可以为图1所示的终端设备103,该终端设备103可以在获取到用户输入的待恢复的数据库对象的对象标识和目标恢复点的情况下,基于本公开实施例提供的数据恢复方法对该数据库对象进行数据恢复处理,此处不做特殊限定。在本公开实施例中,如无特殊说明,以将该方法应用于服务器中为例进行说明。
如图2所示,本公开实施例提供的数据恢复方法可以包括如下步骤S201-S204,以下予以详细说明。
步骤S201,获取待恢复的数据库对象的对象标识和目标恢复点,目标恢复点包括数据库对象被恢复到的预设时刻点或者事务点。
数据库(database),是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库为物理操作系统文件或者其他文件的集合,例如,在mysql数据库中,数据库文件可以是frm、myd、myi、ibd等格式的文件。
通常,数据库基于各种对象来组织、存储和管理数据,数据库对象一般可以有数据库实例、数据表、数据记录等,其中,数据库实例由数据库后台进程/线程以及一个共享内存区域组成,一个数据库实例对应唯一的一个服务端口,每一数据库实例对应独立的配置参数。
目标恢复点,可以是数据库对象被恢复到的预设时刻点或者事务点,也即该目标恢复点是期望数据库对象被恢复到的时刻点或者事务点,该时刻点或者事务点可以是数据库对象发生异常的前一时刻的时刻点或者事务点。
例如,在目标恢复点为时刻点的情况下,其可以为“xx年yy月zz日m时n分p秒”或者,也可以直接为时间戳的形式,此处不做特殊鉴定。
又例如,在目标恢复点为事务点的情况下,其可以为“uuid:ID”的形式,其中,事务是一个最小的不可在再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务是一个最小的工作单元)。
在本公开实施例中,在目标恢复点为事务点的情况下,该事务点可以是数据库在发生数据异常时刻的上一时刻所执行的事务的事务标识,即,该事务点是数据库在最后数据正常时刻所执行的事务的事务标识。事务点可以为“4E22FA47-73CA-21E1-9E33-D80AF9429562:36”的形式。
在本公开实施例中,如无特殊说明,以承载数据库对象的数据库为mysql数据库,以该数据库对象至少包括数据库实例、数据表以及数据记录为例进行说明;需要说明的是。在实际实施时,该数据库也可以为其他数据库,例如可以为Oracle数据库,该数据库对象也可以为视图、触发器、索引等对象中的一个或多个,此处不做特殊限定。
通常,在数据库运行过程中,因为数据库内部运行原因或者用户误操作,可能发生数据库实例、数据表被误删或者被误写入脏数据的异常情况,为了保障业务运行,通常需要快速且准确地对发生该种情况的数据库对象进行数据恢复处理,即,将该数据库对象恢复至该类异常发生之前的时刻点或者事务点。
在本公开实施例中,数据库对象的对象标识和目标恢复点,可以由用户在检测到数据库对象发生异常的情况下,将该数据库对象的对象标识以及期望恢复到的目标恢复点发送给电子设备,以触发电子设备基于该对象标识和目标恢复点对数据库对象进行数据库恢复处理。
在数据库对象为数据库实例的情况下,可以直接以该数据库实例的标识作为其对象标识,例如可以为“db01”;在该数据库对象为数据表的情况下,该对象标识可以为“数据库实例标识:数据表标识”的形式,例如可以为“db01:tbl01”;在数据库对象为数据记录的情况下,该对象标识可以为“数据库实例标识:数据表标识:预设值”的形式,例如,可以为“db01:tbl01:record”,其中,此处是以预设值为“record”,以标识数据库对象为数据记录,在实际实施时,该预设值可以根据需要进行设置,此处不做特殊限定。
步骤S202,根据对象标识,确定数据库对象的对象类型。
对象类型,用于表示待恢复的数据库对象的数据类型,在本公开实施例中,对象类型至少包括第一预设类型、第二预设类型和第三预设类型,其中,第一预设类型可以用于表示数据库对象为数据库实例,第二预设类型可以用于表示数据库对象为数据表,第三预设类型可以用于表示数据库对象为数据记录。
在实际实施时,该对象类型可以由电子设备根据获取到的对象标识确定。例如,电子设备在接收到对象标识为“db01”的情况下,可以确定数据库对象为第一预设类型;又例如,电子设备在接收到对象标识为“db01:tbl01”的情况下,可以确定该对象类型为上述第二预设类型;再例如,电子设备在接收到对象标识为“db01:tbl01:record”的情况下,可以确定该对象类型为上述第三预设类型。
需要说明的是,在实际实施时,该对象类型也可以根据其他方式确定,例如,可以根据该对象标识,在反映对象标识与对象类型之间对应关系的映射数据中查询得到该对象类型,此处不做特殊限定。
步骤S203,根据对象类型和目标恢复点,确定目标备份文件,其中,目标备份文件包括承载数据库对象的数据库在运行过程中生成的、与目标恢复点对应的全量类型和/或增量类型的备份文件;目标备份文件的文件类型根据对象类型确定。
通常,数据库在运行过程中,从数据收集的角度区分,其备份文件一般可以分为全量备份文件和增量备份文件,其中,全量备份文件是指备份当前数据库实例中的全部数据,该类型的备份文件的优点是数据备份较为完整,恢复时时间短,缺点是备份时间长;增量备份文件是指备份上一增量备份时刻至当前时刻之间发生改变的数据,该种备份文件的优点是备份时间短,缺点是恢复时间长;在实际实施时,数据库一般以组合备份方式进行备份,例如,在周日采取全量备份方式生成全量备份文件,在周一至周六采取增量备份方式。
在本公开实施例中,目标备份文件,为用于将数据库对象中数据恢复至目标恢复点处的数据库备份文件。
全量类型的备份文件,即全量备份文件,一般通过数据库对应的dump指令得到,例如,可以通过“mysqldump”指令得到名称为“mysq-bin.00000*”的全量备份文件。
增量类型的备份文件,即增量备份文件,一般通过备份数据库运行过程中生成的二进制日志文件,即binlog的方式得到,该二进制日志文件是数据库在运行过程中自动生成的、以事件形式记录对数据库执行更改的所有数据操作指令,其可以记录所有数据库中数据表结构变更(例如CREATE、ALTER TABLE…)以及数据表中数据记录修改(INSERT、UPDATE、DELETE…)。
在相关技术中,在进行数据恢复处理时,无论何种应用场景,即无论待恢复的数据库对象是数据库实例,还是数据表还是仅为数据记录,均是基于统一的恢复操作,即均是先基于“全量备份文件+增量备份文件”的方式恢复整个实例到恢复点,再基于恢复得到的数据库实例,通过整体替换原数据库实例,或者是导出数据表至原数据库实例,或者是导出数据表中数据记录至原数据库实例的方式完成数据恢复,该种数据恢复方式存在不够精确、耗时长以及效率低的问题。
为解决上述问题,在本公开实施例中,在经过上述步骤S201得到待恢复的数据库对象的对象标识和目标恢复点之后,并不是直接执行上述统一的数据恢复处理,而是先基于上述步骤S202确定数据库对象的对象类型,从而根据该对象类型以及该目标备份文件,精确的确定用于对该数据库对象进行数据恢复处理的目标备份文件的类型,即,在本公开实施例中,针对不同类型的数据库对象,可以不必均基于“全量备份文件+增量备份文件”的方式进行数据恢复处理,而是可以先确定是否仅使用该两种类型备份文件中的其中一种是否就可以精确且快速的完成数据恢复处理。
例如,考虑到在数据库对象为数据记录的情况下,由于数据记录可能是用户误执行了某些操作指令,即,sql语句,又考虑到数据库在运行过程中,通常会将数据库执行的每一数据操作指令存储于增量备份文件,即binlog中,因此,在对象类型表示数据库对象为数据记录的情况下,可以不必依赖于全量类型的全量备份文件进行数据库实例恢复,而是可以根据目标恢复点确定与该数据记录所处数据表对象的数据操作指令,并通过反向执行该数据操作指令,即可精确、快速且高效的完成数据恢复处理。
步骤S204,根据目标备份文件,对数据库对象执行数据恢复处理。
在基于步骤S203得到目标备份文件之后,即可基于该目标备份文件对数据库对象执行数据恢复处理。
根据以上说明可知,在本公开实施例中,可以不必依赖于人工进行手动数据恢复处理,而是由电子设备在获取到数据库对象和目标恢复点之后,通过确定数据库对象的对象类型,以根据该对象类型确定目标备份文件的文件类型,即,确定目标备份文件是全量类型还是增量类型还是两种类型均需要;同时,还可以根据该目标恢复点自动从备份文件集合中获取目标备份文件,并根据目标备份文件精确、快速且高效的对数据库对象执行数据恢复处理,以解决相关技术中在进行数据恢复处理时可能存在的步骤繁琐、耗时长、不够准确的问题。
请参看图3,其为本公开实施例提供的确定目标文件的第一流程图。在本公开实施例中,数据库对象的对象类型可以包括上述第一预设类型和上述第二预设类型,即,第一预设类型表示数据库对象为数据库实例,第二预设类型表示数据库对象为数据表;在该种实施方式中,上述步骤S203中所述的根据对象类型和目标恢复点,确定目标备份文件,包括:
步骤S301,在对象类型为第一预设类型或者第二预设类型的情况下,确定目标备份文件的文件类型为全量类型和增量类型。
步骤S302,根据确定的文件类型和目标恢复点,从与数据库对应的全量备份文件集合中,确定目标全量备份文件,并获取目标全量备份文件的备份点作为第一备份点,其中,全量备份文件集合包括至少一个全量类型的备份文件,其中,备份点与目标恢复点的类型一致;
目标全量备份文件,可以为包含该数据库对象在距目标恢复点最近的备份点的全量数据的全量备份文件,基于该目标全量备份文件,可以将数据库对象恢复至距目标恢复点最近的备份点。
备份点,是指目标全量备份文件所对应的备份时刻点或者事务点,备份点的类型根据目标恢复点的类型确定,例如,在目标恢复点为时刻点的情况下,备份点可以也为时刻点;而在目标恢复点为事务点的情况下,备份点也为事务点。在以下说明中,如无特殊说明,以目标恢复点和备份点均为时刻点为例进行说明。
该目标全量备份文件,可以是所有全量类型的备份文件,即全量备份文件中对应备份点小于目标恢复点且值最大的全量备份文件。例如,若目标恢复点为“2022年1月2日15时0分0秒”,则目标全量备份文件可以为备份时间小于该时间且值最大,即距离目标恢复点最近时刻点的全量备份文件,例如,若数据库每天0时进行一次全量备份,则目标全量备份文件可以为“2022年1月2日0时0分0秒”。
步骤S303,根据确定的文件类型、目标恢复点、第一备份点以及与数据库对应的增量备份文件集合,确定第二备份点和第三备份点,其中,增量备份文件集合包括至少一个增量类型的备份文件,至少一个增量类型的备份文件的备份点之间时序相连且相互之间不重合。
第二备份点和第三备份点,是用于确定目标增量备份文件所处备份点范围的两个备份点,其中,第二备份点为该备份点范围的起始点,第三备份点为该备份点范围的终止点。
即,由于目标全量备份文件仅包括距目标恢复点最近备份时刻的全量数据,因此,若需要精确完成针对数据库对象的数据恢复处理,则往往还需要对应增量类型的备份文件,即增量备份文件。
在相关技术中,一般是由人工根据恢复点计算需要使用的全量备份文件以及确定需要使用的增量备份文件,不仅步骤繁琐,而且还可能计算出错从而导致最终恢复结果不准确。为解决该问题,在本公开实施例中,可以不必依赖于人工确定,而是可以由电子设备先根据目标恢复点,自动确定目标全量备份文件,之后,可以根据目标全量备份文件的第一备份点,自动确定需要使用的增量备份文件所处的备份点范围,以获取目标增量备份文件。
步骤S304,将增量备份文件集合中,对应开始备份点处于第二备份点和第三备份点之间的备份文件确定为目标增量备份文件。
步骤S305,将目标全量备份文件和目标增量备份文件作为目标备份文件。
根据以上说明可知,在本公开实施例中,在数据库对象为第一预设类型或第二预设类型,即,为数据库实例或者数据表的情况下,可以不必依赖于人工手动计算确定目标备份文件,而是可以由电子设备根据目标恢复点,方便且准确地确定目标备份文件,以避免用户手动计算而可能存在的用户体验不佳以及因为计算不准确而导致恢复结果不准确的问题出现。
根据以上说明可知,上述步骤S301中所述的根据目标恢复点,从与数据库对象对应的全量备份文件集合中,确定目标全量备份文件,包括:从全量备份文件集合中,获取备份点小于目标恢复点的至少一个备份文件;将至少一个备份文件中备份点的值满足预设条件的备份文件作为目标全量备份文件。
该预设条件可以为备份点为该至少一个备份文件中的最大值。
即,在本公开实施例中,在数据库对象为数据库实例或者数据表的情况下,可以选择全量备份文件集合中,备份点小于目标恢复点且备份点最大,即距目标恢复点最近备份时刻的全量类型的备份文件作为目标全量备份文件,由于目标全量备份文件具有恢复速度快的优点,因此,基于目标全量备份文件进行数据恢复处理,可以提升数据恢复处理的执行速度。
在一些实施例中,上述步骤S303中的根据确定的文件类型、目标恢复点、第一备份点以及与数据库对象对应的增量备份文件集合,确定第二备份点和第三备份点,包括:将增量备份文件集合中,开始备份点小于第一备份点,且结束备份点大于第一备份点的备份文件的开始备份点作为第二备份点;以及,将增量备份文件集合中,开始备份点小于目标恢复点,且结束备份点大于目标恢复点的备份文件的开始备份点作为第三备份点。
请参看图4,其为本公开实施例提供的备份点与目标恢复点的关系示意图。在图4中,以t_des表示目标恢复点,以t_backupset表示第一备份点,以t_start1表示第二备份点,以t_end1表示t_start1对应的备份文件的结束备份点,以t_startn表示第三备份点,以t_end1表示t_startn对应的备份文件的结束备份点,其中,n为大于1的整数。
如图4所示,在本公开实施例中,为了精确且快速的完成对数据库对象的数据恢复处理,再确定距目标恢复点最近时刻,即t_backupset的全量备份文件作为全量备份文件之后;还需要基于增量类型的备份文件,即二进制日志文件将处于第一备份点t_backupset和目标恢复点t_des之间该数据库对象的数据恢复至该数据库对象,因此,需要基于如图4所示,选择包含该t_backupset的备份文件1的开始备份点作为第二备份点,选择包含t_des的备份文件2的开始备份点作为第三备份点;之后,将处于该第二备份点和该第三备份点之间的所有增量备份文件作为目标增量备份文件,即可基于得到的目标全量备份文件和该目标增量备份文件,高效地完成对数据库对象的数据恢复处理。
请参看图5,其为本公开实施例提供的数据恢复处理的第一流程图。如图5所示,一些实施例中,上述步骤S204中的根据目标备份文件,对数据库对象执行数据恢复处理,包括:步骤S501,在对象类型为第一预设类型的情况下,从预设设备集合中,获取满足预设条件的设备作为目标设备,其中,预设设备集合包括至少一个设备,设备用于执行对象类型为第一预设类型的数据库对象的数据恢复处理,预设条件包括:设备状态为空闲状态且设备当前资源大于或等于预设阈值;步骤S502,向目标设备发送控制指令,其中,控制指令用于指示目标设备获取目标备份文件,并基于目标备份文件对数据库对象执行数据恢复处理。
预设设备集合,可以为预设的用于进行数据恢复处理的空闲设备,设备为空闲状态是指设备当前未执行其他数据恢复处理,设备的资源可以为磁盘容量、cpu以及内存等资源,此处不做特殊限定。
即,在本公开实施例中,在对象类型为第一预设类型,即待恢复的数据库对象为数据库实例的情况下,由于该种情况通常是因为数据库实例发生了异常,因此,通常需要在当前数据库实例所处设备以外的空闲主机上进行数据恢复处理。
在相关技术中,一般是由用户手动选择需要执行恢复任务的设备,步骤较为繁琐,用户体验不佳;而在本公开实施例中,在数据库对象为数据库实例的情况下,可以不必人工进行选择,而是由电子设备从预设设备集合中,自动确定目标设备;之后,通过向目标设备发送控制指令的方式,触发目标设备下载目标备份文件,并基于目标备份文件对数据库对象执行数据恢复处理。
在一些实施例中,上述步骤S502中所述的向目标设备发送控制指令,包括:向目标设备发送第一控制指令,其中,第一控制指令用于指示目标设备获取目标备份文件;在确定目标设备获取到目标备份文件的情况下,向目标设备发送第二控制指令,其中,第二控制指令用于指示目标设备基于目标备份文件中的目标全量备份文件创建与数据库对象对应的目标数据库实例;在确定目标设备创建目标数据库实例的情况下,向目标设备发送第三控制指令,其中,第三控制指令中包括目标数据库实例的配置参数,配置参数用于指示目标设备启动目标数据库实例;在确定目标设备启动目标数据库实例的情况下,向目标设备发送第四控制指令;其中,第四控制指令用于指示目标设备在目标数据库实例中基于预设规则应用目标备份文件中的目标增量备份文件中的数据操作,以恢复数据库对象;预设规则包括:按照时序升序的顺序执行第一增量备份文件中处于第一备份点之后的数据操作指令、第二增量备份文件中的全部数据操作指令以及第三增量备份文件中处于目标恢复点之前的数据操作指令;第一增量备份文件为目标增量备份文件中对应开始备份点最小的文件,第三增量备份文件为目标增量备份文件中对应开始备份点最大的文件,第二增量备份文件为目标增量备份文件中除第一增量备份文件和第二增量备份文件以外的文件。
请参看图6,其为本公开实施例提供的数据恢复处理的第一示意图,其中,在图6中,以实施本公开实施例方法的电子设备为图1所示的第一服务器101为例,以数据库对象为对象标识为“db1”的数据库实例,目标恢复点为t_des,目标全量备份文件为备份点为t_backupset的备份文件all_backfile01,目标增量备份文件为处于t_start1和t_start3之间的binlog01、binlog02和binlog03为例进行说明。
如图6所示,第一服务器101在基于对象标识和目标恢复点确定目标备份文件之后,可以向从预设设备集合中确定的目标设备105发送第一控制指令,该第一控制指令指示目标设备下载all_backfile01、binlog01、binlog02;目标设备接收到第一控制指令之后,响应于该第一控制指令,下载目标备份文件至本地,并可以向第一服务器101发送表示下载成功的第一响应消息。
第一服务器101接收到第一响应消息,确定目标设备105获取到目标备份文件的情况下,可以向目标设备105发送第二控制指令,该第二控制指令指示目标设备基于目标全量备份文件即all_backfile01创建“db1”的目标数据库实例;目标设备105接收第二控制指令,并基于all_backfile01创建目标数据库实例“db01”之后,向第一服务器101发送对应的第二响应消息。
第一服务器101接收到第二响应消息,确定目标设备105成功创建目标数据库实例之后,向目标设备105发送第三控制指令,以指示目标设备105启动基于all_backfile01创建的目标数据库实例;目标设备105成功启动该实例之后,可以向第一服务器101发送对应的第三响应消息。
第一服务器101接收到第三响应消息之后,可以向目标设备105发送第四控制指令;目标设备105接收到该第四控制指令之后,可以先执行binlog01中处于t_backupset和t_end1之间的数据操作指令;之后在执行binlog02中的全部数据操作指令,以及执行binlog03中处于t_start3和t_des之间的数据操作指令,即可完成对数据库对象“db01”的数据恢复处理;当然,在恢复完成之后,目标设备105还可以向第一服务器101发送表示恢复完成的第四响应消息,此处不再赘述。
需要说明的是,在以上说明中,是以第一服务器101,即执行本公开实施例方法的电子设备通过交互的方式依次向目标设备发送控制指令来完成数据恢复处理;在一些实施例中,也可以通过其他方式来完成该数据恢复处理,此处不做特殊限定。
根据以上说明可知,本公开实施例提供的数据恢复方法,在待恢复的数据库对象为数据库实例的情况下,可以由电子设备基于对象标识和目标恢复点,自动确定目标备份文件,以及自动确定执行恢复任务的目标设备,并通过向目标设备发送控制指令的方式快速、准确且高效地完成针对该数据库对象的数据恢复处理。
请参看图7,其为本公开实施例提供的确定目标备份文件的第二流程图。如图7所示,在一些实施例中,目标增量备份文件可以为预设二进制日志文件;在该种实施方式中,上述步骤S204中所述的根据目标备份文件,对数据库对象执行数据恢复处理,包括:步骤S701,在对象类型为第二预设类型的情况下,在数据库对象当前所处的数据库实例中,创建与数据库对象的表结构相同的目标数据表;步骤S702,根据对象标识,从目标全量备份文件中获取与数据库对象对应的数据文件,其中,数据文件中包括数据库对象所对应的、截止到第一备份点的全部数据;步骤S703,根据数据文件,使用预设表空间导入指令,对目标数据表执行第一数据恢复处理;步骤S704,根据对象标识,从目标增量备份文件中,获取与数据库对象对应且处于第一备份点和目标恢复点之间的第一日志数据,并且删除所述第一日志数据中的预设数据操作指令,其中,第一日志数据表括在第一备份点之后针对数据库对象中数据的数据操作指令;步骤S705,根据第一日志数据,对执行第一数据恢复处理后的目标数据表执行第二数据恢复处理。
在本公开实施例中,该预设数据操作指令可以为用于删除数据表或者清空数据表的数据操作指令,例如,可以为“drop”或者“truncate”指令。
即,在该种实施方式中,若待恢复的数据库对象为数据表,则可以不必对该数据表所处的数据库实例中的全部数据进行数据恢复处理,而是可以先通过向该数据表所处数据库实例发送控制指令,以在该数据库实例中创建与该数据表的表结构,即表空间相同的目标数据表;之后,可以根据该数据表的标识,即该对象标识从目标全量备份文件中找出与其对象的数据文件,该数据文件可以为扩展名为“ibd”的文件;之后,可以执行预设表空间导入指令,例如“import tablespace”指令将该数据文件中该数据表对应的数据导入在原数据库实例中创建的与该表的表结构,即表空间相同的目标数据表中,以对目标数据表执行第一数据恢复处理;再之后,可以从目标增量备份文件中直接提取与该数据表对应且处于上述第一备份点和目标恢复点的第一日志数据,并通过在该数据表上应用第一日志数据中的数据操作指令,即可完成对数据库对象的数据恢复处理。
根据以上说明可知,在本公开实施例中,在待恢复的数据库对象为数据表的情况下,可以不需要额外的硬件资源,即,可以不需要选择执行恢复任务的空闲主机,而是可以在该数据表所处的数据库中直接进行数据恢复处理;并且,在恢复数据表中数据时,不需要如相关技术中所述的恢复其对应的整个数据库实例,而是可以对该数据表进行精确的恢复处理,从而还可以缩短恢复时长,提升数据恢复效率。
请参看图8,其为本公开实施例提供的确定目标备份文件的第二流程图。如图8所示,在本公开实施例中,数据库对象的对象类型还可以为第三预设类型,第三预设类型表示数据库对象为数据表中的数据记录;在该种实施方式中,上述步骤S204中所示的根据对象类型和目标恢复点,确定目标备份文件,包括:步骤S801,在对象类型为第三预设类型的情况下,确定目标备份文件的文件类型为增量类型;步骤S802,获取数据库对象所处数据表的数据表标识;步骤S803,根据确定的文件类型,从与数据库对应的增量备份文件集合中,获取与数据表标识对应且处于目标恢复点之后的第二日志数据;步骤S804,对第二日志数据中的数据操作指令执行逆反操作,获得第三日志数据;根据第三日志数据,生成目标备份文件。
其中,在该种实施方式中,根据目标备份文件,对数据库对象执行数据恢复处理,可以为:在数据库对象所处的数据表中,根据第三日志数据中的数据操作指令所对应的原始生成时间,按照逆序的顺序执行第三日志数据中的数据操作指令,完成针对数据库对象的数据恢复处理,其中,原始生成时间为数据操作指令在第二日志数据中原始对应的生成时间。
即,在本公开实施例中,在待恢复的数据对象为数据记录,即为某一数据表中的部分数据的情况下,则可以不必获取全量备份文件,而是可以直接获取处于目标恢复点之后的增量类型的备份文件作为目标备份文件,例如,在目标恢复点为t_des的情况下,可以将处于t_des和当前时刻之间的全部增量备份文件作为目标备份文件。
由于该部分数据记录是通过在目标恢复点之后对其所处数据表执行数据操作而导致数据发生变化的,因此,可以获取到的目标备份文件,即binlog中,根据该数据记录所处的数据表的数据表标识,提取在目标恢复点之后对应的日志作为第二日志数据;之后,通过对数据操作指令执行逆反操作,即,“delete”类型操作指令逆反为“insert”指令,得到第三日志数据,并通过基于该第三日志数据,对当前该数据表执行逆反操作,即可在该数据表中恢复该些数据记录。
需要说明的是,在实际实施时,上述步骤S803中所述的对第二日志数据中的数据操作指令执行逆反操作,获得第三日志数据,可以基于开源工具binlog2sql完成,或者,也可以通过自定义处理完成,此处不做特殊限定。
可见,本公开实施例提供的数据恢复方法,在待恢复的数据库对象为数据表中数据记录的情况下,同样可以不需要额外的硬件资源,即,可以不需要选择执行恢复任务的空闲主机,而是可以在该数据表所处的数据库中直接进行数据恢复处理;并且,在恢复数据表中数据时,不需要如相关技术中所述的恢复其对应的整个数据库实例,而是可以通过在该数据记录所处的数据表上执行第三日志数据中的数据操作指令的方式对该数据记录进行精确的恢复处理,从而还可以缩短恢复时长,提升数据恢复效率。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了数据恢复装置、电子设备、计算机可读存储介质,上述均可用来实现本公开提供的任一种数据恢复方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
图9为本公开实施例提供的一种数据恢复装置的框图。
参照图9,本公开实施例提供了一种数据恢复装置,该数据恢复装置900包括:获取单元901、第一确定单元902、第二确定单元903和处理单元904。
该获取单元901,用于获取待恢复的数据库对象的对象标识和目标恢复点,目标恢复点包括数据库对象被恢复到的预设时刻点或者事务点。
该第一确定单元902,用于根据对象标识,确定数据库对象的对象类型。
该第二确定单元903,用于根据对象类型和目标恢复点,确定目标备份文件,其中,目标备份文件包括承载数据库对象的数据库在运行过程中生成的、与目标恢复点对应的全量类型的备份文件和/或增量类型的备份文件;目标备份文件的文件类型根据对象类型确定。
该处理单元904,用于根据目标备份文件,对数据库对象执行数据恢复处理。
在一些实施例中,对象类型包括第一预设类型和第二预设类型,第一预设类型表示数据库对象为数据库实例,第二预设类型表示数据库对象为数据表;该第二确定单元903在根据对象类型和目标恢复点,确定目标备份文件时,可以用于:在对象类型为第一预设类型或者第二预设类型的情况下,确定目标备份文件的文件类型为全量类型和增量类型,根据确定的文件类型和目标恢复点,从与数据库对应的全量备份文件集合中,确定目标全量备份文件,并获取目标全量备份文件的备份点作为第一备份点,其中,全量备份文件集合包括至少一个全量类型的备份文件,备份点与目标恢复点的类型一致;根据确定的文件类型、目标恢复点、第一备份点以及与数据库对应的增量备份文件集合,确定第二备份点和第三备份点,其中,增量备份文件集合包括至少一个增量类型的备份文件,且至少一个增量类型的备份文件的备份点之间时序相连且相互之间不重合;将增量备份文件集合中,对应开始备份点处于第二备份点和第三备份点之间的备份文件确定为目标增量备份文件;将目标全量备份文件和目标增量备份文件作为目标备份文件。
在一些实施例中,该第二确定单元903在根据目标恢复点,从与数据库对象对应的全量备份文件集合中,确定目标全量备份文件时,可以用于:从全量备份文件集合中,获取备份点小于目标恢复点的至少一个备份文件;将至少一个备份文件中备份点的值满足预设条件的备份文件作为目标全量备份文件。
在一些实施例中,该第二确定单元903在根据确定的文件类型、目标恢复点、第一备份点以及与数据库对象对应的增量备份文件集合,确定第二备份点和第三备份点时,可以用于:将增量备份文件集合中,开始备份点小于第一备份点,且结束备份点大于第一备份点的备份文件的开始备份点作为第二备份点;将增量备份文件集合中,开始备份点小于目标恢复点,且结束备份点大于目标恢复点的备份文件的开始备份点作为第三备份点。
在一些实施例中,该处理单元904在根据述目标备份文件,对数据库对象执行数据恢复处理时,可以用于:在对象类型为第一预设类型的情况下,从预设设备集合中,获取满足预设条件的设备作为目标设备,其中,预设设备集合包括至少一个设备,设备用于执行对象类型为第一预设类型的数据库对象的数据恢复处理,预设条件包括:设备状态为空闲状态且设备当前资源大于或等于预设阈值;向目标设备发送控制指令,其中,控制指令用于指示目标设备获取目标备份文件,并基于目标备份文件对数据库对象执行数据恢复处理。
在一些实施例中,该处理单元904在向目标设备发送控制指令时,可以用于:向目标设备发送第一控制指令,其中,第一控制指令用于指示目标设备获取目标备份文件;在确定目标设备获取到目标备份文件的情况下,向目标设备发送第二控制指令,其中,第二控制指令用于指示目标设备基于目标备份文件中的目标全量备份文件创建与数据库对象对应的目标数据库实例;在确定目标设备创建目标数据库实例的情况下,向目标设备发送第三控制指令,其中,第三控制指令中包括目标数据库实例的配置参数,配置参数用于指示目标设备启动目标数据库实例;在确定目标设备启动目标数据库实例的情况下,向目标设备发送第四控制指令;其中,第四控制指令用于指示目标设备在目标数据库实例中基于预设规则应用目标备份文件中的目标增量备份文件中的数据操作,以恢复数据库对象;预设规则包括:按照时序升序的顺序执行第一增量备份文件中处于第一备份点之后的数据操作指令、第二增量备份文件中的全部数据操作指令以及第三增量备份文件中处于目标恢复点之前的数据操作指令;第一增量备份文件为目标增量备份文件中对应开始备份点最小的文件,第三增量备份文件为目标增量备份文件中对应开始备份点最大的文件,第二增量备份文件为目标增量备份文件中除第一增量备份文件和第二增量备份文件以外的文件。
在一些实施例中,目标增量备份文件包括预设二进制日志文件;该处理单元904在根据目标备份文件,对数据库对象执行数据恢复处理时,可以用于:在对象类型为第二预设类型的情况下,在数据库对象当前所处的数据库实例中,创建与数据库对象的表结构相同的目标数据表;根据对象标识,从目标全量备份文件中获取与数据库对象对应的数据文件,其中,数据文件中包括数据库对象所对应的、截止到第一备份点的全部数据;根据数据文件,使用预设表空间导入指令,对目标数据表执行第一数据恢复处理;根据对象标识,从目标增量备份文件中,获取与数据库对象对应且处于第一备份点和目标恢复点之间的第一日志数据,并且删除第一日志数据中的预设数据操作指令,其中,第一日志数据表括在第一备份点之后针对数据库对象中数据的数据操作指令;根据第一日志数据,对执行第一数据恢复处理的目标数据表执行第二数据恢复处理。
在一些实施例中,对象类型包括第三预设类型,第三预设类型表示数据库对象为数据表中的数据记录;该第二确定单元903在根据对象类型和目标恢复点,确定目标备份文件时,可以用于:在对象类型为第三预设类型的情况下,确定目标备份文件的文件类型为增量类型;获取数据库对象所处数据表的数据表标识;根据确定的文件类型,从与数据库对应的增量备份文件集合中,获取与数据表标识对应且处于目标恢复点之后的第二日志数据;对第二日志数据中的数据操作指令执行逆反操作,获得第三日志数据;根据第三日志数据,生成目标备份文件。
在一些实施例中,该第二确定单元903在根据目标备份文件,对数据库对象执行数据恢复处理时,可以用于:在数据库对象所处的数据表中,根据第三日志数据中的数据操作指令所对应的原始生成时间,按照逆序的顺序执行第三日志数据中的数据操作指令,完成针对数据库对象的数据恢复处理,其中,原始生成时间为数据操作指令在第二日志数据中原始对应的生成时间。
图10为本公开实施例提供的一种电子设备的框图。
参照图10,本公开实施例提供了一种电子设备,该电子设备1000包括:至少一个处理器1001;至少一个存储器1002,以及一个或多个I/O接口1003,连接在处理器1001与存储器1002之间;其中,存储器1002存储有可被至少一个处理器1001执行的一个或多个计算机程序,一个或多个计算机程序被至少一个处理器1001执行,以使至少一个处理器1001能够执行上述的数据恢复方法。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器执行时实现上述的数据恢复方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述的数据恢复方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读程序指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM)、静态随机存取存储器(SRAM)、闪存或其他存储器技术、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储预设(期望)的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读程序指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里所描述的计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据恢复装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据恢复装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据恢复装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据恢复装置、或其它设备上,使得在计算机、其它可编程数据恢复装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据恢复装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
Claims (12)
1.一种数据恢复方法,其特征在于,包括:
获取待恢复的数据库对象的对象标识和目标恢复点,所述目标恢复点包括所述数据库对象被恢复到的预设时刻点或者事务点;
根据所述对象标识,确定所述数据库对象的对象类型;
根据所述对象类型和所述目标恢复点,确定目标备份文件,其中,所述目标备份文件包括承载所述数据库对象的数据库在运行过程中生成的、与所述目标恢复点对应的全量类型的备份文件和/或增量类型的备份文件;所述目标备份文件的文件类型根据所述对象类型确定;
根据所述目标备份文件,对所述数据库对象执行数据恢复处理。
2.根据权利要求1所述的方法,其特征在于,所述对象类型包括第一预设类型和第二预设类型,所述第一预设类型表示所述数据库对象为数据库实例,所述第二预设类型表示所述数据库对象为数据表;
所述根据所述对象类型和所述目标恢复点,确定目标备份文件,包括:
在所述对象类型为所述第一预设类型或者所述第二预设类型的情况下,确定所述目标备份文件的文件类型为全量类型和增量类型;
根据所述确定的文件类型和所述目标恢复点,从与所述数据库对应的全量备份文件集合中,确定目标全量备份文件,并获取所述目标全量备份文件的备份点作为第一备份点,其中,所述全量备份文件集合包括至少一个全量类型的备份文件,所述备份点与所述目标恢复点的类型一致;
根据所述确定的文件类型、所述目标恢复点、所述第一备份点以及与所述数据库对应的增量备份文件集合,确定第二备份点和第三备份点,其中,所述增量备份文件集合包括至少一个增量类型的备份文件,所述至少一个增量类型的备份文件的备份点之间时序相连且相互之间不重合;
将所述增量备份文件集合中,对应开始备份点处于所述第二备份点和所述第三备份点之间的备份文件确定为目标增量备份文件;
将所述目标全量备份文件和所述目标增量备份文件作为所述目标备份文件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述确定的文件类型、所述目标恢复点,从与所述数据库对象对应的全量备份文件集合中,确定目标全量备份文件,包括:
从所述全量备份文件集合中,获取备份点小于所述目标恢复点的至少一个备份文件;
将所述至少一个备份文件中备份点的值满足预设条件的备份文件作为所述目标全量备份文件。
4.根据权利要求2所述的方法,其特征在于,所述根据所述目标恢复点、所述第一备份点以及与所述数据库对象对应的增量备份文件集合,确定第二备份点和第三备份点,包括:
将所述增量备份文件集合中,开始备份点小于所述第一备份点,且结束备份点大于所述第一备份点的备份文件的开始备份点作为所述第二备份点;
将所述增量备份文件集合中,开始备份点小于所述目标恢复点,且结束备份点大于所述目标恢复点的备份文件的开始备份点作为所述第三备份点。
5.根据权利要求2所述的方法,其特征在于,所述根据所述目标备份文件,对所述数据库对象执行数据恢复处理,包括:
在所述对象类型为所述第一预设类型的情况下,从预设设备集合中,获取满足预设条件的设备作为目标设备,其中,所述预设设备集合包括至少一个设备,所述设备用于执行对象类型为所述第一预设类型的数据库对象的数据恢复处理,所述预设条件包括:设备状态为空闲状态且设备当前资源大于或等于预设阈值;
向所述目标设备发送控制指令,其中,所述控制指令用于指示所述目标设备获取所述目标备份文件,并基于所述目标备份文件对所述数据库对象执行数据恢复处理。
6.根据权利要求5所述的方法,其特征在于,所述向所述目标设备发送控制指令,包括:
向所述目标设备发送第一控制指令,其中,所述第一控制指令用于指示所述目标设备获取所述目标备份文件;
在确定所述目标设备获取到所述目标备份文件的情况下,向所述目标设备发送第二控制指令,其中,所述第二控制指令用于指示所述目标设备基于所述目标备份文件中的目标全量备份文件创建与所述数据库对象对应的目标数据库实例;
在确定所述目标设备创建所述目标数据库实例的情况下,向所述目标设备发送第三控制指令,其中,所述第三控制指令中包括所述目标数据库实例的配置参数,所述配置参数用于指示所述目标设备启动所述目标数据库实例;
在确定所述目标设备启动所述目标数据库实例的情况下,向所述目标设备发送第四控制指令;
其中,所述第四控制指令用于指示所述目标设备在所述目标数据库实例中基于预设规则应用所述目标备份文件中的目标增量备份文件中的数据操作,以恢复所述数据库对象;
所述预设规则包括:按照时序升序的顺序执行第一增量备份文件中处于第一备份点之后的数据操作指令、第二增量备份文件中的全部数据操作指令以及第三增量备份文件中处于目标恢复点之前的数据操作指令;
所述第一增量备份文件为所述目标增量备份文件中对应开始备份点最小的文件,所述第三增量备份文件为所述目标增量备份文件中对应开始备份点最大的文件,所述第二增量备份文件为所述目标增量备份文件中除所述第一增量备份文件和所述第二增量备份文件以外的文件。
7.根据权利要求2所述的方法,其特征在于,所述目标增量备份文件包括预设二进制日志文件;
所述根据所述目标备份文件,对所述数据库对象执行数据恢复处理,包括:
在所述对象类型为所述第二预设类型的情况下,在所述数据库对象当前所处的数据库实例中,创建与所述数据库对象的表结构相同的目标数据表;
根据所述对象标识,从所述目标全量备份文件中获取与所述数据库对象对应的数据文件,其中,所述数据文件中包括所述数据库对象所对应的、截止到所述第一备份点的全部数据;
根据所述数据文件,使用预设表空间导入指令,对所述目标数据表执行第一数据恢复处理;
根据所述对象标识,从所述目标增量备份文件中,获取与所述数据库对象对应且处于所述第一备份点和所述目标恢复点之间的第一日志数据,并且删除所述第一日志数据中的预设数据操作指令,其中,所述第一日志数据表括在所述第一备份点之后针对所述数据库对象中数据的数据操作指令;
根据所述第一日志数据,对执行所述第一数据恢复处理后的目标数据表执行第二数据恢复处理。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述对象类型包括第三预设类型,所述第三预设类型表示所述数据库对象为数据表中的数据记录;
所述根据所述对象类型和所述目标恢复点,确定目标备份文件,包括:
在所述对象类型为所述第三预设类型的情况下,确定所述目标备份文件的文件类型为增量类型;
获取所述数据库对象所处数据表的数据表标识;
根据所述确定的文件类型,从与所述数据库对应的增量备份文件集合中,获取与所述数据表标识对应且处于所述目标恢复点之后的第二日志数据;
对所述第二日志数据中的数据操作指令执行逆反操作,获得第三日志数据;
根据所述第三日志数据,生成所述目标备份文件。
9.根据权利要求8所述的方法,其特征在于,所述根据所述目标备份文件,对所述数据库对象执行数据恢复处理,包括:
在所述数据库对象所处的数据表中,根据所述第三日志数据中的数据操作指令所对应的原始生成时间,按照逆序的顺序执行所述第三日志数据中的数据操作指令,完成针对所述数据库对象的数据恢复处理,其中,所述原始生成时间为数据操作指令在所述第二日志数据中原始对应的生成时间。
10.一种数据恢复装置,其特征在于,包括:
获取单元,用于获取待恢复的数据库对象的对象标识和目标恢复点,所述目标恢复点包括所述数据库对象被恢复到的预设时刻点或者事务点;
第一确定单元,用于根据所述对象标识,确定所述数据库对象的对象类型;
第二确定单元,用于根据所述对象类型和所述目标恢复点,确定目标备份文件,其中,所述目标备份文件包括承载所述数据库对象的数据库在运行过程中生成的、与所述目标恢复点对应的全量类型的备份文件和/或增量类型的备份文件;所述目标备份文件的文件类型根据所述对象类型确定;
处理单元,用于根据所述目标备份文件,对所述数据库对象执行数据恢复处理。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-9中任一项所述的数据恢复方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序在被处理器执行时实现如权利要求1-9中任一项所述的数据恢复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211273485.2A CN116149902A (zh) | 2022-10-18 | 2022-10-18 | 数据恢复方法及装置、电子设备、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211273485.2A CN116149902A (zh) | 2022-10-18 | 2022-10-18 | 数据恢复方法及装置、电子设备、计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116149902A true CN116149902A (zh) | 2023-05-23 |
Family
ID=86337858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211273485.2A Pending CN116149902A (zh) | 2022-10-18 | 2022-10-18 | 数据恢复方法及装置、电子设备、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116149902A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881051A (zh) * | 2023-09-06 | 2023-10-13 | 天津神舟通用数据技术有限公司 | 一种数据备份与恢复方法、装置、电子设备和存储介质 |
CN116909816A (zh) * | 2023-09-13 | 2023-10-20 | 腾讯科技(深圳)有限公司 | 数据库恢复方法和装置、存储介质及电子设备 |
-
2022
- 2022-10-18 CN CN202211273485.2A patent/CN116149902A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881051A (zh) * | 2023-09-06 | 2023-10-13 | 天津神舟通用数据技术有限公司 | 一种数据备份与恢复方法、装置、电子设备和存储介质 |
CN116881051B (zh) * | 2023-09-06 | 2023-12-08 | 天津神舟通用数据技术有限公司 | 一种数据备份与恢复方法、装置、电子设备和存储介质 |
CN116909816A (zh) * | 2023-09-13 | 2023-10-20 | 腾讯科技(深圳)有限公司 | 数据库恢复方法和装置、存储介质及电子设备 |
CN116909816B (zh) * | 2023-09-13 | 2024-01-09 | 腾讯科技(深圳)有限公司 | 数据库恢复方法和装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116149902A (zh) | 数据恢复方法及装置、电子设备、计算机可读存储介质 | |
US10083092B2 (en) | Block level backup of virtual machines for file name level based file search and restoration | |
US11455276B2 (en) | Method for processing snapshots and distributed block storage system | |
US10585760B2 (en) | File name level based file search and restoration from block level backups of virtual machines | |
US10628270B1 (en) | Point-in-time database restoration using a reduced dataset | |
US10146633B2 (en) | Data recovery from multiple data backup technologies | |
CN112114999A (zh) | 一种数据备份方法、数据恢复方法、装置及电子设备 | |
EP3474143B1 (en) | Method and apparatus for incremental recovery of data | |
CN107085613B (zh) | 入库文件的过滤方法和装置 | |
CN108572888B (zh) | 磁盘快照创建方法和磁盘快照创建装置 | |
CN109753381B (zh) | 一种基于对象存储的持续数据保护方法 | |
US11093380B1 (en) | Automated testing of backup component upgrades within a data protection environment | |
US10228879B1 (en) | System and method for backup and restore of offline disks in mainframe computers | |
CN112231288A (zh) | 日志存储方法和装置、介质 | |
CN111625396B (zh) | 备份数据的校验方法、服务器及存储介质 | |
CN108089942B (zh) | 一种数据备份、恢复方法及装置 | |
CN111625397B (zh) | 业务日志备份方法、集群、装置、电子设备及存储介质 | |
US9983866B1 (en) | Upgrade compatibility checks in a client-server environment | |
CN111858158A (zh) | 数据处理方法、装置及电子设备 | |
CN107908441B (zh) | 一种数据库的升级方法及升级装置 | |
CN112699129A (zh) | 一种数据处理系统、方法及装置 | |
CN111813588A (zh) | 一种计算机硬盘故障定位方法、装置、设备及存储介质 | |
CN112433738B (zh) | 一种固件更新测试方法、系统、设备以及介质 | |
CN111104787B (zh) | 用于比较文件的方法、设备和计算机程序产品 | |
CN116149904A (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 |