System and method for agentless accelerated backup of databases
By receiving data blocks and native logs through a data backup device and generating a synthetic complete backup using a database container image, the problem of proxy dependency in existing technologies is solved, and agentless database backup with instant access and acceleration features is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- COHESITY INC
- Filing Date
- 2021-02-24
- Publication Date
- 2026-06-09
AI Technical Summary
Existing database backup methods require running an agent on the production host, which increases recovery time targets, fails to provide instant access and acceleration features, and makes it difficult to provide consistent incremental backups.
The system receives data blocks and raw logs through a data backup device, uses a database container image to generate a synthetic full backup, overwrites the changed blocks in the data blocks, provides point-in-time recovery, and eliminates the dependency on the production host agent.
It enables agentless accelerated backup, provides instant access and acceleration features, reduces recovery time, is suitable for various database types, and supports incremental backup and transaction-level recovery.
Smart Images

Figure CN115053213B_ABST
Abstract
Description
Background Technology
[0001] Currently, most database backups are implemented as log backups. A full backup of the database files is performed in a stable state, and then the log is copied to enable point-in-time recovery. The log records every transaction that occurs in the database, such as data deletion, allowing for transaction-by-transaction rewinding or selection of a point in time by providing a transaction identifier. With log backups, backups are consistent because incremental updates are transaction log updates, and the database knows how to consistently implement these updates. Enterprise databases also support native log backups.
[0002] However, the log backup method presents several challenges. For example, an agent needs to be run on the production host (i.e., the data server) where the database is running. Additionally, database recovery requires application-specific logic. Furthermore, periodic full backups are necessary because database recovery from log backups requires replaying the logs on the production host, increasing the Recovery Time Objective (RTO). The requirement to replay the logs on the production host also means that immediate access cannot be provided, and acceleration features cannot be used, thus compromising the cost of incremental backups compared to full backups. Summary of the Invention
[0003] As will be described in more detail below, this disclosure describes various systems and methods for agentless accelerated backup of a database by determining changed data blocks based on native logs received from a data server and creating a synthetic full backup by a data backup appliance, wherein the synthetic full backup overwrites one or more data blocks in the full backup's data blocks with one or more changed blocks and shares the remaining blocks in the data blocks with the full backup.
[0004] In one implementation, a computer-implemented method for agentless accelerated backup of a database may include receiving data blocks from a data server by a data backup device, the data blocks providing a complete backup of the data on the data server. The method further includes receiving one or more native logs from the data server by the data backup device, the one or more native logs indicating one or more transactions performed by the data server. The method also includes identifying one or more changed blocks in the data blocks by the data backup device based on the native logs. The method further includes providing point-in-time recovery of the data server by the data backup device by creating a synthetic full backup, the synthetic full backup overwriting one or more data blocks in the data blocks with the one or more changed blocks and sharing the remaining blocks in the data blocks with the full backup.
[0005] In some implementations of the computer-based method, receiving data blocks includes receiving data blocks via a file-sharing mechanism that allows files copied via a file-sharing protocol to be cataloged as backups. For example, the file-sharing mechanism may include a Network File Sharing (NFS) data export mechanism. Additionally, the file-sharing mechanism may include writable overwrite. Furthermore, the sharing mechanism may include a data deduplication engine. Alternatively or additionally, receiving one or more native logs may include receiving native logs from a data server configured in log replication mode.
[0006] In some implementations of the computer-based method, determining one or more change blocks may include launching a database container image from a data backup device and using the database container image to generate a synthetic full copy by applying native logs to a full backup. In such implementations, creating a synthetic full backup may include performing a backup of the synthetic full copy.
[0007] In another embodiment, a system for agentless accelerated backup of a database may include a computing device comprising at least one physical processor and physical memory coupled to the at least one physical processor. The at least one physical processor is configured to receive data blocks from a data server by the data backup device, the data blocks providing a complete backup of the data on the data server. The at least one physical processor is further configured to receive one or more native logs from the data server by the data backup device, the one or more native logs indicating one or more transactions performed by the data server. The at least one physical processor is also configured to determine one or more changed blocks in the data blocks based on the native logs. The at least one physical processor is further configured to provide point-in-time recovery of the data server by the data backup device by creating a synthetic full backup, the synthetic full backup overwriting one or more data blocks in the data blocks with one or more changed blocks and sharing the remaining blocks in the data blocks with the full backup.
[0008] In some implementations of the system, at least one physical processor is configured to receive data blocks at least partially via a file-sharing mechanism that allows files copied via a file-sharing protocol to be cataloged as backups. For example, the file-sharing mechanism may include a Network File Sharing (NFS) data export mechanism. Additionally, the file-sharing mechanism may include writable overwrite. Furthermore, the sharing mechanism may include a data deduplication engine. Alternatively or additionally, at least one physical processor is configured to receive one or more native logs at least partially by receiving native logs from a data server configured in log replication mode.
[0009] In some implementations of the system, at least one physical processor may be configured to determine one or more change blocks at least partially by launching a database container image from a data backup appliance and using the database container image to generate a synthetic full copy by applying native logs to a full backup. In such implementations, at least one physical processor may be configured to create a synthetic full backup at least partially by performing a backup of the synthetic full copy.
[0010] In some examples, the methods described above can be encoded as computer-readable instructions on a non-transitory computer-readable medium. For example, the computer-readable medium may include one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to receive data blocks from a data server by a data backup device, the data blocks providing a complete backup of the data on the data server. Additionally, one or more computer-executable instructions may cause the computing device to receive one or more native logs from the data server by the data backup device, the one or more native logs indicating one or more transactions performed by the data server. Furthermore, one or more computer-executable instructions may cause the computing device to determine one or more modified blocks in the data blocks based on the native logs. Additionally, one or more computer-executable instructions may cause the computing device to provide point-in-time recovery of the data server by the data backup device by creating a synthetic complete backup, the synthetic complete backup overwriting one or more data blocks in the data blocks with one or more modified blocks and sharing the remaining blocks in the data blocks with the complete backup.
[0011] In some implementations, one or more computer-executable instructions on a non-transitory computer-readable medium cause a computing device to receive data blocks at least partially by receiving data blocks via a file-sharing mechanism that allows files copied via a file-sharing protocol to be cataloged as backups. Alternatively or concurrently, one or more computer-executable instructions cause the computing device to determine one or more change blocks at least partially by initiating a database container image from a data backup device and using the database container image to generate a synthetic complete copy by applying native logs to a full backup. In such implementations, one or more computer-executable instructions cause the computing device to create a synthetic complete backup at least partially by performing a backup of the synthetic complete copy.
[0012] Features from any of the embodiments described herein may be used in combination with each other in accordance with the general principles described herein. These and other embodiments, features, and advantages will be more fully understood upon reading the following detailed description in conjunction with the accompanying drawings and claims. Attached Figure Description
[0013] The accompanying drawings illustrate several exemplary embodiments and are part of the specification. These drawings, together with the following description, demonstrate and illustrate various principles of this disclosure.
[0014] Figure 1 This is a block diagram of an exemplary system for agentless accelerated backup of a database.
[0015] Figure 2 This is a flowchart of an exemplary method for performing agentless accelerated backups of a database.
[0016] Figure 3 This is a block diagram of an exemplary system for implementing a sharing mechanism for agentless accelerated backup of a database.
[0017] Figure 4 This is a block diagram illustrating a specific implementation of an exemplary system for agentless accelerated backup of a database.
[0018] Figure 5 This is a block diagram illustrating the first part of an example of the operation of an exemplary system for performing agentless accelerated backups of a database.
[0019] Figure 6 This is a block diagram of the second part illustrating an example of the operation of an exemplary system for agentless accelerated backup of a database.
[0020] Figure 7 This is a block diagram of the third part of an example of the operation of an exemplary system for performing agentless accelerated backups of a database.
[0021] Figure 8 This is a block diagram of the fourth part illustrating an example of the operation of an exemplary system for performing agentless accelerated backups of a database.
[0022] Figure 9 This is a block diagram of the fifth part illustrating an example of the operation of an exemplary system for agentless accelerated backup of a database.
[0023] Throughout the accompanying drawings, reference characters and descriptions indicate similar but not necessarily identical elements. While various modifications and alternatives are possible with respect to the exemplary embodiments described herein, specific embodiments are shown by way of example in the drawings, which will be described in detail herein. However, the exemplary embodiments described herein are not intended to be limited to the specific forms disclosed. Rather, this disclosure covers all modifications, equivalents, and alternatives that fall within the scope of the appended claims. Detailed Implementation
[0024] This disclosure relates in its entirety to systems and methods for agentless accelerated backup of databases. Media servers (i.e., data servers) are dedicated computer devices and / or dedicated application software, ranging from enterprise-class machines providing video-on-demand to home minicomputers or network-attached storage (NAS), dedicated to storing various digital media (e.g., digital video / movies, audio / music, and image files). In information technology, backup, or data backup, is the process of taking a copy of computer data and storing it elsewhere so that it can be used to recover the original data after a data loss event. Backing up data servers using data backup devices can be performed using various types of storage library models, but providing features such as incremental backups, instant access, and acceleration often requires installing complex components (e.g., agents, application-specific recovery logic, etc.) on the production host, specific to a particular type of database and / or application. These requirements make data backup devices unsuitable for many or all databases, and it is difficult or impossible to provide all of the aforementioned features in a combined manner.
[0025] The data backup appliance disclosed herein eliminates the need for an agent on the data server while providing accelerated, instant access. The instant access feature makes backups appear as real copies of the data, a feature unavailable in current scenarios where logs must be replayed on the data server during recovery. The acceleration feature determines which data blocks of a file have been modified on the data server and generates and stores only the new blocks in the data backup appliance. The data backup appliance then overwrites existing blocks modified from previous backups with the new blocks. In virtualization, application containers are control elements of application instances running within a virtualization scheme called container-based virtualization. By periodically launching database container images and playing native log files received from the data server on the data backup appliance, the data backup appliance eliminates the need for an agent on the data server and provides instant access with the acceleration feature. Database container images can play and apply logs from various different types of databases, and / or multiple types of database container images may exist on the data backup appliance, which can be used to connect to a data server that implements the appropriate type of database based on the detected database type, configuration, etc. Therefore, the data backup device can serve various types of databases without installing an agent on the data server, and reduces or eliminates the need to play logs on the data server during database recovery.
[0026] The following will refer to Figure 1 A detailed description of an exemplary system for agentless accelerated backup of databases is provided. This will also be combined with... Figure 2 Provide a detailed description of the corresponding computer-implemented method. (Reference) Figure 3A description of sharing mechanisms that may be employed in some implementation schemes is provided. References Figure 4 Exemplary implementations demonstrating the advantages of the disclosed data backup device are provided. (Reference) Figures 5 to 9 Examples of operations are provided.
[0027] Figure 1 This is a block diagram of an exemplary system 100 for agentless accelerated backup of a database. As shown in the diagram, the exemplary system 100 may include one or more modules 102 for performing one or more tasks. As will be explained in more detail below, module 102 may include a data block receiving module 104, a native log receiving module 106, a change block determination module 108, and an instant access recovery module 110. Although shown as separate elements, Figure 1 One or more of the modules 102 may represent a single module or several parts of an application.
[0028] In some implementations, Figure 1 One or more of the modules 102 may represent one or more software applications or programs that, when executed by a computing device, enable the computing device to perform one or more tasks. For example, and as will be described in more detail below, one or more modules in module 102 may represent modules stored on one or more computing devices and configured to run on the one or more computing devices. Figure 1 One or more of the modules 102 may also represent all or part of one or more special computers configured to perform one or more tasks.
[0029] like Figure 1 As shown, the exemplary system 100 may also include one or more memory devices, such as memory 140. Memory 140 generally refers to any type or form of volatile or non-volatile storage device or medium capable of storing data and / or computer-readable instructions. In one example, memory 140 may store, load, and / or maintain one or more of the modules 102. Examples of memory 140 include, but are not limited to, random access memory (RAM), read-only memory (ROM), flash memory, hard disk drive (HDD), solid-state drive (SSD), optical disk drive, cache, variations or combinations of one or more of the above, or any other suitable memory.
[0030] like Figure 1As shown, the exemplary system 100 may also include one or more physical processors, such as physical processor 130. Physical processor 130 generally represents a processing unit of any type or form of hardware implementation capable of interpreting and / or executing computer-readable instructions. In one example, physical processor 130 may access and / or modify one or more of the modules 102 stored in memory 140. In addition or alternatively, physical processor 130 may execute one or more modules of module 102 to facilitate agentless accelerated backup of the database. Examples of physical processor 130 include, but are not limited to, microprocessors, microcontrollers, central processing units (CPUs), field-programmable gate arrays (FPGAs) implementing soft-core processors, application-specific integrated circuits (ASICs), portions of one or more of the foregoing, variations or combinations of one or more of the foregoing, or any other suitable physical processor.
[0031] like Figure 1 As shown, the exemplary system 100 may also include one or more elements of data 120, such as a full backup 121, a native log 122, a database (DB) container image 123, change blocks 124, and a synthetic full backup 125. The elements of data 120 typically represent data or data structures of any type or form, whether received from a data server or generated by one or more modules 102. In one example, the elements of data 120 may include data blocks received from a data server, as well as a data structure describing which data blocks are members of a specific full backup or synthetic backup for a point-in-time recovery operation.
[0032] It is readily understood that the system 100 for agentless accelerated backup of a database may include a computing device comprising at least one physical processor 130 and physical memory 140 coupled to the at least one physical processor 130. Using a data block receiving module 104, the at least one physical processor 130 is configured to receive data blocks from a data server by the data backup device, the data blocks providing a complete backup 121 of the data on the data server. Using a native log receiving module 106, the at least one physical processor 130 is further configured to receive one or more native logs 122 from the data server by the data backup device, the one or more native logs indicating one or more transactions performed by the data server. Using a change block determination module 108, the at least one physical processor is also configured to determine one or more change blocks 124 in the data blocks by the data backup device based on the native logs. Using the instant access recovery module 110, at least one physical processor 130 is further configured to provide point-in-time recovery of the data server by the data backup device by creating a synthetic full backup 125, which overwrites one or more data blocks in the data block with one or more change blocks 124 and shares the remaining blocks in the data block with the full backup 121.
[0033] In some implementations of the system, at least one physical processor may be configured to determine one or more changed blocks 124 by at least partially launching the database container image 133 from the data backup device and using the database container image 123 to generate a synthetic complete copy by applying the native log 122 to a previous full backup (e.g., the original full backup or a previous synthetic complete backup 125). In such implementations, at least one physical processor 130 may be configured to create the synthetic complete backup 125 by at least partially performing a backup of the synthetic complete copy, wherein the acceleration feature overwrites the data blocks of the previous full backup with the changed data blocks and shares the unchanged data blocks with the previous full backup.
[0034] Many other devices or subsystems can be connected to Figure 1 System 100 in the middle. Conversely, Figure 1 All components and devices shown are not required for the implementation of the embodiments described and / or shown herein. The devices and subsystems mentioned above may also be adapted to... Figure 1 The different interconnections shown are also possible. System 100 may also employ any number of software configurations, firmware configurations, and / or hardware configurations. For example, one or more of the exemplary embodiments disclosed herein may be encoded as a computer program on a computer-readable medium (also referred to as computer software, software application, computer-readable instructions, and / or computer control logic).
[0035] As used herein, the term "computer-readable medium" generally refers to any form of device, carrier, or medium capable of storing or carrying computer-readable instructions. Examples of computer-readable media include, but are not limited to, transmissive media such as carrier waves, and nontransitory media such as magnetic storage media (e.g., hard disk drives, magnetic tape drives, and floppy disks), optical storage media (e.g., optical discs (CDs), digital video discs (DVDs), and Blu-ray discs), electronic storage media (e.g., solid-state drives and flash memory media), and other distribution systems.
[0036] Figure 2 This is a flowchart of an exemplary computer implementation of a method 200 for performing agentless accelerated backup of a database. Figure 2 The steps shown can be performed by any suitable computer-executable code and / or computing system, including Figure 1 System 100 and / or variations or combinations of one or more of the above. In one example, Figure 3 Each step shown can represent an algorithm whose structure includes and / or consists of multiple sub-steps, examples of which will be provided in more detail below.
[0037] like Figure 2 As shown, at step 202, one or more systems in the system described herein may receive data blocks from a data server by a data backup device, which provide a complete backup of the data on the data server. For example, data block receiving module 104 may receive data blocks that provide a complete backup of the data on the data server during an initial backup of the data server and store the data blocks in memory. Additionally, instant access recovery module 110 may catalog the data blocks as a complete backup. In some embodiments, receiving data blocks at step 202 includes receiving data blocks via a file-sharing mechanism that allows files copied via a file-sharing protocol to be cataloged as backups. References below... Figure 3 This file-sharing mechanism will be described in more detail. Processing can proceed from step 202 to step 204.
[0038] At step 204, one or more systems in the system described herein may receive one or more native logs from a data server by a data backup device. These native logs indicate one or more transactions performed by the data server. For example, native log receiving module 106 may receive native logs from the data server and store the logs in memory. In some embodiments, receiving data blocks at step 204 includes receiving data blocks via a file-sharing mechanism that allows receiving native logs from a data server configured in log replication mode. References below... Figure 3 This file-sharing mechanism will be described in more detail. Processing can proceed from step 204 to step 206.
[0039] At step 206, one or more systems in the system described herein may be identified by the data backup device based on native logs, determining one or more change blocks in the data blocks. For example, change block identification module 108 may be initiated by the data backup device to launch a database container image and use the database container image to generate a synthetic complete copy by applying native logs to a previous backup (e.g., a full backup or a previous synthetic backup). The process can proceed from step 206 to step 208.
[0040] At step 208, one or more systems in the system described herein may provide point-in-time recovery of the data server by a data backup device through creating a synthetic full backup, which overwrites one or more data blocks in the data block with one or more changed blocks and shares the remaining blocks in the data block with a previous backup (e.g., a full backup or a previous synthetic backup). Creating a synthetic full backup at step 208 may include performing a backup of a synthetic full copy by cataloging the data blocks, such that the changed data blocks overwrite the corresponding blocks of the previous full backup.
[0041] Turn now Figure 3 This example demonstrates a file-sharing mechanism for agentless accelerated backup of a database. In this example, a data server 300 with database 312 is configured with a data mount 304, such as a Network File Share (NFS) mount. NFS is a distributed file system protocol that allows users on client computers to access files over a computer network as if they were accessing local storage. Like many other protocols, NFS is built on the Open Network Computing Remote Procedure Call (ONC RPC) system. NFS is an open standard defined in a Request for Comments (RFC), allowing anyone to implement the protocol. Alternatives to NFS include the Elastic File System (EFS).
[0042] exist Figure 3 In the example, data backup device 302 has a data export mechanism 306, such as NFS export. The data backup device also has a writable overlay 308 and a data deduplication engine 310, which can generate and store only changed data blocks to data backup device 302, thus avoiding the replication of data blocks from server 300 to device 302. An exemplary writable overlay is a Speed Profile System (VpFS), and an exemplary data deduplication engine is a Media Server Deduplication Storage Pool (MSDP).
[0043] The combination of NFS data mounting, NFS data export, VPN writable overwrite, and MSDP deduplication engine is known as UniversalShares. ™This technology provides a way to export data from a media server to an NFS network file share. The NFS mount provides data server 300 with the ability to view all backups and data stored on data backup device 302. UniversalShares on data server 300... ™ The folder can be copied to back up data, and deduplication is performed in the background via MSDP. Since the data has already been copied to the data backup device 302, backups can be performed by pointing to the data and cataloging it, without transferring any data from server 300 to backup device 302.
[0044] like Figure 3 As shown, data backup device 302 can receive data blocks 314 (e.g., initial full backups and / or subsequent change blocks) via a file-sharing mechanism that allows files copied via a file-sharing protocol to be cataloged as backups. An initial full backup of data blocks 318 can be received and stored as a full backup 320. Subsequently, data backup device 302 can receive one or more native logs 316 from a data server 300 configured in log replication mode via a file-sharing mechanism. Such logs can be transmitted on demand (e.g., according to a schedule), streamed, periodically, and / or in response to events. Device 302 can periodically (e.g., according to a schedule, every threshold number of logs received, whenever a new log is received, etc.) start a database container image 324 that plays the received copy of the native logs 322 and applies that copy to the previous full backup, as described herein. Cataloging the resulting full backup copy as a synthetic full backup 326 using write operations allows change blocks 328 to be copied from server 300 to device 302.
[0045] Using UniversalShares on data server 300 ™ In a specific example with a PostgreSQL database, a full dataset backup can be performed via pg_basebackup by running a "USHARE" backup. Alternatively, incremental dataset backups can be performed using archive_command. An accelerator can then be implemented by starting a PostgreSQL container on the Flex data backup appliance 302, applying the incremental dataset via pg_standby, and performing the "USHARE" backup. Therefore, performing a "USHARE" backup provides point-in-time recovery capabilities by backing up a synthetic full copy and an incremental dataset.
[0046] UniversalShares on Data Server 300 and Flex Data Backup Appliance 302 ™In the specific example with the PostgreSQL database, a regular recovery can be performed from any backup via immediate access. Therefore, a point-in-time recovery between T1 and T2 can be performed partially by restoring the backup from T1 and restoring the incremental logs from T2. The point-in-time recovery can then be completed using `recovery_target_time`, `recovery_target_xid`, `recovery_target_inclusive`, and `recovery_target_timeline`.
[0047] Go to Figure 4 A specific implementation of an exemplary system for agentless accelerated backup of a database demonstrates the advantages compared to log backup using an agent. For example, a data server 400A configured with an agent can perform an initial full backup 406 at 404, and subsequently use the agent to transfer logs 408 to a data backup device 402. Once logs 408 become too numerous, another full backup 410 must be performed at 404, after which additional logs 412 are transferred to device 402 via the agent. Subsequently, in order to perform a recovery 414 to the latest recovery point, data server 400B must copy the latest full backup 410 and all additional logs 412 to data server 400B, and then play a copy of logs 418 at 416 and apply it to the copied full backup 420.
[0048] In contrast, a data server 450A, which natively provides data and native logs to a data backup device 452 with a DB container image 459 instead of using a proxy, can perform an initial full backup 456 at 454, and subsequently transfer native logs 458 to the data backup device 452. The device 452 can then start the database container image 459, which plays the native logs 458 and applies them to the latest full backup, in this case, the initial full backup 456, thus producing a synthetic full copy. This synthetic full copy can then be cataloged as a synthetic full backup in synthetic full backup 460. Afterward, additional native logs 462 can be received and stored on the device 452. The device 452 can again start the database container image 459, which plays the additional native logs 462 and applies them to the latest full backup, in this case, the latest full backup 460, thus producing an additional synthetic full copy. This additional synthetic full copy can then be cataloged as an additional synthetic full backup in synthetic full backup 460. Subsequently, in order to perform recovery 464 to the latest recovery point, data server 400B only needs to copy the latest full backup from synthetic full backup 460, thereby producing a copied full backup 466, without having to copy or play any logs.
[0049] Alternatively, transaction-level recovery can be performed by selecting a specific log in the native log, for example, by providing a transaction identifier corresponding to that specific log in the native log. The latest full backup (e.g., the initial full backup or the latest synthetic backup) preceding the selected specific log in the native log can then be copied from device 452 to data server 400B along with the identified native log and any other native logs that occurred between the latest full backup preceding the selected specific log in the native log and the identified native log. The resulting subset of native logs can then be played back at data server 400B and applied to the latest full backup preceding the selected specific log in the native log.
[0050] From the foregoing, it should be evident that the system using an agent on data server 400A frequently requires periodic full backups, cannot leverage accelerator features, requires significant recovery time to copy, play, and apply all logs during recovery, lacks immediate access, and is vulnerable to mirror chain disruptions. In contrast, the system that does not use an agent on data server 450A and uses database container image 459 on data backup appliance 452 offers numerous advantages. For example, the agentless implementation with native log delivery allows the data backup appliance to be used with various types of databases without requiring an agent to be installed on the data server. Furthermore, this implementation is always incremental, eliminating the need for the data server to perform periodic full backups. Additionally, the agentless implementation provides immediate access with acceleration features, thus avoiding any recovery processing on data server 450B. Moreover, the agentless implementation can perform recovery at the transactional level, significantly reducing the time required to play only a subset of logs. Finally, the agentless implementation is more resistant to disruptions in the mirror chain.
[0051] Turn now Figures 5 to 9 And usually refer to Figures 5 to 9 This provides an example of the operation of an exemplary system for performing agentless accelerated backups of a database. Starting with a first instance T1, data server 500 has a memory 504 storing data blocks AC and an object data structure 506. The object data structure indicates the membership relationships of data blocks AD in file AC. Data server 500 performs an initial full backup at 512 by transferring the contents of memory 504 to data backup device 502. Data backup device 502 stores data blocks AD and object data structure 506 in memory 508 and creates a full backup data structure 510 in memory 508 that catalogs the received data as part of the full backup.
[0052] Subsequently, at the second time instance T2, data server 500 executes transactions that modify blocks B and C, thereby obtaining blocks B' and C'. At 514, data server 500 transfers the raw logs to data backup device 502, which stores the raw logs NL1 and NL2 in memory 508. At the second time instance T2, blocks B' and C' have not yet been copied to data backup device 502.
[0053] At a third time instance T3, following the second time instance T2, data backup appliance 502 starts the container database image, as described herein, and plays logs NL1 and NL2 to determine the first set of changes C1 corresponding to blocks B' and C'. Determining this first set of changes C1 at the third time instance T3 generates blocks B' and C', and stores them in storage 508, thus avoiding copying any change blocks from data server 500. The native log NL1 can be retained in storage as a transaction-level recovery point. In contrast, the native log NL2, following the native log NL1 and being the last log received before starting the container database image, can be deleted or dereferenced for garbage collection. In this example, transaction-level recovery will not require NL2 because the synthetic full backup formed from NL1 and NL2 will provide the same result as such transaction-level recovery without playing any logs on the database server.
[0054] At the fourth time instance T4 following the third time instance T3, the data backup device 502 creates a first synthetic full backup S1 by cataloging the blocks of the previous full backup, as recorded in the full backup data structure 510, and overlays block B' on top of block B and block C' on top of block C. Thereafter, the first set of changes C1 can be deleted or dereferenced for garbage collection, thereby reducing the consumption of memory 508.
[0055] At the fifth time instance T5, following the fourth time instance T4, data server 500 executes a transaction that modifies block B' and object data structure 518 (i.e., by deleting file C and its member block D), thus obtaining block B'' and object' data structure 518. At 520, data server 500 transfers the raw logs to data backup device 502, which stores the raw logs NL3 and NL4 in memory 508. At the fifth time instance T5, block B'' and object' data structure 518 have not yet been copied to data backup device 502.
[0056] At the sixth time instance T6, following the second time instance T5, data backup appliance 502 starts the container database image as described herein and plays logs NL3 and NL4 to determine the second set of changes C2 corresponding to block B'' and object'.
[0057] At the sixth time instance T6, the second set of changes, C2, is determined to obtain block B'' and object', and stored in storage 508, thus avoiding copying any change blocks from data server 500. The native log NL3 can be retained in storage as a transaction-level recovery point. In contrast, the native log NL4, which follows native log NL3 and is the last log received before starting the container database image, can be deleted or dereferenced for garbage collection. In this example, transaction-level recovery will not require NL4 because the synthetic full backup formed from NL3 and NL4 will provide the same result as such transaction-level recovery without playing any logs on the database server.
[0058] At the seventh time instance T7, following the sixth time instance T6, the data backup device 502 creates a second synthetic full backup S2 by cataloging the blocks of the previous full backup, as recorded in the first synthetic full backup data structure S1, and overlays block B'' on top of block B', and overlays object' on top of object. Thereafter, the second set of changes C2 can be deleted or dereferenced for garbage collection, thereby reducing the consumption of memory 508.
[0059] As shown in the seventh time instance S7, data server 500 can see three point-in-time recovery points corresponding to the full backup data structure 510, the first synthetic full backup S1, and the second synthetic full backup S2. Any data blocks from any full backup can be copied to data server 500 to perform a recovery operation without playing any logs at data server 500. Data server 500 can also see two transaction-level recovery points corresponding to native logs NL1 and NL3. Transaction-level recovery can also be performed by copying a selected one of the native logs NL1 and NL3 along with data blocks from its previous full backup (i.e., the full backup 510 before NL1 or the synthetic backup S1 before NL3). The copied native logs can then be played at data server 500 and applied to copies of their previous full backups to complete the transaction-level recovery. Additionally, any native logs received after the latest synthetic full backup that have not yet been used to create a synthetic full backup can be used as transaction-level recovery points. Data server 500 can copy only the data blocks referenced by the latest synthetic full backup, the selected native logs, and any other native logs preceding the selected native logs but following the latest synthetic full backup, play the resulting subset of native logs, and apply it to the latest synthetic full backup. Therefore, the need for data server 500 to play logs during recovery operations can be eliminated or reduced.
[0060] As described above, the data backup device described in this article uses the native log delivery mechanism provided by most databases to transfer logs to the data backup device (e.g., NetBackup Media Server). ™ Furthermore, file-sharing mechanisms such as MSDP (Universal Shared Resources) can also be used. ™ The data backup server uses a file-sharing interface (such as VirtualShares or VpFS) to maintain full backups. Then, by periodically calling the container running the database, the data backup server applies logs to the previous database copy stored in MSDP to synthesize a complete, accelerated copy. For specific details regarding UniversalShares as a sharing mechanism, please refer to this document. ™ and NetBackup Media Server as a data backup device ™ This is used to describe the solution, but it is also applicable to any data backup device with writable overlays such as VpFS and data deduplication engines such as MSDP.
[0061] A complete backup of the database can be dumped to UniversalShares on the data server. ™ Or in the file system interface, it can be accessed through UniversalShares. ™ Alternatively, you can dump the database's data files by copying the TAR file. This exists in UniversalShares. ™ The database's data files are backed up using a special strategy that only compiles the files, as the data already exists, thus completing the backup very quickly. The database can be configured to archive or replicate logs, and subsequent logs can be copied to a configured location, such as UniversalShares. ™ The folder serves as the MSDP interface to VpFS / MSDP. Once copied to the archive location, the database can automatically recycle its logs. Periodically, according to an incremental schedule, the container can be invoked on a data backup appliance with a version of the database software compatible with the database software on the production host data server. The container image uses database-native mechanisms to fetch logs from the archive location and apply them to its database copy, updating the database copy. A backup of the updated copy can then be fetched, and according to the UShare policy, only the updated data blocks of the data files are backed up, as MSDP is a deduplicated database that can identify and back up changed blocks. This process ensures that a synthetic, complete, and consistent copy of the database files is always available at the data backup appliance, and that this synthetic, complete, and consistent copy is readily accessible because it does not require replaying logs during recovery operations. This solution is advantageous because it is a Flex-native solution suitable for rapid growth or high-volume database workloads.
[0062] While the foregoing disclosures illustrate various implementations using specific block diagrams, flowcharts, and examples, each block diagram component, flowchart step, operation, and / or component described and / or illustrated herein may be implemented individually and / or collectively using a variety of hardware, software, or firmware (or any combination thereof) configurations. Furthermore, any disclosure of components contained within other components should be considered illustrative in nature, as many other architectures may be implemented to achieve the same functionality.
[0063] In some examples, Figure 1 All or part of the exemplary system 100 described herein may represent a cloud computing environment or a portion of a network-based environment. A cloud computing environment can provide various services and applications via the Internet. These cloud-based services (e.g., Software as a Service, Platform as a Service, Infrastructure as a Service, etc.) can be accessed via a web browser or other remote interface. The various functionalities described herein can be provided via a remote desktop environment or any other cloud-based computing environment.
[0064] In various implementation schemes, Figure 1 All or part of the exemplary system 100 described herein can facilitate multiple tenancy within a cloud-based computing environment. In other words, the modules described herein can configure computing systems (e.g., servers) to facilitate one or more of the functions described herein for multiple tenancy. For example, one or more of the modules described herein can program a server to allow two or more clients (e.g., customers) to share an application running on the server. A server programmed in this way can share applications, operating systems, processing systems, and / or storage systems among multiple customers (i.e., tenants). One or more of the modules described herein can also segment the data and / or configuration information of the multi-tenant application for each customer so that one customer cannot access the data and / or configuration information of another customer.
[0065] According to various implementation plans Figure 1 All or part of the exemplary system 100 described herein can be implemented within a virtual environment. For example, the modules and / or data described herein may reside and / or be executed within a virtual machine. As used herein, the term "virtual machine" generally refers to any operating system environment extracted from computing hardware by a virtual machine manager (e.g., a hypervisor).
[0066] In some examples, Figure 1All or part of the exemplary system 100 described herein may represent a portion of a mobile computing environment. A mobile computing environment may be implemented by a variety of mobile computing devices, including mobile phones, tablets, e-book readers, personal digital assistants, wearable computing devices (e.g., computing devices with head-mounted displays, smartwatches, etc.), variations or combinations of the above, or any other suitable mobile computing device. In some examples, a mobile computing environment may have one or more distinctive features, including, for example, battery-powered operation, presenting only one foreground application at any given time, remote management features, touchscreen features, location and mobility data (e.g., provided by a GPS, gyroscope, accelerometer, etc.), a restricted platform for limiting modifications to system-level configurations and / or limiting the ability of third-party software to inspect the behavior of other applications, controls for limiting application installation (e.g., limiting installation to applications from approved app stores), and so on. The various functionalities described herein may be provided for and / or able to interact with a mobile computing environment.
[0067] The process parameters and sequences of steps described and / or illustrated herein are given by way of example only and may be changed as needed. For example, while the steps shown and / or described herein may be shown or discussed in a specific order, these steps need not be performed in the order shown or discussed. The various example methods described and / or illustrated herein may also omit one or more of the steps described or illustrated herein, or may include additional steps in addition to those disclosed.
[0068] While various embodiments have been described and / or illustrated herein in the context of a full-featured computing system, one or more of these exemplary embodiments may be distributed as a variety of program products, regardless of the specific type of computer-readable medium used for the actual distribution. The embodiments disclosed herein may also be implemented using modules that perform certain tasks. These modules may include script files, batch files, or other executable files that may be stored on computer-readable storage media or within a computing system. In some embodiments, these modules may configure the computing system to perform one or more of the exemplary embodiments disclosed herein.
[0069] The foregoing description is intended to enable others skilled in the art to best utilize the various aspects of the exemplary embodiments disclosed herein. This exemplary description is not intended to be exhaustive or limited to any exact form disclosed. Many modifications and variations may be made without departing from the spirit and scope of this disclosure. The embodiments disclosed herein should be considered exemplary and not restrictive in all respects. The scope of this disclosure should be determined with reference to the appended claims and their equivalents.
[0070] Unless otherwise stated, the terms “connected to” and “coupled to” (and their derivatives) as used in this specification and claims should be understood to allow both direct and indirect connections (i.e., connections via other elements or components). Furthermore, the terms “a” or “an” as used in this specification and claims should be understood to mean “at least one…”. Finally, for ease of use, the terms “comprising” and “having” (and their derivatives) as used in this specification and claims are interchangeable with and have the same meaning as the word “including”.
Claims
1. A computer-implemented method for agentless accelerated backup of a database, at least a portion of the method being performed by a computing device including at least one processor, the method comprising: A data backup device receives data blocks from a data server, the data blocks providing a complete backup of the data server's data; The data backup device receives one or more native logs from the data server, the one or more native logs indicating one or more transactions executed by the data server; The data backup device determines one or more modified blocks in the data block based on the native log; The data backup device provides point-in-time recovery of the data server by creating a synthetic full backup, wherein the synthetic full backup overwrites one or more data blocks in the data block with the one or more changed blocks, and shares the remaining blocks in the data block with the full backup; as well as The data backup device maintains at least one of the one or more native logs in memory as one or more transaction-level recovery points.
2. The method of claim 1, wherein receiving the data block includes receiving the data block via a file-sharing mechanism, the file-sharing mechanism allowing files copied via a file-sharing protocol to be cataloged as backups.
3. The method according to claim 2, wherein the file sharing mechanism includes a Network File Sharing (NFS) data export mechanism.
4. The method of claim 2, wherein the file sharing mechanism includes writable overwrite.
5. The method according to claim 2, wherein the sharing mechanism includes a data deduplication engine.
6. The method according to any one of claims 1 to 5, wherein receiving the one or more native logs includes receiving the native logs from the data server configured in log replication mode.
7. The method of any one of claims 1 to 5, wherein determining the one or more change blocks includes launching a database container image by the data backup device and using the database container image to generate a synthetic full copy by applying the native logs to the full backup.
8. The method of claim 6, wherein determining the one or more change blocks includes launching a database container image by the data backup device and using the database container image to generate a synthetic full copy by applying the native logs to the full backup.
9. The method of claim 7, wherein creating the synthetic complete backup includes performing a backup of the synthetic complete copy.
10. The method of claim 8, wherein creating the synthetic complete backup includes performing a backup of the synthetic complete copy.
11. A system for agentless accelerated backup of a database, the system comprising: A device for calculation, the device for calculation including at least one device for processing; and A memory device coupled to the at least one means for processing, wherein the at least one means for processing is configured to: The data backup device receives a data block from the data server device, the data block providing a complete backup of the data server's data; The data backup device receives one or more native logs from the data server device, the one or more native logs indicating one or more transactions executed by the data server; The data backup device determines one or more modified blocks in the data block based on the native log; The data backup device provides point-in-time recovery of the data server device by creating a synthetic complete backup, wherein the synthetic complete backup overwrites one or more data blocks in the data block with the one or more modified blocks, and shares the remaining blocks in the data block with the complete backup; as well as The data backup device maintains at least one of the one or more native logs in memory as one or more transaction-level recovery points.
12. The system of claim 11, wherein the means for processing is configured to receive the data block at least in part by receiving the data block via a file-sharing device that allows files copied via a file-sharing protocol to be cataloged as backups.
13. The system of claim 12, wherein the file sharing device includes a Network File Sharing (NFS) data export device.
14. The system of claim 12, wherein the file sharing device includes a writable overlay.
15. The system of claim 12, wherein the sharing device includes a data deduplication device.
16. The system according to any one of claims 11 to 15, wherein the at least one means for processing is configured to receive the one or more native logs at least in part by receiving the native logs from the data server means configured in log replication mode.
17. The system according to any one of claims 11 to 15, wherein the at least one means for processing is configured to determine the one or more change blocks at least in part by initiating a database container image by the data backup means and using the database container image to generate a synthetic full copy by applying the native logs to the full backup.
18. The system of claim 16, wherein the at least one means for processing is configured to determine the one or more change blocks at least in part by initiating a database container image by the data backup means and using the database container image to generate a synthetic full copy by applying the native logs to the full backup.
19. The system of claim 17, wherein the at least one means for processing is configured to create the synthetic complete backup at least in part by performing a backup of the synthetic complete copy.
20. The system of claim 18, wherein the at least one means for processing is configured to create the synthetic complete backup at least in part by performing a backup of the synthetic complete copy.