IP Library Granted Patent US 10,303,550
Granted Patent B2
US 10,303,550 · App. 15/868,854 · Granted May 28, 2019

Content-independent and database management system-independent synthetic full backup of a database based on snapshot technology

Inventor: Paramasivam Kumarasamy (Morganville, NJ)
Assignee: Commvault Systems, Inc.
G06F11/1435G06F11/00G06F11/1451G06F2201/80G06F2201/84
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,303,550
App. No.
15/868,854
Granted
May 28, 2019
Kind
B2
Abstract

The illustrative storage management system uses snapshot technologies and performs block-level analysis thereof and to synthesize full backups of a database, regardless of the database management system (DBMS) and content of the database and without involving native DBMS utilities. Synthetic full copies are created efficiently and use network transport resources sparingly. Successive snapshots of the database may be hardware snapshots and/or software snapshots. The illustrative storage management system tracks which data blocks in the database change over time after a baseline full copy is saved to secondary storage. Only the changed blocks are subsequently moved to secondary storage as incremental backups and are indexed for future reference. A synthetic full backup of the database, at a given point in time, may be created by synthesizing the original full backup with changed blocks from any number of later incremental backups. The synthetic full backup comprises pointers to appropriate data blocks, ignoring intermediate changes, and pointing to the most current data block in secondary storage relative to the given point in time chosen for the synthetic full backup. The illustrative storage management system may restore the synthetic full backup without native DBMS utilities.

Claims (63)

1. A non-transitory computer-readable medium storing instructions that, when executed by a computing device, which comprises one or more processors and computer memory, cause the computing device to perform operations comprising:

storing a copy of a first snapshot of a database to a storage device,

wherein a database management system (DBMS) performs operations that change data in the database;

after the first snapshot, generating a plurality of successive snapshots of the database, wherein for a given successive snapshot:

(i) receiving identifiers of changed data blocks within the given successive snapshot that changed in the database relative to corresponding data blocks in an immediately preceding snapshot of the database, wherein the changed data blocks are identified by a filter that is independent of data block content,

(ii) extracting the changed data blocks from the given successive snapshot based on the received identifiers,

(iii) storing to the storage device a corresponding incremental backup of the database, based on the given successive snapshot and comprising the changed data blocks extracted from the given successive snapshot of the database, and

(iv) indexing the changed data blocks that are in the corresponding incremental backup;

based on the indexing, generating a synthetic full block-level backup of the database represented at a given point in time, by consolidating the copy of the first snapshot of the database with data blocks that are most current relative to the given point in time,

based on pointers to data blocks that are most current relative to the given point in time, including pointers to changed data blocks, and skipping over intermediate changed data blocks that are not most current relative to the given point in time,

as found in: (a) the copy of the first snapshot of the database, and (b) one or more of the incremental backups of the database based on corresponding successive snapshots;

storing the synthetic full block-level backup of the database to the storage device; and

restoring the database from the synthetic full block-level backup in the storage device without using a native restore feature of the database management system, wherein the restoring is independent of database content.

2. The non-transitory computer-readable medium of claim 1 wherein the copy of the first snapshot comprises all data blocks in the first snapshot.

3. The non-transitory computer-readable medium of claim 1 wherein the restored database comprises all data blocks of the database at the time a most recent snapshot was generated in the plurality of successive snapshots.

4. The non-transitory computer-readable medium of claim 1 wherein a media agent that executes on the computing device performs the operations comprising: the storing of the copy of the first snapshot, the receiving, the extracting, the storing of the corresponding incremental backup, the generating of the synthetic full block-level backup, and the storing of the synthetic full block-level backup.

5. The non-transitory computer-readable medium of claim 1 wherein the synthetic full block-level backup is independent of the database management system.

6. A method for generating a full block-level backup copy of a database in a data storage management system, the method comprising:

storing a copy of a first snapshot of the database to a storage device, wherein a database management system (DBMS) performs operations that change data in the database, and

wherein the storing operation is performed by a media agent component of the data storage management system, which executes on a first computing device comprising one or more processors and computer memory;

after the first snapshot, generating a plurality of successive snapshots of the database, wherein for a given successive snapshot:

(i) receiving, by the media agent, identifiers of changed data blocks within the given successive snapshot that changed in the database relative to corresponding data blocks in an immediately preceding snapshot of the database, wherein the changed data blocks are identified by a filter that is independent of data block content,

(ii) extracting, by the media agent, the changed data blocks from the given successive snapshot based on the received identifiers, and

(iii) storing, by the media agent to the storage device, a corresponding incremental backup of the database, based on the given successive snapshot and comprising the changed data blocks extracted from the given successive snapshot of the database, and

(iv) indexing, by the media agent, the changed data blocks that are in the corresponding incremental backup;

based on the indexing, generating, by the media agent, a synthetic full block-level backup of the database represented at a given point in time, by consolidating the copy of the first snapshot of the database with data blocks that are most current relative to the given point in time,

based on pointers to data blocks that are most current relative to the given point in time, including pointers to changed data blocks, and skipping over intermediate changed data blocks that are not most current relative to the given point in time,

as found in: (a) the copy of the first snapshot of the database, and (b) one or more of the incremental backups based on corresponding successive snapshots;

storing, by the media agent, the synthetic full block-level backup of the database to the storage device; and

restoring the database from the synthetic full block-level backup in the storage device without using a native restore feature of the database management system, wherein the restoring is independent of database content.

7. The method of claim 6 wherein the synthetic full block-level backup is independent of database content.

8. The method of claim 6 wherein the synthetic full block-level backup is independent of the database management system.

9. The method of claim 6 wherein the plurality of successive snapshots of the database are generated by a storage device that also stores the database.

10. The method of claim 6 wherein the plurality of successive snapshots of the database are generated by a computing device that hosts the database management system.

11. The method of claim 6 wherein the restored database comprises all data blocks of the database at the time a most recent snapshot was generated in the plurality of successive snapshots.

12. The method of claim 6 further comprising:

monitoring, by a data agent component of the data storage management system, write operations performed by the database management system that change data in the database; and

identifying, by the filter within the data agent, changed data blocks which changed in the database relative to corresponding data blocks in an immediately preceding snapshot of the database, wherein identifiers of the changed data blocks are received by the media agent from the data agent.

13. The method of claim 6 wherein the media agent receives the identifiers of the changed data blocks which changed in the database relative to corresponding data blocks in an immediately preceding snapshot of the database from a data agent that monitors write operations performed by the database management system that result in the changed data blocks.

14. A data storage management system comprising:

a first computing device that executes a database management system (DBMS), which operates upon a database, wherein the first computing device comprises one or more processors and computer memory;

a first storage device in communication with the first computing device, wherein the storage device stores the database and a plurality of successive snapshots of the database;

a second storage device for storing a full backup of a first snapshot of the database taken at a first time;

a second computing device in communication with the first computing device and with the second storage device; and

wherein the second computing device is configured to:

store a copy of a first snapshot of the database to the second storage device,

after the first snapshot, generating a plurality of successive snapshots of the database, wherein for a given successive snapshot:

(i) receive respective identifiers that identify changed data blocks which changed in the database relative to corresponding data blocks in an immediately preceding snapshot of the database, wherein the changed data blocks are identified by a filter that is independent of data block content,

(ii) extract the changed data blocks from the given successive snapshot based on the received identifiers,

(iii) store to the second storage device a corresponding incremental backup of the database, based on the given successive snapshot and comprising the changed data blocks extracted from the given successive snapshot of the database, and

(iv) maintain an index of the changed data blocks that are in the corresponding incremental backup, based on the index, generate a synthetic full block-level backup of the database represented at a given point in time, by consolidating the copy of the first snapshot of the database with data blocks that are most current relative to the given point in time,

based on pointers to data blocks that are most current relative to the given point in time, including pointers to changed data blocks, and skipping over intermediate changed data blocks that are not most current relative to the given point in time,

as found in: (a) the copy of the first snapshot of the database, and (b) one or more of the incremental backups based on corresponding successive snapshots,

store the synthetic full block-level backup of the database to the second storage device, and

restore the database from the synthetic full block-level backup in the storage device without using a native restore feature of the database management system, wherein the restore is independent of database content.

15. The data storage management system of claim 14 wherein the restored database comprises all data blocks of the database at a time a most recent snapshot was generated in the plurality of successive snapshots.

16. The data storage management system of claim 14 wherein the plurality of successive snapshots of the database are generated by the first storage device that also stores the database.

17. The data storage management system of claim 14 wherein the plurality of successive snapshots of the database are generated by the first computing device that hosts the database management system.

18. The data storage management system of claim 14 wherein the first computing device is configured to:

monitor write operations performed by the database management system that change data in the database.

19. The data storage management system of claim 14 wherein the first computing device is configured to:

use the filter to identify changed data blocks that changed in the database relative to corresponding data blocks in an immediately preceding snapshot of the database, wherein the identifiers that identify the changed data blocks are received by the second computing device from the first computing device.

20. The data storage management system of claim 14 wherein the second computing device receives the identifiers that identify the changed data blocks which changed in the database relative to corresponding data blocks in an immediately preceding snapshot of the database from the first computing device, which is configured to monitor write operations performed by the database management system that result in the changed data blocks.

Assignments (3)
SUPPLEMENTAL CONFIRMATORY GRANT OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Apr 16, 2025
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070864/0344 →
SECURITY INTEREST Recorded Dec 13, 2021
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058496/0836 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2018
From: KUMARASAMY, PARAMASIVAM
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 044603/0555 →
Continuity (2)
Continuation 14692357 · Apr 21, 2015
Related Publication 20180129567A1 · May 10, 2018