Content-independent and database management system-independent synthetic full backup of a database based on snapshot technology
First Claim
1. A computer-implemented method for synthesizing a block-level backup copy of a database in a storage management system based on snapshots of the database, the method comprising executing on one or more computing devices the steps of:
- generating a first snapshot of the database, which includes associated metadata, wherein the first snapshot is stored to a first storage device,wherein a database management system (DBMS) that executes on a client computing device component of the storage management system performs operations that change data in the database;
storing, by a media agent component of the storage management system, a copy of the first snapshot to a second storage device;
after the first snapshot is generated, generating a plurality of successive snapshots of the database;
after each snapshot in the plurality of successive snapshots is generated,identifying, by a data agent that is associated with the database management system, a respective set of data blocks which changed in the database relative to corresponding data blocks in an immediately preceding snapshot, which set of identified data blocks are designated changed data blocks for the respective snapshot, andmaintaining, by the data agent, a respective list of the changed data blocks for the respective snapshot;
extracting, by the media agent, the identified changed data blocks from the respective snapshot;
storing and indexing to the second storage device, by the media agent, a plurality of incremental backups of the database corresponding to respective snapshots in the plurality of successive snapshots,wherein a respective incremental backup comprises the changed data blocks extracted from the respective snapshot;
generating, based on the indexing, by the media agent, a synthetic full block-level backup of the database represented at a given point in time,wherein the synthetic full block-level backup is independent of database content and DBMS type, and comprises pointers to most-current data blocks relative to the given point in time, including pointers to changed data blocks and skipping over intermediate changed data blocks, as found by the media agent in the second storage device from;
(a) the copy of the first snapshot and (b) the plurality of incremental backups,thereby resulting in the synthetic full block-level backup which represents the database at the given point in time;
storing, by the media agent to the second storage device, the synthetic full backup of the database;
reporting, by the media agent, completion of the synthetic full block-level backup of the database to a storage manager that maintains records thereof; and
restoring the database from the synthetic full block-level backup in the second storage device without using a native restore feature of the DBMS.
2 Assignments
0 Petitions
Accused Products
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.
204 Citations
15 Claims
-
1. A computer-implemented method for synthesizing a block-level backup copy of a database in a storage management system based on snapshots of the database, the method comprising executing on one or more computing devices the steps of:
-
generating a first snapshot of the database, which includes associated metadata, wherein the first snapshot is stored to a first storage device, wherein a database management system (DBMS) that executes on a client computing device component of the storage management system performs operations that change data in the database; storing, by a media agent component of the storage management system, a copy of the first snapshot to a second storage device; after the first snapshot is generated, generating a plurality of successive snapshots of the database; after each snapshot in the plurality of successive snapshots is generated, identifying, by a data agent that is associated with the database management system, a respective set of data blocks which changed in the database relative to corresponding data blocks in an immediately preceding snapshot, which set of identified data blocks are designated changed data blocks for the respective snapshot, and maintaining, by the data agent, a respective list of the changed data blocks for the respective snapshot; extracting, by the media agent, the identified changed data blocks from the respective snapshot; storing and indexing to the second storage device, by the media agent, a plurality of incremental backups of the database corresponding to respective snapshots in the plurality of successive snapshots, wherein a respective incremental backup comprises the changed data blocks extracted from the respective snapshot; generating, based on the indexing, by the media agent, a synthetic full block-level backup of the database represented at a given point in time, wherein the synthetic full block-level backup is independent of database content and DBMS type, and comprises pointers to most-current data blocks relative to the given point in time, including pointers to changed data blocks and skipping over intermediate changed data blocks, as found by the media agent in the second storage device from;
(a) the copy of the first snapshot and (b) the plurality of incremental backups,thereby resulting in the synthetic full block-level backup which represents the database at the given point in time; storing, by the media agent to the second storage device, the synthetic full backup of the database; reporting, by the media agent, completion of the synthetic full block-level backup of the database to a storage manager that maintains records thereof; and restoring the database from the synthetic full block-level backup in the second storage device without using a native restore feature of the DBMS. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A data storage management system useful for synthesizing a block-level backup copy of a database based on snapshots of the database, the system comprising:
-
a client computing device that (i) executes a database management system (DBMS), which operates upon a database that includes associated metadata, and (ii) also executes a data agent associated with the DBMS; a storage array in communication with the client computing device, wherein the storage array stores the database and a plurality of successive snapshots of the database; a secondary storage computing device that executes a media agent; a secondary storage device in communication with the media agent, wherein the secondary storage device comprises a full backup of a first snapshot of the database taken at a first time, wherein the full backup and the first snapshot each comprises a first set of data blocks; wherein the client computing device, when executing the data agent, is programmed to identify, after each snapshot is taken, data blocks that changed in the database relative to corresponding data blocks in the respective snapshot; and wherein the secondary storage computing device, when executing the media agent, is programmed to; index, into a first index, storage locations in the secondary storage device of the first set of data blocks of the full backup, store a plurality of incremental backups of the database to the secondary storage device, wherein each respective incremental backup comprises a corresponding set of changed data blocks extracted by the media agent from a respective snapshot in the plurality of successive snapshots on the storage array, wherein the extracted data blocks are data blocks that changed relative to an immediately preceding snapshot of the database, and wherein the changed data blocks are identified by the data agent into a respective list maintained by the data agent for the respective incremental backup, generate, for each incremental backup, a corresponding index of the storage locations in the secondary storage device of the data blocks of the respective incremental backup, generate, based on one or more corresponding index, a synthetic full block-level backup of the database, which represents the database at the time of the most recent snapshot in the plurality of successive snapshots, wherein the synthetic full block-level backup is independent of database content and DBMS type, and comprises pointers to most most-current data blocks relative to the time of the most recent snapshot, including pointers to changed data blocks and skipping over intermediate changed data blocks, as found by the media agent in;
(a) the full backup of the database, and (b) the plurality of incremental backups;store the synthetic full backup of the database to the secondary storage device; report completion of the synthetic full block-level backup of the database to a storage manager that maintains records thereof; and restore the database from the synthetic full block-level backup in the secondary storage device without using a native restore feature of the DBMS. - View Dependent Claims (9, 10)
-
-
11. A non-transitory computer-readable medium storing instructions that, when executed by at least one secondary storage computing device, which comprises one or more processors and computer memory, cause the secondary storage computing device to perform operations comprising:
-
storing a copy of a first snapshot of a database, which includes associated metadata, to a secondary storage device, which copy is designated a full backup of the database, and wherein a database management system (DBMS) operates upon the database; generating a plurality of successive snapshots of the database and identifying a respective set of data blocks which changed in the database relative to corresponding data blocks in an immediately preceding snapshot, which set of identified data blocks are designated changed data blocks for the respective snapshot; receiving identifiers of a first set of changed data blocks in the database relative to the first snapshot; extracting the identified first set of changed data blocks from a second snapshot of the database which follows the first snapshot; storing a first incremental backup of the database to the secondary storage device, wherein the first incremental backup comprises the first set of changed data blocks extracted from the second snapshot and maintain a respective list of the changed data blocks for the respective snapshot; generating, for the first incremental backup, a corresponding first index of storage locations in the secondary storage device of the first set of changed data blocks; generating, based at least in part on the first index, a first synthetic full block-level backup of the database, representing the database at the time the second snapshot was taken, wherein the first synthetic full block-level backup is independent of database content and DBMS type, and comprises a set of pointers to most-current data blocks and skipping over intermediate changed data blocks relative to the time the second snapshot was taken, as found in;
(i) the full backup of the database and (ii) the first incremental backup of the database;storing the first synthetic full backup of the database to the secondary storage device; reporting completion of the first synthetic full block-level backup of the database to a storage manager that maintains records thereof; and restoring the database from the first synthetic full block-level backup in the second storage device without using a native restore feature of the DBMS. - View Dependent Claims (12, 13, 14, 15)
-
Specification