A data backup method and a data recovery method
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- BEIJING OCEANBASE TECHNOLOGY CO LTD
- Filing Date
- 2026-05-19
- Publication Date
- 2026-08-04
AI Technical Summary
不可靠的数据备份容易导致备份集失真或者数据缺失等问题,进而无法达成数据恢复目标,造成不可逆的数据损失,严重时甚至造成经济损失
[0010]根据本说明书一个或多个实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现上述方法的步骤。
Smart Images

Figure CN122507559A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of data backup technology, and in particular to a data backup method and a data recovery method. Background Technology
[0002] In the digital age, data has become a core asset for all types of organizations. Data backup, as a core data protection technology, can address the risks of data corruption and loss caused by hardware failures, human error, malicious attacks, etc., by copying and storing data on independent media.
[0003] In practical applications, the reliability of the data backup process is a crucial prerequisite for ensuring data recoverability. Unreliable data backups can easily lead to problems such as backup set distortion or data loss, making data recovery impossible and causing irreversible data loss, which can even result in economic losses in severe cases. Therefore, improving the reliability of data backups is a pressing technical problem that needs to be solved. Summary of the Invention
[0004] In view of the above, one or more embodiments of this specification provide a data backup method, a data recovery method, a data backup device, a data recovery device, a computing device, a computer-readable storage medium, and a computer program product to improve the reliability of data backup.
[0005] According to a first aspect of one or more embodiments of this specification, a data backup method is provided, comprising: Obtain the first incremental backup data and its metadata; A second verification value is generated based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data; the first verification value is generated based on the metadata of the second incremental backup data and the verification value of the previous backup data of the second incremental backup data; the second incremental backup data is the previous backup data of the first incremental backup data; The second verification value is associated with and stored in relation to the first incremental backup data.
[0006] According to a second aspect of one or more embodiments of this specification, a data recovery method is provided, comprising: Multiple target backup data sets are determined from a plurality of backup data sets for data recovery; the plurality of target backup data sets include a full backup data set and at least one incremental backup data set. Calculate the verification value of the at least one incremental backup data based on the verification value of the full backup data and the metadata of the at least one incremental backup data; Determine whether the calculated verification value is consistent with the verification value of the at least one pre-stored incremental backup data, and obtain the determination result; Based on the judgment result, data recovery is performed using the multiple target backup data.
[0007] According to a third aspect of one or more embodiments of this specification, a data backup apparatus is provided, comprising: The acquisition module is used to acquire the first incremental backup data and the metadata of the first incremental backup data; The verification value generation module is used to generate a second verification value based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data; the first verification value is generated based on the metadata of the second incremental backup data and the verification value of the previous backup data of the second incremental backup data; the second incremental backup data is the previous backup data of the first incremental backup data; The storage module is used to associate and store the second verification value with the first incremental backup data.
[0008] According to a fourth aspect of one or more embodiments of this specification, a data recovery apparatus is provided, comprising: A determination module is used to determine multiple target backup data for data recovery from multiple backup data; the multiple target backup data includes a full backup data and at least one incremental backup data; The calculation module is used to calculate the verification value of the at least one incremental backup data based on the verification value of the full backup data and the metadata of the at least one incremental backup data. The judgment module is used to determine whether the calculated verification value is consistent with the verification value of the at least one pre-stored incremental backup data, and to obtain a judgment result; The recovery module is used to perform data recovery using the multiple target backup data based on the judgment result.
[0009] According to a fifth aspect of one or more embodiments of this specification, a computing device is provided, including a memory, a processor, and computer instructions stored in the memory and executable on the processor, wherein the processor, when executing the computer instructions, implements the steps of the method described above.
[0010] According to a sixth aspect of one or more embodiments of this specification, a computer-readable storage medium is provided that stores computer instructions which, when executed by a processor, implement the steps of the method described above.
[0011] According to a seventh aspect of the embodiments of this specification, a computer program product is provided, including a computer program / instructions that, when executed by a processor, implement the steps of the above-described method.
[0012] One embodiment of this specification can achieve at least the following beneficial effects: This embodiment can obtain an incremental backup request for first data; perform incremental backups on the first data to generate a first incremental backup set, the first incremental backup set including first incremental backup data and metadata of the first incremental backup data; generate a second verification value based on the metadata of the first incremental backup data and a first verification value of the second data, the first verification value being generated based on the metadata of the second data and the verification value of the previous backup data of the second data, the second data being the previous backup data of the first data; and store the second verification value associated with the first incremental backup data. During data backup, this embodiment can generate a verification value for the current backup data based on the verification value of the previous backup data and the metadata of the current backup data, thereby ensuring the verifiability of the backup relationship chain between backup data. That is, the reliability of the backup relationship chain between backup data can be verified through the verification value, thus improving the reliability of data backup. Attached Figure Description
[0013] To more clearly illustrate the technical solutions in the embodiments or prior art of this specification, the drawings used in the description of the embodiments or prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this specification. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0014] Figure 1 This is a schematic diagram of a reverse linked list provided in one embodiment of this specification; Figure 2 This is a schematic diagram illustrating an application scenario of a data backup method provided in one embodiment of this specification; Figure 3 This is a flowchart of a data backup method provided in one embodiment of this specification; Figure 4 This is a schematic diagram illustrating a data backup method provided in one embodiment of this specification; Figure 5 This is a schematic diagram illustrating the calculation principle of a verification value provided in one embodiment of this specification; Figure 6 This is a schematic diagram illustrating the calculation principle of a verification value provided in one embodiment of this specification; Figure 7 This is a flowchart of a data recovery method provided in one embodiment of this specification; Figure 8This is a schematic diagram of the structure of a data backup device provided in one embodiment of this specification; Figure 9 This is a schematic diagram of the structure of a data recovery device provided in one embodiment of this specification; Figure 10 This is a structural block diagram of a computing device provided in one embodiment of this specification. Detailed Implementation
[0015] To enable those skilled in the art to better understand the technical solutions in this specification, the technical solutions in the embodiments of this specification will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this specification, and not all embodiments. Based on the embodiments in this specification, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of this specification.
[0016] This specification uses specific terms to describe embodiments thereof. Terms such as "an embodiment," "one embodiment," and / or "some embodiments" refer to a particular feature, structure, or characteristic associated with at least one embodiment of this specification. Therefore, it should be emphasized and noted that references to "an embodiment," "one embodiment," or "an alternative embodiment" in different locations throughout this specification do not necessarily refer to the same embodiment. Furthermore, those skilled in the art can combine and integrate the different embodiments or examples described herein, as well as the features of those different embodiments or examples, without contradiction.
[0017] The terminology used in one or more embodiments of this specification is for the purpose of describing particular embodiments only and is not intended to be limiting of the one or more embodiments of this specification. The singular forms “a,” “an,” “an,” “the,” and “the” as used in one or more embodiments of this specification and the appended claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term “and / or” as used in one or more embodiments of this specification includes any or all possible combinations of one or more associated listed items.
[0018] The terms “comprising,” “including,” or any other variations thereof are intended to cover a non-exclusive inclusion, such that a process, method, product, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, product, or apparatus. Without further limitation, the presence of additional identical or equivalent elements in the process, method, product, or apparatus that includes said elements is not excluded.
[0019] Although the terms "first," "second," etc., may be used to describe various information in one or more embodiments of this specification, this information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another. For example, "first" may also be referred to as "second," and similarly, "second" may also be referred to as "first," without departing from the scope of one or more embodiments of this specification. Ordinal numbers such as "first," "second," etc., do not necessarily indicate order; often they are used to facilitate the distinction of objects. For example, "first server" and "second server" usually refer to two servers. To distinguish these two servers, they are described as "first server" and "second server." Of course, sometimes these two servers may be the same server.
[0020] Depending on the context, the word "if" as used here can be interpreted as "when," "when," or "in response to determination."
[0021] In this specification, unless explicitly stated otherwise, "receiving and sending data" does not necessarily mean direct receiving and sending; it can also mean indirect receiving and sending. For example, A receiving data sent by B can be understood as A directly receiving the data sent by B, or it can be understood as A indirectly receiving the data sent by B through other entities such as C. Similarly, B sending data to A can be understood as B sending the data directly to A, or it can be understood as B indirectly sending the data to A through other entities such as C. Here, C can be one entity, or it can be two or more entities.
[0022] In this specification, unless explicitly stated otherwise, the relationships between structures can be direct or indirect. For example, when describing "A is connected to B," unless it is explicitly stated that A and B are directly connected, it should be understood that A can be directly connected to B or indirectly connected to B. Similarly, when describing "A is on top of B," unless it is explicitly stated that A is directly above B (AB is adjacent and A is above B), it should be understood that A can be directly above B or indirectly above B (AB is separated by other elements, and A is above B). And so on.
[0023] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties. Furthermore, the collection, use and processing of the relevant data must comply with the relevant laws, regulations and standards of the relevant regions, and corresponding operation entry points are provided for users to choose to authorize or refuse.
[0024] The following is an explanation of the terminology used in the embodiments of this specification.
[0025] Data backup: refers to the technology of copying and storing all or part of the data to an independent medium to prevent data damage, distortion or loss caused by system failure, human error or malicious attack.
[0026] Incremental backup: refers to a backup method that only backs up data that has changed since the last data backup.
[0027] Full backup: also known as complete backup, refers to a backup method that performs a complete backup of all data at a specific point in time.
[0028] Checksum: A checksum is a fixed-length digital identifier calculated using an encryption algorithm. Checksums can be used to verify the integrity and uniqueness of data, and to prevent data tampering.
[0029] A hash algorithm, also known as a hashing algorithm, is a cryptographic algorithm that can only encrypt data one way and cannot decrypt it. It is used to convert data of arbitrary length into a short string of fixed length. This string is called a hash value, and different data will produce different hash values. Hash values are typically used as digital identifiers for data, indicating its identity while also ensuring its security.
[0030] In related technologies, OceanBase is a native distributed relational database. OceanBase supports both full and incremental backup methods. In practical applications, when backing up data in OceanBase, the server generates a corresponding backup set. A backup set can be understood as a logical data management unit used to organize the data in that backup into a unified entity, enabling efficient data management and rapid data recovery. A backup set contains the backup data and its metadata. This metadata may include the backup type, such as an identifier indicating a full backup or an incremental backup, as well as information such as the backup set identifier, the identifier of the previous backup set, and the data version identifier of the backup data. The server can organize the backup set into a reverse linked list using this metadata, allowing it to find all necessary backup sets during data recovery and thus complete the recovery process.
[0031] Figure 1 This is a schematic diagram of a reverse linked list provided in one embodiment of this specification. For example... Figure 1As shown, full backup set 1 is obtained by performing a full backup of the data in the OceanBase database. Incremental backup set 2 is obtained by performing incremental backups based on full backup set 1, and incremental backup set 3 is obtained by performing incremental backups based on incremental backup set 2. Data version identifier 1 is the data version identifier of the backup data in incremental backup set 2, and data version identifier 2 is the data version identifier of the backup data in incremental backup set 3. Assuming that the data needs to be restored to the data state represented by data version identifier 2, we can first find incremental backup set 3 and obtain its incremental backup data. Then, based on the backup identifier of the previous backup set that incremental backup set 3 depends on, we can find incremental backup set 2 and obtain its incremental backup data. After that, based on the backup identifier of the previous backup set that incremental backup set 2 depends on, we can find full backup set 1 and obtain its full backup data. Finally, based on the full backup data of full backup set 1, the incremental backup data of incremental backup set 2, and the incremental backup data of incremental backup set 3, the data can be restored to the data state represented by data version identifier 2.
[0032] In practical applications, this data backup method lacks a mechanism to verify the dependencies between backup sets during data recovery. For example, a malicious attacker might tamper with the dependencies between backup sets, such as changing the backup identifier of the previous backup set that incremental backup set 3 depends on to full backup set 1, causing errors during data recovery, such as unreliable data obtained from data recovery, or even the inability to complete data recovery.
[0033] To address the shortcomings of related technologies, this solution provides the following embodiments: Figure 2 This is a schematic diagram illustrating an application scenario of a data backup method provided in one embodiment of this specification. For example... Figure 2 As shown, this application scenario includes first incremental backup data 1, metadata 2 of the first incremental backup data, and server 3. First incremental backup data 1 can also be represented by DATA. Server 3 can be a standalone physical server, a server cluster consisting of multiple physical servers, a distributed file system, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks (CDNs), and big data and artificial intelligence platforms.
[0034] In this embodiment of the specification, server 3 can obtain first incremental backup data 1 and metadata 2 of the first incremental backup data; generate a second verification value based on the metadata 2 of the first incremental backup data and the first verification value of the second incremental backup data, wherein the first verification value is generated based on the metadata of the second incremental backup data and the verification value of the previous backup data of the second incremental backup data; the second incremental backup data is the previous backup data of the first incremental backup data; and associate the second verification value with the first incremental backup data 1 for storage.
[0035] The training method of the model provided in the embodiments of this specification will be described below with reference to the accompanying drawings.
[0036] Figure 3 This is a flowchart illustrating a data backup method according to an embodiment of this specification. From a programming perspective, the entity executing the process can be a program hosted on a terminal server. From a hardware perspective, the entity executing the process can be any device, equipment, platform, or cluster of devices with computing and processing capabilities. Figure 3 As shown, the method may include the following steps.
[0037] Step 302: Obtain the first incremental backup data and the metadata of the first incremental backup data.
[0038] In the embodiments of this specification, the first incremental backup data can be the incremental backup data obtained after performing an incremental backup. As a specific implementation, the first incremental backup data can be the incremental backup data obtained after performing an incremental backup of the data in the OceanBase database. Optionally, incremental backup refers to a backup method that only backs up data that has changed since the last data backup.
[0039] In one specific implementation, the metadata of the first incremental backup data can be data used to describe the first incremental backup data. For example, the metadata of the first incremental backup data may include at least one of the following: data indicating the backup type of the first incremental backup data, the backup identifier of the first incremental backup data, the backup identifier of the previous backup data of the first incremental backup data, and the data version identifier of the first incremental backup data. Optionally, the metadata of the first incremental backup data may also include information such as the backup timestamp of the first incremental backup data, the data size of the first incremental backup data, and the checksum of the first incremental backup data.
[0040] In practical applications, client users can request incremental backups of data in the OceanBase database. The server can then respond to this request by performing incremental backups on the OceanBase database, resulting in an incremental backup set. This set may include the first incremental backup data and its metadata, allowing the server to access both the data and its metadata. Optionally, the backup set can be understood as a logical data management unit, used to organize the data from this backup into a unified entity for efficient data management and rapid data recovery.
[0041] Step 304: Generate a second verification value based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data; the first verification value is generated based on the metadata of the second incremental backup data and the verification value of the previous backup data of the second incremental backup data; the second incremental backup data is the previous backup data of the first incremental backup data.
[0042] In the embodiments described in this specification, the check value refers to a fixed-length digital identifier calculated using an encryption algorithm. The check value can be used to verify the integrity and uniqueness of data, and to prevent data tampering.
[0043] Optionally, a second verification value can be generated based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data. For example, an encryption algorithm can be used to encrypt and calculate the metadata of the first incremental backup data and the first verification value of the second incremental backup data to obtain the second verification value. As a specific implementation method, the encryption algorithm used can be a symmetric encryption algorithm, an asymmetric encryption algorithm, or a hash algorithm, etc.
[0044] In the embodiments of this specification, the second incremental backup data can be the previous backup data of the first incremental backup data. Optionally, the second incremental backup data can be incremental backup data obtained by performing an incremental backup. As a specific implementation, the metadata of the second incremental backup data can be data used to describe the second incremental backup data. Optionally, the metadata of the second incremental backup data can include at least one of backup type data representing the incremental backup, backup identifier of the second incremental backup data, backup identifier of the previous backup data of the second incremental backup data, and data version identifier of the second incremental backup data. Optionally, the metadata of the second incremental backup data may also include information such as the backup timestamp of the second incremental backup data, the data size of the second incremental backup data, and the checksum of the second incremental backup data.
[0045] Optionally, the first verification value can be generated based on the metadata of the second incremental backup data and the verification value of the previous backup data. For example, an encryption algorithm can be used to encrypt and calculate the metadata of the second incremental backup data and the verification value of the previous backup data to obtain the first verification value. Optionally, the encryption algorithm used can be a symmetric encryption algorithm, an asymmetric encryption algorithm, or a hash algorithm, etc. As a specific implementation, the encryption algorithm used can be the same as or different from the encryption algorithm used to generate the second verification value.
[0046] In the embodiments described in this specification, the checksum of the current backup data can be generated based on the checksum of the previous backup data and the metadata of the current backup data. In this way, if the metadata of a backup data is lost or tampered with, the checksum of that backup data and subsequent checksums of that backup data will be affected, causing the calculated checksum to differ from the expected checksum. This allows detection of a problem in the backup chain containing that backup data, thereby ensuring the reliability of data backup and data recovery.
[0047] Optionally, the backup relationship chain refers to the dependencies between backup data. The core of the backup relationship chain is to ensure the consistency, integrity, and recoverability of backup data.
[0048] Step 306: Associate and store the second verification value with the first incremental backup data.
[0049] In the embodiments described in this specification, the second verification value can be associated with and stored in relation to the first incremental backup data. For example, an association relationship can be established between the second verification value and the first incremental backup data, and this association relationship can be stored.
[0050] As one specific implementation, the second verification value can be added as a field to the metadata of the first incremental backup data, thereby associating the metadata of the first incremental backup data with the first incremental backup data for storage. For example, an association relationship can be established between the metadata of the first incremental backup data and the first incremental backup data, and this association relationship can be stored.
[0051] In the embodiments described in this specification, the second verification value is stored in association with the first incremental backup data. Subsequently, the second verification value can be found through the first incremental backup data, or the first incremental backup data can be found through the second verification value, thereby facilitating subsequent data backup or data recovery.
[0052] The various technical features in the above embodiments can be combined arbitrarily, as long as there is no conflict or contradiction between the combinations of features. However, due to space limitations, they have not been described one by one. Therefore, the arbitrary combination of various technical features in the above embodiments is also within the scope of this specification.
[0053] In the embodiments of this specification, the checksum of the current backup data can be generated based on the checksum of the previous backup data and the metadata of the current backup data, thereby enabling chained generation of checksums. This chained generation of checksums ensures the verifiability of the backup relationship chain between backup data; that is, the reliability of the backup relationship chain can be verified through the checksum, thus ensuring the reliability of data backup and data recovery.
[0054] based on Figure 2 In addition to the method described herein, this specification also provides some implementation methods of the method, which will be described below.
[0055] In this embodiment of the specification, the first incremental backup data and its metadata can be obtained by performing incremental backups. Optionally, before obtaining the first incremental backup data and its metadata, the method may further include: Get an incremental backup request for the first full dataset.
[0056] Incremental backups are performed on the first full data to generate a first incremental backup set. The first incremental backup set includes the first incremental backup data and its metadata.
[0057] Optionally, "full data" can refer to the complete dataset. For example, it could be the complete dataset stored in the database at a specific point in time. As a specific implementation, an incremental backup request can be a backup request for data in the OceanBase database.
[0058] Optionally, incremental backups of the first full dataset can be performed on data that has changed since the previous full dataset backup. Alternatively, the first incremental backup data can be data that has changed since the previous full dataset backup.
[0059] In the embodiments of this specification, the metadata of the first incremental backup data may include at least one of the following: data indicating the backup type of the first incremental backup data, the backup identifier of the first incremental backup data, the backup identifier of the previous backup data of the first incremental backup data, and the data version identifier of the first incremental backup data. As a specific implementation, the metadata of the first incremental backup data may also include information such as the backup timestamp of the first incremental backup data, the data size of the first incremental backup data, and the checksum of the first incremental backup data.
[0060] In practical applications, before generating the second checksum, the first checksum of the second incremental backup data can be generated first. Optionally, before obtaining the incremental backup request for the first full data, the method may further include: Get an incremental backup request for the second full dataset.
[0061] Perform incremental backups on the second full data set to generate a second incremental backup set. The second incremental backup set includes the second incremental backup data and its metadata.
[0062] The first verification value is generated based on the metadata of the second incremental backup data and the verification value of the previous backup data of the second incremental backup data.
[0063] The first verification value is associated with and stored with the second incremental backup data.
[0064] In the embodiments of this specification, the second full data can be data prior to the first full data. Optionally, incremental backup of the aforementioned first full data can be the backup of data that has changed relative to the second full data. Optionally, incremental backup of the second full data can be the backup of data that has changed relative to the previous backup of the second full data.
[0065] Specifically, incremental backups of the second full dataset yield a second incremental backup set. This second incremental backup set may include the second incremental backup data and its metadata. Optionally, the second incremental backup data may be data that has changed since the previous backup of the second full dataset. The metadata of the second incremental backup data may be data describing the second incremental backup data. Optionally, the metadata of the second incremental backup data may include at least one of the following: data indicating the backup type of the second incremental backup data, a backup identifier for the second incremental backup data, a backup identifier for the previous backup data of the second incremental backup data, and a data version identifier for the second incremental backup data. As one specific implementation, the metadata of the second incremental backup data may also include information such as the backup timestamp of the second incremental backup data, the size of the second incremental backup data, and the checksum of the second incremental backup data.
[0066] In the embodiments described in this specification, a first verification value can be generated based on the metadata of the second incremental backup data and the verification value of the previous backup data of the second incremental backup data. For example, encryption algorithms such as symmetric encryption algorithms, asymmetric encryption algorithms, or hash algorithms can be used to generate the first verification value.
[0067] Optionally, the first checksum can be associated with the second incremental backup data and stored. For example, an association can be established between the first checksum and the second incremental backup data, and this association can be stored. Alternatively, the first checksum can be added as a field to the metadata of the second incremental backup data, thereby associating the metadata of the second incremental backup data with the second incremental backup data.
[0068] In one specific implementation, the preceding backup data for the second incremental backup data can be the full backup data. Optionally, before obtaining the incremental backup request for the second full data, the method may further include: Get a full backup request for the third full dataset.
[0069] A full backup is performed on the third full data set to generate a first full backup set. The first full backup set includes the first full backup data and its metadata. The first full backup data is the previous backup data of the second incremental backup data.
[0070] A third verification value is generated based on the metadata of the first full backup data.
[0071] The third verification value is associated with and stored in relation to the first full backup data.
[0072] In the embodiments of this specification, the third full data can be data prior to the second full data. Optionally, incremental backup of the aforementioned second full data can be the backup of data that has changed relative to the third full data. Optionally, full backup of the third full data can be a complete backup of the third full data. A full backup, also known as a complete backup, refers to a backup method that performs a complete backup of all data at a specific point in time.
[0073] In this embodiment, performing a full backup of the third full data can generate a first full backup set. The first full backup set may include the first full backup data and its metadata. Optionally, the first full backup data may be the same as the third full data. As a specific implementation, the metadata of the first full backup data may be data describing the first full backup data. For example, the metadata of the first full backup data may include at least one of the following: data indicating the backup type of the first full backup data, a backup identifier of the first full backup data, and a data version identifier of the first full backup data. As a specific implementation, the metadata of the first full backup data may also include information such as the backup timestamp of the first full backup data, the data size of the first full backup data, and the checksum of the first full backup data.
[0074] In the embodiments of this specification, a third verification value can be generated based on the metadata of the first full backup data. For example, encryption algorithms such as symmetric encryption, asymmetric encryption, or hash algorithms can be used to generate the third verification value. Optionally, the third verification value can be associated with and stored in relation to the first full backup data. For example, an association relationship can be established between the third verification value and the first full backup data, and this association relationship can be stored. Alternatively, the third verification value can be added as a field to the metadata of the first full backup data, thereby associating and storing the metadata of the first full backup data with the first full backup data.
[0075] In one specific implementation, the preceding backup data of the second incremental backup data can be the incremental backup data. Optionally, before obtaining the incremental backup request for the second full data, the method may further include: Get an incremental backup request for the third full dataset.
[0076] Incremental backups are performed on the third full data set to generate a third incremental backup set. The third incremental backup set includes the third incremental backup data and its metadata. The third incremental backup data is the previous backup data of the second incremental backup data.
[0077] A fourth verification value is generated based on the metadata of the third incremental backup data and the verification value of the previous backup data of the third incremental backup data.
[0078] The fourth verification value is associated with and stored with the third incremental backup data.
[0079] In the embodiments of this specification, the third full data can be data prior to the second full data. Optionally, incremental backup of the aforementioned second full data can be the backup of data that has changed relative to the third full data. Optionally, incremental backup of the third full data can be the backup of data that has changed relative to the previous backup of the third full data.
[0080] Specifically, incremental backups of the third full dataset yield a third incremental backup set. This third incremental backup set may include the third incremental backup data and its metadata. Optionally, the third incremental backup data may be data that has changed since the previous backup of the third full dataset. The metadata of the third incremental backup data may be data describing the third incremental backup data. Optionally, the metadata of the third incremental backup data may include at least one of the following: data indicating the backup type of the third incremental backup data, a backup identifier for the third incremental backup data, a backup identifier for the previous backup data of the third incremental backup data, and a data version identifier for the third incremental backup data. As one specific implementation, the metadata of the third incremental backup data may also include information such as the backup timestamp of the third incremental backup data, the size of the third incremental backup data, and the checksum of the third incremental backup data.
[0081] In the embodiments described in this specification, a fourth verification value can be generated based on the metadata of the third incremental backup data and the verification value of the previous backup data of the third incremental backup data. For example, encryption algorithms such as symmetric encryption algorithms, asymmetric encryption algorithms, or hash algorithms can be used to generate the fourth verification value.
[0082] Optionally, the fourth checksum can be stored in association with the third incremental backup data. For example, an association can be established between the fourth checksum and the third incremental backup data, and this association can be stored. Alternatively, the fourth checksum can be added as a field to the metadata of the third incremental backup data, thereby associating the metadata of the third incremental backup data with the third incremental backup data.
[0083] In the embodiments of this specification, a hash algorithm can be used to generate a second verification value for the first incremental backup data. Optionally, generating the second verification value based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data may specifically include: Based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data, a second verification value is generated using a hash algorithm.
[0084] Optionally, the hash algorithm used to generate the second check value can be an MD series algorithm, such as MD4 or MD5, or a SHA series algorithm, such as SHA-1 or SHA-2, or a BLAKE series algorithm, such as BLAKE2 or BLAKE3, or a RIPEMD series algorithm, such as RIPEMD-160 or RIPEMD-256.
[0085] As one specific implementation, the step of generating a second verification value using a hash algorithm based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data may specifically include: The metadata of the first incremental backup data and the first checksum of the second incremental backup data are concatenated according to a preset format to obtain concatenated data.
[0086] The concatenated data is hashed to obtain the second verification value.
[0087] In the embodiments described in this specification, the metadata and the first checksum of the first incremental backup data can be concatenated according to a preset format. For example, the first checksum can be placed before the metadata of the first incremental backup data, or after the metadata of the first incremental backup data, or the first checksum can be segmented to obtain multiple segmented checksums, and then these multiple segmented checksums can be interspersed in the metadata of the first incremental backup data.
[0088] Furthermore, hash calculations can be performed on the concatenated data, such as using the hash algorithm mentioned earlier, to obtain the second verification value of the first incremental backup data.
[0089] As one specific implementation, the step of generating a second verification value using a hash algorithm based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data may specifically include: A hash calculation is performed on the metadata of the first incremental backup data to obtain a first hash value. A hash calculation is then performed on the first hash value and the first checksum of the second incremental backup data to obtain a second checksum.
[0090] Alternatively, a hash calculation can be performed on the first checksum of the second incremental backup data to obtain a second hash value. Then, a hash calculation can be performed on the second hash value and the metadata of the first incremental backup data to obtain the second checksum.
[0091] In the embodiments of this specification, the metadata of the first incremental backup data can first be hashed to obtain a first hash value. For example, at least one of the hash algorithms mentioned above, such as the MD series algorithms, SHA series algorithms, BLAKE series algorithms, and RIPEMD series algorithms, can be used to hash the metadata of the first incremental backup data. Then, these algorithms can be used to hash the first hash value and the first verification value of the second incremental backup data to obtain a second verification value. Optionally, the algorithm used to obtain the first hash value and the algorithm used to obtain the second verification value can be the same or different.
[0092] As one specific implementation, a second hash value can be obtained by first hashing the first checksum of the second incremental backup data. For example, at least one of the hash algorithms mentioned earlier, such as the MD series, SHA series, BLAKE series, and RIPEMD series, can be used to hash the first checksum. Then, these algorithms can be used to hash the second hash value and the metadata of the first incremental backup data to obtain the second checksum. Optionally, the algorithm used to obtain the second hash value and the algorithm used to obtain the second checksum can be the same or different.
[0093] Figure 4 This is a schematic diagram illustrating a data backup method provided in one embodiment of this specification, such as... Figure 4As shown, full data 402 includes data A, which can be obtained by performing a full backup of the initial data. For example, performing a full backup of the initial data can yield a first backup set, which can include first backup data and first metadata. Here, the first backup data can be the data from full data 402. Full data 404 is the data following full data 402. Full data 404 can include data A and data B. In practical applications, incremental backups can be performed on full data 404, specifically backing up the data in full data 404 that has changed from full data 402, thereby obtaining a second backup set. The second backup set can include second backup data and second metadata. The second backup data can include data B and information indicating the addition of data B. Full data 406 is the data following full data 404. Full data 406 can include data A and data C. Optionally, incremental backups can be performed on full data 406, specifically backing up the data in full data 406 that has changed from full data 404, thereby obtaining a third backup set. The third backup set may include third backup data and third metadata. The third backup data may include data C, information indicating the addition of data C, data B, and information indicating the removal of data B. Full data 408 is the data following full data 406. Full data 408 may include data A, data B, and data C. Optionally, a full backup of full data 408 can be performed, specifically backing up all data in full data 408 to obtain a fourth backup set. The fourth backup set may include fourth backup data and fourth metadata. Here, the fourth backup data may be the data from full data 408. The fourth backup data may include data A, data B, and data C. Full data 410 is the data following full data 408. Full data 410 may include data A, data B, data C, and data D. Optionally, an incremental backup of full data 410 can be performed, specifically backing up the data in full data 410 that has changed from full data 408, thereby obtaining a fifth backup set. The fifth backup set may include fifth backup data and fifth metadata. The fifth backup data may include data D and information indicating the addition of data D.
[0094] Optionally, the metadata may include at least one of backup type, backup set id, prev backup set id, and snapshot version. Backup type can represent the backup type of the backup data; for example, backup type can be FULL, which represents a full backup, or backup type can be INC, which represents an incremental backup. Backup set id can represent the backup identifier of the backup set or backup data, specifically an integer that increments with the number of data backups. Prev backup set id can represent the backup identifier of the previous backup data. If the backup type of the backup data is a full backup, then prev backup set id and backup set id are equal; if the backup type of the backup data is an incremental backup, then prev backup set id can be equal to the backup set id of the previous backup data. Snapshot version can represent the data version identifier of the backup data. During data recovery, snapshot version can be used to determine whether to select the backup set corresponding to this snapshot version. During the data backup process, backup data and its corresponding metadata can be stored together. As a specific implementation, the first metadata of the first backup data can be...<FULL,backup set id=1,prev backup set id=1,snapshotversion=1000> The second metadata of the second backup data can be...<INC,backup set id=2,prev backupset id=1,snapshot version=2000> The third metadata of the third backup data can be...<INC,backup setid=3,prev backup set id=2,snapshot version=3000> The fourth metadata of the fourth backup data can be...<FULL,backup set id=4,prev backup set id=4,snapshot version=6000> The fifth metadata of the fifth backup data can be...<INC,backup set id=5,prev backup set id=4,snapshotversion=8000> .
[0095] In practical applications, data recovery can be performed using backup sets, or the backup relationship chain containing the backup data. For example, to restore data to the full data state (406), you can first find the third backup set, then find the previous backup set based on the metadata of the third backup set (e.g., the second backup set), and so on, until you find the backup set containing the full backup data. For example, if the found backup sets are the third, second, and first backup sets, you can use the backup relationship chain of the third backup set - second backup set - first backup set to perform data recovery.
[0096] In the embodiments of this specification, if the backup data is a full backup, the checksum of the backup data can be calculated based on its metadata. If the backup data is an incremental backup, the checksum of the backup data can be calculated based on its metadata and the checksum of the previous backup. As a specific implementation, the formula for calculating the checksum can be as follows:
[0097] in, H i Indicates the first i The verification value of the backup data. H i-1 Indicates the first i The checksum of the previous backup data for each backup data. M i Indicates the first i Metadata of backup data express M i hash value, express M i and H i-1 The hash value, backup set i represents the hash value of the backup set i. i The backup type of the backup data.
[0098] Figure 5 This is a schematic diagram illustrating the calculation principle of a verification value provided in one embodiment of this specification. For example... Figure 5As shown, M1 can represent the first metadata of the first backup data, DATA1 can represent the first backup data, M2 can represent the second metadata of the second backup data, DATA2 can represent the second backup data, M3 can represent the third metadata of the third backup data, and DATA3 can represent the third backup data. Optionally, the first metadata M1 can be encrypted to obtain the first checksum H1 of the first backup data DATA1. The first checksum H1 and the second metadata M2 can be encrypted to obtain the second checksum H2 of the second backup data DATA2. The second checksum H2 and the third metadata M3 can be encrypted to obtain the third checksum H3 of the third backup data DATA3. Figure 6 This is a schematic diagram illustrating the calculation principle of a verification value according to an embodiment of this specification, such as... Figure 6 As shown, DATA4 can represent the fourth backup data, M4 can represent the fourth metadata of the fourth backup data DATA4, DATA5 can represent the fifth backup data, and M5 can represent the fifth metadata of the fifth backup data DATA5. Optionally, the fourth metadata M4 can be encrypted to obtain the fourth checksum H4 of the fourth backup data DATA4. The fourth checksum H4 and the fifth metadata M5 can be encrypted to obtain the fifth checksum H5 of the fifth backup data DATA5.
[0099] In the embodiments of this specification, a checksum for the current backup data can be generated based on the checksum of the previous backup data and the metadata of the current backup data. This ensures the verifiability of the backup relationship chain between backup data, meaning the reliability of the backup relationship chain can be verified through the checksum, thus improving the reliability of data backup. For example, suppose data needs to be restored to the state of snapshot version=3000. First, the metadata of each backup set can be queried to find the backup set corresponding to snapshot version=3000. For instance, if the backup set corresponding to snapshot version=3000 is the third backup set, then the metadata of the third backup set can be used to find the previous backup set of the third backup set, and the metadata of the previous backup set can be used to find the backup set before that previous backup set, until the backup set containing the full backup data is found. For example, if the final found backup sets are the third, second, and first backup sets, the checksum corresponding to the first backup set can be calculated first based on the metadata in the first backup set. This checksum is then compared with a pre-stored first checksum. If the checksum matches the first checksum, it means the metadata of the found first backup set is accurate and complete, and has not been tampered with. Further, the checksum of the second backup set can be calculated based on the calculated checksum of the first backup set and the metadata of the second backup set. This checksum is then compared with a pre-stored second checksum. If the checksum of the second backup set matches the pre-stored second checksum, it means the metadata of the found second backup set is accurate, and has not been tampered with. Going further, the checksum of the third backup set can be calculated based on the calculated checksum of the second backup set and the metadata of the third backup set. This checksum is then compared with a pre-stored third checksum. If the checksum of the third backup set matches the pre-stored third checksum, it means the metadata of the found third backup set is accurate, and has not been tampered with. This allows for the verification of the accuracy of the backup relationship chain from the third backup set to the second backup set and then to the first backup set, thereby improving the reliability of data backup and data recovery.
[0100] This specification innovatively introduces checksum calculation technology, organizing full backup data and incremental backup data into an immutable chain structure. By generating a unique checksum for each backup set and constructing a chain dependency relationship, the change trajectory of the backup set can be dynamically recorded during the backup phase. During data recovery, the consistency of the checksum is verified to ensure that the backup relationship chain has not been tampered with, thereby achieving automated integrity verification of data backup and reliable data recovery.
[0101] The various technical features in the above embodiments can be combined arbitrarily, as long as there is no conflict or contradiction between the combinations of features. However, due to space limitations, they have not been described one by one. Therefore, the arbitrary combination of various technical features in the above embodiments is also within the scope of this specification.
[0102] Based on the same idea, this specification also provides a data recovery method corresponding to the above data backup method in the embodiments.
[0103] Figure 7 This is a flowchart illustrating a data recovery method provided in one embodiment of this specification. Figure 7 As shown, the data recovery method includes the following steps.
[0104] Step 702: Identify multiple target backup data sets from a plurality of backup data sets for data recovery. The plurality of target backup data sets include one full backup data set and at least one incremental backup data set.
[0105] In practical applications, backup data can be obtained through data backup. For example, incremental backups can be performed to obtain incremental backup data, and full backups can be performed to obtain full backup data. In the embodiments of this specification, multiple backup data can refer to the set of backup data stored in the historical backup process. Optionally, multiple backup data may include at least one full backup data and at least one incremental backup data.
[0106] In the embodiments of this specification, multiple target backup data may be determined based on target data version identifiers. The target data version identifier indicates the version identifier of a certain data to which the data needs to be restored. Optionally, before determining the multiple target backup data for data recovery from the multiple backup data, the method may further include: Obtain the target data version identifier.
[0107] The step of determining multiple target backup data for data recovery from multiple backup data may specifically include: Based on the target data version identifier and the metadata of the plurality of backup data, a plurality of target backup data for data recovery are determined from the plurality of backup data. The metadata of any backup data includes at least one of data indicating the backup type of any backup data, the backup identifier of any backup data, the backup identifier of the previous backup data of any backup data, and the data version identifier of any backup data.
[0108] In the embodiments described in this specification, the target data version identifier can be the version identifier of the target data that the client user wants to restore the data to. For example, if the client user wants to restore the data to a certain target data, they can send the target data version identifier of that target data to the server, so that the server can obtain the target data version identifier.
[0109] Optionally, multiple target backup data for data recovery can be determined from multiple backup data based on the target data version identifier and the metadata of multiple backup data. For example, a first target backup data can be determined from multiple backup data based on the target data version identifier, and then multiple target backup data for data recovery can be determined based on the metadata of the first target backup data. Optionally, the metadata of the first target backup data may include the target data version identifier. As a specific implementation, determining multiple target backup data for data recovery from multiple backup data based on the target data version identifier and the metadata of the multiple backup data may specifically include: From the plurality of backup data, determine a first target backup data containing metadata of the target data version identifier; Based on the metadata of the first target backup data, multiple target backup data are determined for data recovery.
[0110] In the embodiments described in this specification, the identified multiple target backup data may include a full backup data and at least one incremental backup data. The incremental backup data may be obtained by backing up the full backup data.
[0111] In the embodiments of this specification, the metadata of the backup data may include the backup identifier of the previous backup data. Optionally, the metadata of the backup data may also include at least one of data indicating the backup type of the backup data, the backup identifier of the backup data, and the data version identifier of the backup data. As a specific implementation, the metadata of the backup data may also include information such as the backup timestamp, the data size of the backup data, and the checksum of the backup data.
[0112] In practical applications, the backup data preceding the first target backup data can be determined based on the backup identifier of the previous backup data in the metadata of the first target backup data. Assuming that the previous backup data is the second target backup data, the backup data preceding the second target backup data can be determined based on the backup identifier of the previous backup data in the metadata of the second target backup data. This process continues until the determined backup data is a full backup data, thereby obtaining multiple target backup data for data recovery.
[0113] Step 704: Calculate the verification value of the at least one incremental backup data based on the verification value of the full backup data and the metadata of the at least one incremental backup data.
[0114] In the embodiments described in this specification, the verification value refers to a fixed-length digital identifier calculated using an encryption algorithm. Optionally, the verification value of the full backup data can be obtained based on the metadata of the full backup data. For example, the metadata of the full backup data can be encrypted using an encryption algorithm to obtain the verification value of the full backup data. As a specific implementation method, the encryption algorithm used can be a symmetric encryption algorithm, an asymmetric encryption algorithm, or a hash algorithm, etc.
[0115] Optionally, the metadata of the incremental backup data can be data used to describe the incremental backup data. The metadata of the incremental backup data may include at least one of the following: data indicating the backup type of the incremental backup data, the backup identifier of the incremental backup data, the backup identifier of the previous backup data, and the data version identifier of the incremental backup data. Optionally, the metadata of the incremental backup data may also include information such as the backup timestamp of the incremental backup data, the size of the incremental backup data, and the checksum of the incremental backup data.
[0116] In the embodiments of this specification, an encryption algorithm can be used to perform encrypted calculations on the verification value of the full backup data and the metadata of at least one incremental backup data to calculate the verification value of the at least one incremental backup data. As a specific implementation, the encryption algorithm used can be a symmetric encryption algorithm, an asymmetric encryption algorithm, or a hash algorithm, etc.
[0117] Step 706: Determine whether the calculated verification value is consistent with the verification value of the at least one pre-stored incremental backup data, and obtain the determination result.
[0118] In this embodiment, the checksum of the pre-stored incremental backup data can be calculated during the data backup process based on the checksum of the full backup data preceding the incremental backup data and the metadata of the incremental backup data. Specifically, it can be obtained by encrypting the checksum of the full backup data preceding the incremental backup data and the metadata of the incremental backup data using an encryption algorithm. Optionally, the encryption algorithm used can be a symmetric encryption algorithm, an asymmetric encryption algorithm, or a hash algorithm, etc. As a specific implementation, the encryption algorithm used here is the same as the encryption algorithm used in step 704 to calculate the checksum of at least one incremental backup data.
[0119] In practical applications, the checksum of at least one incremental backup data can be stored in association with that incremental backup data. Optionally, the checksum of the at least one incremental backup data can be determined based on the association relationship between the checksum of the at least one incremental backup data and that incremental backup data.
[0120] Optionally, the judgment result may indicate that the calculated check value matches the check value of at least one pre-stored incremental backup data. Alternatively, the judgment result may indicate that the calculated check value does not match the check value of at least one pre-stored incremental backup data.
[0121] Step 708: Based on the judgment result, perform data recovery using the multiple target backup data.
[0122] In the embodiments of this specification, if the judgment result indicates that the calculated verification value is consistent with the verification value of at least one pre-stored incremental backup data, it can be concluded that the metadata of the incremental backup data is accurate and has not been tampered with. This confirms that the incremental backup data and the full backup data are backup data located on the same backup relationship chain. Furthermore, these multiple target backup data can be used for data recovery, improving the reliability and accuracy of data recovery.
[0123] Optionally, data recovery can be performed using multiple target backups, which can involve applying at least one incremental backup to the full backup.
[0124] In one specific implementation, if the judgment result indicates that the calculated verification value is inconsistent with the verification value of at least one pre-stored incremental backup data, it can be concluded that the metadata of the incremental backup data is incorrect, and the incremental backup data and the full backup data are not located on the same backup relationship chain. Therefore, data recovery can be performed without using these multiple target backup data.
[0125] In the embodiments of this specification, when performing data recovery, the verification value of at least one incremental backup data can be calculated based on the verification value of the full backup data and the metadata of at least one incremental backup data. Then, it can be determined whether the calculated verification value is consistent with the pre-stored verification value of the at least one incremental backup data, thereby determining whether the metadata of the incremental backup data is accurate and has not been tampered with. This allows verification whether these multiple target backup data are located on the same backup relationship chain, which can improve the reliability and accuracy of data recovery.
[0126] based on Figure 7 In addition to the method described herein, this specification also provides some implementation methods of the method, which will be described below.
[0127] In this embodiment of the specification, the checksum of the full backup data can be calculated first, and then it can be determined whether the calculated checksum of the full backup data is consistent with the checksum of the pre-stored full backup data. If they are consistent, the checksum of at least one incremental backup data can be calculated. Optionally, before calculating the checksum of the at least one incremental backup data based on the checksum of the full backup data and the metadata of the at least one incremental backup data, the method may further include: Calculate the verification value of the full backup data based on the metadata of the full backup data; Determine whether the calculated verification value of the full backup data is consistent with the pre-stored verification value of the full backup data.
[0128] The step of calculating the verification value of the at least one incremental backup data based on the verification value of the full backup data and the metadata of the at least one incremental backup data may specifically include: If the calculated verification value of the full backup data is consistent with the pre-stored verification value of the full backup data, then the verification value of the at least one incremental backup data is calculated based on the verification value of the full backup data and the metadata of the at least one incremental backup data.
[0129] In the embodiments of this specification, the verification value of the full backup data can be calculated based on the metadata of the full backup data using encryption algorithms such as symmetric encryption algorithms, asymmetric encryption algorithms, or hash algorithms.
[0130] Optionally, the checksum of the pre-stored full backup data can be calculated based on the metadata of the full backup data. Alternatively, the pre-stored checksum can also be calculated using an encryption algorithm, such as a symmetric encryption algorithm, asymmetric encryption algorithm, or hash algorithm. In practical applications, the encryption algorithm used to calculate the checksum of the full backup data in the preceding steps is the same as the encryption algorithm used to calculate the pre-stored checksum.
[0131] In the embodiments of this specification, if the calculated checksum of the full backup data matches the checksum of the pre-stored full backup data, it indicates that the metadata of the full backup data is accurate, complete, and has not been tampered with. This improves the reliability of the calculated checksum of at least one incremental backup data, and enhances the reliability of data recovery.
[0132] As a specific implementation, if the calculated check value of the full backup data is inconsistent with the check value of the pre-stored full backup data, it can be said that the metadata of the full backup data is incorrect. Therefore, the check value of at least one incremental backup data can be omitted, and the data recovery process can be terminated.
[0133] In this embodiment of the specification, multiple target backup data may include a full backup data and an incremental backup data. Optionally, the at least one incremental backup data is a single incremental backup data; calculating the checksum of the at least one incremental backup data based on the checksum of the full backup data and the metadata of the at least one incremental backup data may specifically include: The check value of the incremental backup data is calculated based on the check value of the full backup data and the metadata of the incremental backup data.
[0134] The determination of whether the calculated verification value is consistent with the verification value of the at least one pre-stored incremental backup data, and the resulting determination, may specifically include: The system determines whether the calculated verification value is consistent with the verification value of the pre-stored incremental backup data, and obtains the determination result.
[0135] In the embodiments of this specification, if at least one incremental backup data can be a single incremental backup data, the checksum of the incremental backup data can be calculated based on the checksum of the full backup data and the metadata of the incremental backup data. For example, the encryption algorithm mentioned above can be used to calculate the checksum of the incremental backup data.
[0136] Furthermore, it is possible to determine whether the calculated verification value is consistent with the verification value of the pre-stored incremental backup data to obtain the judgment result.
[0137] In one specific implementation, multiple target backup data may include a full backup data and multiple incremental backup data. Optionally, the at least one incremental backup data includes a first incremental backup data and a second incremental backup data, wherein the second incremental backup data is the backup data following the first incremental backup data.
[0138] The step of calculating the verification value of the at least one incremental backup data based on the verification value of the full backup data and the metadata of the at least one incremental backup data may specifically include: The verification value of the first incremental backup data is calculated based on the verification value of the full backup data and the metadata of the first incremental backup data.
[0139] If the verification value of the first incremental backup data is consistent with the verification value of the pre-stored first incremental backup data, then the verification value of the second incremental backup data is calculated based on the verification value of the first incremental backup data and the metadata of the second incremental backup data.
[0140] The determination of whether the calculated verification value is consistent with the verification value of the at least one pre-stored incremental backup data, and the resulting determination, may specifically include: The system determines whether the calculated check value of the second incremental backup data is consistent with the pre-stored check value of the second incremental backup data, and obtains the determination result.
[0141] In the embodiments of this specification, the second incremental backup data can be the backup data following the first incremental backup data, and the second incremental backup data can be obtained by backing up based on the first incremental backup data.
[0142] Optionally, the checksum of the first incremental backup data can be calculated using an encryption algorithm based on the checksum of the full backup data and the metadata of the first incremental backup data. If the calculated checksum matches the pre-stored checksum of the first incremental backup data, it indicates that the metadata of the first incremental backup data is accurate and has not been tampered with. Therefore, the checksum of the second incremental backup data can be calculated based on the checksum of the first incremental backup data and the metadata of the second incremental backup data. If the calculated checksum does not match the pre-stored checksum of the first incremental backup data, it indicates that the metadata of the first incremental backup data is incorrect, and the data recovery process can be terminated.
[0143] Furthermore, based on the checksum of the first incremental backup data and the metadata of the second incremental backup data, an encryption algorithm can be used to calculate the checksum of the second incremental backup data. The encryption algorithm used to calculate the checksum of the second incremental backup data can be the same as or different from the encryption algorithm used to calculate the checksum of the first incremental backup data.
[0144] In one specific implementation, the multiple target backup data may further include third incremental backup data, which can be backup data following the second incremental backup data. When the calculated checksum of the second incremental backup data matches the pre-stored checksum of the second incremental backup data, the checksum of the third incremental backup data is calculated based on the checksum of the second incremental backup data and the metadata of the third incremental backup data. Then, it is determined whether the calculated checksum of the third incremental backup data matches the pre-stored checksum of the third incremental backup data. In another specific implementation, the multiple target backup data may further include fourth incremental backup data, fifth incremental backup data, and other incremental backup data. In this case, the checksums of the fourth incremental backup data, fifth incremental backup data, and other incremental backup data can be calculated using the same method as the previous checksum calculation. Then, the consistency judgment method for the previous checksums is used to determine whether the calculated checksum of the fourth incremental backup data matches the pre-stored checksum, and so on, etc., which will not be elaborated here.
[0145] Optionally, the step of performing data recovery using the multiple target backup data based on the judgment result may specifically include: If the judgment result indicates that the calculated verification value is consistent with the verification value of the at least one pre-stored incremental backup data, then data recovery is performed using the multiple target backup data.
[0146] In the embodiments of this specification, when the calculated verification value is consistent with the verification value of the pre-stored incremental backup data, multiple target backup data can be used for data recovery. Specifically, at least one incremental backup data can be applied to the full backup data.
[0147] Optionally, if at least one incremental backup is an incremental backup, then data recovery can be performed using multiple target backups, which can be achieved by applying this single incremental backup to the full backup.
[0148] Optionally, if at least one incremental backup data consists of multiple incremental backup data, such as at least one incremental backup data including the aforementioned first incremental backup data and second incremental backup data, then the first incremental backup data can be applied to the full backup data to obtain the first full data, and then the second incremental backup data can be applied to the first full data to obtain the second full data.
[0149] In one specific implementation, if the verification value calculated by the judgment result is inconsistent with the verification value of the at least one pre-stored incremental backup data, the data recovery process is terminated.
[0150] The various technical features in the above embodiments can be combined arbitrarily, as long as there is no conflict or contradiction between the combinations of features. However, due to space limitations, they have not been described one by one. Therefore, the arbitrary combination of various technical features in the above embodiments is also within the scope of this specification.
[0151] Based on the same idea, embodiments of this specification also provide an apparatus corresponding to the above data backup method.
[0152] Figure 8 This is a schematic diagram of the structure of a data backup device provided in one embodiment of this specification, as shown below. Figure 8 As shown, the data backup device may include: The acquisition module 802 is used to acquire the first incremental backup data and the metadata of the first incremental backup data.
[0153] The verification value generation module 804 is used to generate a second verification value based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data. The first verification value is generated based on the metadata of the second incremental backup data and the verification value of the previous backup data of the second incremental backup data. The second incremental backup data is the previous backup data of the first incremental backup data.
[0154] Storage module 806 is used to associate and store the second verification value with the first incremental backup data.
[0155] Optionally, the data backup device may also include: The first request acquisition module is used to acquire incremental backup requests for the first full dataset.
[0156] The first incremental backup module is used to perform incremental backups on the first full data to generate a first incremental backup set. The first incremental backup set includes the first incremental backup data and the metadata of the first incremental backup data.
[0157] Optionally, the data backup device may also include: The second request acquisition module is used to acquire incremental backup requests for the second full dataset.
[0158] The second incremental backup module is used to perform incremental backups on the second full data, generating a second incremental backup set. The second incremental backup set includes the second incremental backup data and its metadata.
[0159] The first verification value generation module is used to generate the first verification value based on the metadata of the second incremental backup data and the verification value of the previous backup data of the second incremental backup data.
[0160] The first storage module is used to associate and store the first verification value with the second incremental backup data.
[0161] Optionally, the data backup device may also include: The third request acquisition module is used to acquire a full backup request for the third full data.
[0162] The first full backup module is used to perform a full backup of the third full data to generate a first full backup set. The first full backup set includes first full backup data and metadata of the first full backup data. The first full backup data is the previous backup data of the second incremental backup data.
[0163] The third verification value generation module is used to generate a third verification value based on the metadata of the first full backup data. The second storage module is used to associate and store the third verification value with the first full backup data.
[0164] Optionally, the data backup device may also include: The third request acquisition module is used to acquire incremental backup requests for the third full dataset.
[0165] The third incremental backup module is used to perform incremental backups on the third full data to generate a third incremental backup set. The third incremental backup set includes third incremental backup data and its metadata. The third incremental backup data is the previous backup data of the second incremental backup data.
[0166] The fourth verification value generation module is used to generate a fourth verification value based on the metadata of the third incremental backup data and the verification value of the previous backup data of the third incremental backup data.
[0167] The third storage module is used to associate and store the fourth verification value with the third incremental backup data.
[0168] Optionally, the checksum generation module 804 can be used for: Based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data, a second verification value is generated using a hash algorithm.
[0169] Optionally, the step of generating a second verification value using a hash algorithm based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data may specifically include: The metadata of the first incremental backup data and the first checksum of the second incremental backup data are concatenated according to a preset format to obtain concatenated data; The concatenated data is hashed to obtain the second verification value.
[0170] Optionally, the step of generating a second verification value using a hash algorithm based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data may specifically include: The metadata of the first incremental backup data is hashed to obtain a first hash value; the first hash value and the first check value of the second incremental backup data are hashed to obtain a second check value.
[0171] Alternatively, perform a hash calculation on the first verification value of the second incremental backup data to obtain a second hash value; perform a hash calculation on the second hash value and the metadata of the first incremental backup data to obtain the second verification value.
[0172] Optionally, the metadata of the first incremental backup data includes at least one of data indicating the backup type of the first incremental backup data, the backup identifier of the first incremental backup data, the backup identifier of the second incremental backup data, and the data version identifier of the first incremental backup data.
[0173] Based on the same idea, the embodiments of this specification also provide an apparatus corresponding to the above data recovery method.
[0174] Figure 9 This is a schematic diagram of the structure of a data recovery device provided in one embodiment of this specification, as shown below. Figure 9 As shown, the data recovery device may include: The determination module 902 is used to determine multiple target backup data for data recovery from multiple backup data; the multiple target backup data includes a full backup data and at least one incremental backup data.
[0175] The calculation module 904 is used to calculate the verification value of the at least one incremental backup data based on the verification value of the full backup data and the metadata of the at least one incremental backup data.
[0176] The judgment module 906 is used to determine whether the calculated verification value is consistent with the verification value of the at least one pre-stored incremental backup data, and obtain the judgment result.
[0177] The recovery module 908 is used to perform data recovery using the multiple target backup data based on the judgment result.
[0178] Optionally, the at least one incremental backup data is a single incremental backup data. The calculation module 904 can specifically be used for: The check value of the incremental backup data is calculated based on the check value of the full backup data and the metadata of the incremental backup data.
[0179] Module 906 can be used specifically for: The system determines whether the calculated verification value is consistent with the verification value of the pre-stored incremental backup data, and obtains the determination result.
[0180] Optionally, the at least one incremental backup data includes first incremental backup data and second incremental backup data, wherein the second incremental backup data is the backup data following the first incremental backup data. The calculation module 904 can specifically be used for: The verification value of the first incremental backup data is calculated based on the verification value of the full backup data and the metadata of the first incremental backup data.
[0181] If the verification value of the first incremental backup data is consistent with the verification value of the pre-stored first incremental backup data, then the verification value of the second incremental backup data is calculated based on the verification value of the first incremental backup data and the metadata of the second incremental backup data.
[0182] Module 906 can be used specifically for: The system determines whether the calculated check value of the second incremental backup data is consistent with the pre-stored check value of the second incremental backup data, and obtains the determination result.
[0183] Optionally, the device may further include: The acquisition module is used to obtain the version identifier of the target data.
[0184] Module 902 can be specifically used for: Based on the target data version identifier and the metadata of the plurality of backup data, a plurality of target backup data for data recovery are determined from the plurality of backup data. The metadata of any backup data includes at least one of data indicating the backup type of any backup data, the backup identifier of any backup data, the backup identifier of the previous backup data of any backup data, and the data version identifier of any backup data.
[0185] Optional, recovery module 908, specifically can be used for: If the verification value calculated by the judgment result is consistent with the verification value of the at least one pre-stored incremental backup data, then data recovery is performed using the multiple target backup data.
[0186] Based on the same idea, this specification also provides devices corresponding to the above methods in its embodiments.
[0187] Figure 10 A structural block diagram of a computing device 1000 provided according to an embodiment of this specification is shown.
[0188] The computing device 1000 includes: Memory 1010 and processor 1020; The memory 1010 is used to store computer programs / instructions, and the processor 1020 is used to execute the computer programs / instructions, which implement the steps of the above method when executed by the processor 1020.
[0189] Specifically, the components of the computing device 1000 include, but are not limited to, a memory 1010 and a processor 1020. The processor 1020 is connected to the memory 1010 via a bus 1030, and the database 1050 is used to store data.
[0190] The computing device 1000 also includes an access device 1040, which enables the computing device 1000 to communicate via one or more networks 1060. Examples of these networks include Public Switched Telephone Network (PSTN), Local Area Network (LAN), Wide Area Network (WAN), Personal Area Network (PAN), or combinations of communication networks such as the Internet. The access device 1040 may include one or more of any type of wired or wireless network interface (e.g., a network interface card (NIC)), such as an IEEE 802.11 Wireless Local Area Network (WLAN) wireless interface, a Wi-MAX (Worldwide Interoperability for Microwave Access) interface, an Ethernet interface, a Universal Serial Bus (USB) interface, a cellular network interface, a Bluetooth interface, a Near Field Communication (NFC) interface, and so on.
[0191] In one embodiment of this specification, the above-described components of the computing device 1000 and Figure 10 Other components, not shown, can also be connected to each other, for example, via a bus. It should be understood that... Figure 10The block diagram of the computing device shown is for illustrative purposes only and is not intended to limit the scope of this application. Those skilled in the art can add or replace other components as needed.
[0192] The computing device 1000 can be any type of stationary or mobile computing device, including mobile computers or mobile computing devices (e.g., tablet computers, personal digital assistants, laptop computers, notebook computers, netbooks, etc.), mobile phones (e.g., smartphones), wearable computing devices (e.g., smartwatches, smart glasses, etc.) or other types of mobile devices, or stationary computing devices such as desktop computers or personal computers (PCs). The computing device 1000 can also be a mobile or stationary server.
[0193] The processor 1020 implements the steps of the above method when executing the computer instructions.
[0194] The above is an illustrative scheme of a computing device according to this embodiment. It should be noted that the technical solution of this computing device belongs to the same concept as the technical solutions of the data backup method and the data recovery method described above. For details not described in detail in the technical solution of the computing device, please refer to the description of the technical solution of the above method.
[0195] An embodiment of this specification also provides a computer-readable storage medium storing computer instructions that, when executed by a processor, implement the steps of the above-described method.
[0196] The above is an illustrative scheme of a computer-readable storage medium according to this embodiment. It should be noted that the technical solution of this storage medium and the technical solution of the above method belong to the same concept, and all details not described in detail in the technical solution of the storage medium can be referred to the description of the technical solution of the above method.
[0197] An embodiment of this specification also provides a computer program product, including a computer program / instructions that, when executed by a processor, implement the steps of the above-described method.
[0198] The above is an illustrative scheme of a computer program product according to this embodiment. It should be noted that the technical solution of this computer program product and the technical solution of the above method belong to the same concept, and all details not described in detail in the technical solution of the computer program product can be referred to in the description of the technical solution of the above method.
[0199] The various embodiments in this specification are described in a progressive manner, and the same or similar parts between the embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, for the embodiments of [apparatus, device, system], since they are basically similar to the method embodiments, the description is relatively simple, and the relevant parts can be referred to the description of the method embodiments. The [apparatus, device, system] provided in the embodiments of this specification correspond to the methods, and therefore the [apparatus, device, system] also has similar beneficial technical effects as the corresponding methods. Since the beneficial technical effects of the methods have been described in detail above, the beneficial technical effects of the corresponding [apparatus, device, system] will not be repeated here.
[0200] The foregoing has described specific embodiments of this specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims may be performed in a different order than that shown in the embodiments and may still achieve the desired result. Furthermore, the processes depicted in the drawings do not necessarily require a specific or sequential order to achieve the desired result. In some embodiments, multitasking and parallel processing are possible or may be advantageous.
[0201] In the 1990s, improvements to a technology could be clearly distinguished as either hardware improvements (e.g., improvements to the circuit structure of diodes, transistors, switches, etc.) or software improvements (improvements to methodology). However, with technological advancements, many methodological improvements today can be considered direct improvements to hardware circuit structures. Designers almost always obtain the corresponding hardware circuit structure by programming the improved methodology into the hardware circuit. Therefore, it cannot be said that a methodological improvement cannot be implemented using hardware physical modules. For example, a Programmable Logic Device (PLD) (such as a Field Programmable Gate Array (FPGA)) is such an integrated circuit whose logic function is determined by the user programming the device. Designers can program a digital system themselves to "integrate" it onto a PLD, without needing chip manufacturers to design and manufacture dedicated integrated circuit chips. Furthermore, nowadays, instead of manually manufacturing integrated circuit chips, this programming is mostly implemented using "logic compiler" software. Similar to the software compiler used in program development, the original code before compilation must also be written in a specific programming language, called a Hardware Description Language (HDL). There are many HDLs, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, and RHDL (Ruby Hardware Description Language). Currently, the most commonly used are VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art should also understand that by simply performing some logic programming on the method flow using one of these hardware description languages and programming it into an integrated circuit, the hardware circuit implementing the logical method flow can be easily obtained.
[0202] The controller can be implemented in any suitable manner. For example, it can take the form of a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, application-specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicon Labs C8051F320. A memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art will also recognize that, in addition to implementing the controller in purely computer-readable program code form, the same functionality can be achieved by logically programming the method steps to make the controller take the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded microcontrollers. Therefore, such a controller can be considered a hardware component, and the means included therein for implementing various functions can also be considered as structures within the hardware component. Alternatively, the means for implementing various functions can be considered as both software modules implementing the method and structures within the hardware component.
[0203] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer. Specifically, a computer can be, for example, a personal computer, laptop computer, cellular phone, camera phone, smartphone, personal digital assistant, media player, navigation device, email device, game console, tablet computer, wearable device, or any combination of these devices.
[0204] For ease of description, the above devices are described separately by function as various units. Of course, in implementing this application, the functions of each unit can be implemented in one or more software and / or hardware.
[0205] Those skilled in the art will understand that one or more embodiments of this specification can be provided as a method, system, or computer program product. Therefore, the invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0206] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0207] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0208] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0209] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0210] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0211] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital character versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.
[0212] This application can be described in the general context of computer-executable instructions, such as program modules, that are executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform a specific task or implement a specific abstract data type. This application can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communication network. In distributed computing environments, program modules can reside in local and remote computer storage media, including storage devices.
[0213] The above description is merely an embodiment of this application and is not intended to limit the scope of this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of the claims of this application.
Claims
1. A data backup method, comprising: Obtain the first incremental backup data and its metadata; A second verification value is generated based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data; The first verification value is generated based on the metadata of the second incremental backup data and the verification value of the previous backup data of the second incremental backup data; The second incremental backup data is the backup data preceding the first incremental backup data; The second verification value is associated with and stored in relation to the first incremental backup data.
2. The method of claim 1, wherein before obtaining the first incremental backup data and the metadata of the first incremental backup data, the method further comprises: Get an incremental backup request for the first full dataset; Perform incremental backups on the first full dataset to generate the first incremental backup set; The first incremental backup set includes the first incremental backup data and the metadata of the first incremental backup data.
3. The method of claim 2, wherein before obtaining the incremental backup request for the first full dataset, the method further comprises: Get an incremental backup request for the second full dataset; Perform incremental backups on the second full dataset to generate a second incremental backup set; The second incremental backup set includes the second incremental backup data and the metadata of the second incremental backup data; The first verification value is generated based on the metadata of the second incremental backup data and the verification value of the previous backup data of the second incremental backup data. The first verification value is associated with and stored with the second incremental backup data.
4. The method of claim 3, wherein before obtaining the incremental backup request for the second full data, the method further comprises: Obtain a full backup request for the third full dataset; Perform a full backup of the third full data set to generate a first full backup set; The first full backup set includes the first full backup data and the metadata of the first full backup data; The first full backup data is the backup data preceding the second incremental backup data; A third verification value is generated based on the metadata of the first full backup data; The third verification value is associated with and stored in relation to the first full backup data.
5. The method of claim 3, wherein before obtaining the incremental backup request for the second full data, the method further comprises: Get an incremental backup request for the third full dataset; Perform incremental backups on the third full dataset to generate a third incremental backup set; The third incremental backup set includes third incremental backup data and metadata of the third incremental backup data; The third incremental backup data is the backup data preceding the second incremental backup data; A fourth verification value is generated based on the metadata of the third incremental backup data and the verification value of the previous backup data of the third incremental backup data. The fourth verification value is associated with and stored with the third incremental backup data.
6. The method as described in claim 1, wherein generating the second verification value based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data specifically includes: Based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data, a second verification value is generated using a hash algorithm.
7. The method as described in claim 6, wherein generating a second verification value using a hash algorithm based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data specifically includes: The metadata of the first incremental backup data and the first checksum of the second incremental backup data are concatenated according to a preset format to obtain concatenated data; The concatenated data is hashed to obtain the second verification value.
8. The method as described in claim 6, wherein generating a second verification value using a hash algorithm based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data specifically includes: Perform a hash calculation on the metadata of the first incremental backup data to obtain a first hash value; The first hash value and the first verification value of the second incremental backup data are hashed together to obtain the second verification value; Alternatively, perform a hash calculation on the first verification value of the second incremental backup data to obtain the second hash value; The second hash value and the metadata of the first incremental backup data are hashed to obtain the second verification value.
9. The method of claim 1, wherein the metadata of the first incremental backup data includes at least one of data representing the backup type of the first incremental backup data, the backup identifier of the first incremental backup data, the backup identifier of the second incremental backup data, and the data version identifier of the first incremental backup data.
10. A data recovery method, comprising: Identify multiple target backup data sets from a pool of backup data for data recovery; The multiple target backup data includes a full backup data and at least one incremental backup data; Calculate the verification value of the at least one incremental backup data based on the verification value of the full backup data and the metadata of the at least one incremental backup data; Determine whether the calculated verification value is consistent with the verification value of the at least one pre-stored incremental backup data, and obtain the determination result; Based on the judgment result, data recovery is performed using the multiple target backup data.
11. The method of claim 10, wherein the at least one incremental backup data is an incremental backup data; the step of calculating the check value of the at least one incremental backup data based on the check value of the full backup data and the metadata of the at least one incremental backup data specifically includes: Calculate the check value of the incremental backup data based on the check value of the full backup data and the metadata of the incremental backup data; The determination of whether the calculated verification value is consistent with the verification value of the at least one pre-stored incremental backup data to obtain a determination result specifically includes: The system determines whether the calculated verification value is consistent with the verification value of the pre-stored incremental backup data, and obtains the determination result.
12. The method of claim 10, wherein the at least one incremental backup data includes first incremental backup data and second incremental backup data, wherein the second incremental backup data is the backup data following the first incremental backup data; The step of calculating the verification value of the at least one incremental backup data based on the verification value of the full backup data and the metadata of the at least one incremental backup data specifically includes: Calculate the verification value of the first incremental backup data based on the verification value of the full backup data and the metadata of the first incremental backup data; If the verification value of the first incremental backup data is consistent with the verification value of the pre-stored first incremental backup data, then the verification value of the second incremental backup data is calculated based on the verification value of the first incremental backup data and the metadata of the second incremental backup data. The determination of whether the calculated verification value is consistent with the verification value of the at least one pre-stored incremental backup data to obtain a determination result specifically includes: The system determines whether the calculated check value of the second incremental backup data is consistent with the pre-stored check value of the second incremental backup data, and obtains the determination result.
13. The method of claim 10, further comprising, before determining the plurality of target backup data for data recovery from the plurality of backup data: Obtain the target data version identifier; The process of determining multiple target backup data for data recovery from multiple backup data specifically includes: Based on the target data version identifier and the metadata of the multiple backup data, determine multiple target backup data for data recovery from the multiple backup data; The metadata of any of the backup data includes at least one of data indicating the backup type of the backup data, the backup identifier of the backup data, the backup identifier of the previous backup data of the backup data, and the data version identifier of the backup data.
14. The method as described in claim 10, wherein the step of performing data recovery using the plurality of target backup data based on the determination result specifically includes: If the judgment result indicates that the calculated verification value is consistent with the verification value of the at least one pre-stored incremental backup data, then data recovery is performed using the multiple target backup data.
15. A data backup device, comprising: The acquisition module is used to acquire the first incremental backup data and the metadata of the first incremental backup data; The verification value generation module is used to generate a second verification value based on the metadata of the first incremental backup data and the first verification value of the second incremental backup data. The first verification value is generated based on the metadata of the second incremental backup data and the verification value of the previous backup data of the second incremental backup data; The second incremental backup data is the backup data preceding the first incremental backup data; The storage module is used to associate and store the second verification value with the first incremental backup data.
16. A data recovery apparatus, comprising: The determination module is used to identify multiple target backup data from multiple backup data for data recovery. The multiple target backup data includes a full backup data and at least one incremental backup data; The calculation module is used to calculate the verification value of the at least one incremental backup data based on the verification value of the full backup data and the metadata of the at least one incremental backup data. The judgment module is used to determine whether the calculated verification value is consistent with the verification value of the at least one pre-stored incremental backup data, and to obtain a judgment result; The recovery module is used to perform data recovery using the multiple target backup data based on the judgment result.
17. A computing device, comprising: Memory and processor; The memory is used to store computer programs / instructions, and the processor is used to execute the computer programs / instructions, which, when executed by the processor, implement the steps of the method according to any one of claims 1 to 14.
18. A computer-readable storage medium storing computer instructions that, when executed by a processor, implement the steps of the method according to any one of claims 1 to 14.
19. A computer program product comprising a computer program / instructions that, when executed by a processor, implement the steps of the method according to any one of claims 1 to 14.