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 one or more snapshots of the database, the method comprising executing on one or more computing devices the steps of:
- generating a first snapshot of the database, wherein the first snapshot is stored to a first storage device,wherein a database management system 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 data blocks are designated changed data blocks for the respective snapshot;
extracting, by the media agent, the identified changed data blocks from the respective snapshot;
storing to the second storage device, by the media agent, a plurality of incremental backups of the database corresponding to each respective snapshot in the plurality of successive snapshots,wherein the respective incremental backup comprises the extracted changed data blocks from the respective snapshot;
generating, by the media agent, a synthetic full backup of the database,which represents the database at the time the most recent snapshot was generated in the plurality of successive snapshots,wherein the synthetic full backup comprises a set of pointers to the most-current data blocks in;
the copy of the first snapshot and the plurality of incremental backups of the database; and
storing, by the media agent to the second storage device, the synthetic full backup of the database.
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.
116 Citations
17 Claims
-
1. A computer-implemented method for synthesizing a block-level backup copy of a database in a storage management system based on one or more snapshots of the database, the method comprising executing on one or more computing devices the steps of:
-
generating a first snapshot of the database, wherein the first snapshot is stored to a first storage device, wherein a database management system 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 data blocks are designated changed data blocks for the respective snapshot; extracting, by the media agent, the identified changed data blocks from the respective snapshot; storing to the second storage device, by the media agent, a plurality of incremental backups of the database corresponding to each respective snapshot in the plurality of successive snapshots, wherein the respective incremental backup comprises the extracted changed data blocks from the respective snapshot; generating, by the media agent, a synthetic full backup of the database, which represents the database at the time the most recent snapshot was generated in the plurality of successive snapshots, wherein the synthetic full backup comprises a set of pointers to the most-current data blocks in;
the copy of the first snapshot and the plurality of incremental backups of the database; andstoring, by the media agent to the second storage device, the synthetic full backup of the database. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A storage management system useful for synthesizing a block-level backup copy of a database based on one or more snapshots of the database, the system comprising:
-
a client computing device that executes a database management system, which operates upon a database, and also executes data agent associated with the database management system; 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 change in the database relative to the 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, the 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 changed relative to the immediately preceding snapshot of the database, and wherein the changed data blocks are identified by the data agent, 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 a synthetic full 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 backup comprises a set of pointers to the most current data blocks in;
the full backup of the database and the plurality of incremental backups,wherein the synthetic full backup skips over intermediate changed data blocks that changed in a snapshot and changed again in a later snapshot in the plurality of successive snapshots, and store the synthetic full backup of the database to the secondary storage device. - View Dependent Claims (11, 12)
-
-
13. A tangible computer-readable medium, excluding transitory propagating signals, storing instructions that, when executed by at least one secondary storage computing device, cause the secondary storage computing device to perform operations comprising:
-
storing a copy of a first snapshot of a database to a secondary storage device, which copy is designated a full backup of the database; 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; generating a first synthetic full backup of the database, representing the database at the time the second snapshot was taken, wherein the first synthetic full backup comprises a set of pointers to the most-current data blocks in;
(i) the full backup of the database and (ii) the first incremental backup of the database; andstoring the first synthetic full backup of the database to the secondary storage device. - View Dependent Claims (14, 15, 16, 17)
-
Specification