Point in time database restore from storage snapshots
First Claim
1. A system comprising:
- a database, wherein the database comprises;
data storage for storing data items;
log storage for storing log records that comprise a list of operations performed on the data storage at discrete points in time; and
a mapping structure representing state of the data in the database at any given point in time, the mapping structure comprising a set of pointers to storage locations for data as currently stored at the given point in time;
one or more physical computer storage media comprising computer executable instructions;
one or more processors, which when executing the computer executable instructions, cause the system to archive the database by providing point in time recovery of the database by restoring the database to a selected point in time between adjacent snapshots, by performing the following;
taking a plurality of snapshots each comprising;
a data portion comprising pointers to storage locations for data items existing in the database at each respective point in time;
a log portion comprising a state of the log storage containing records that represent an enumeration of operations performed on the data storage at each respective point in time;
andrestoring the database to a particular point in time between a first point in time and a second point in time that is adjacent to the first point in time, by performing the following;
for a first snapshot corresponding to the first point in time, performing the following;
applying the data portion comprising pointers to storage locations for data items existing in the database at the first point in time; and
applying the log portion comprising a state of the log storage containing records that represent an enumeration of operations performed on the data storage at the first point in time; and
for a second snapshot corresponding to the adjacent second point in time, applying a portion which comprises some but not all of the log portion of the second snapshot, wherein the applied portion comprises only those log records that represent an enumeration of operations performed on stored data up to the particular point in time between the first point in time and the second point in time.
2 Assignments
0 Petitions
Accused Products
Abstract
Archiving a database and point in time recovery of the database. A method includes taking a first snapshot of a database. The first snapshot of the database includes a first snapshot of the data in the data storage and a first snapshot of the log records in the log storage. The method further includes taking a second snapshot of the database. The second snapshot of the database includes a second snapshot of the data in data storage and a second snapshot of the log records. The method further includes restoring the database to a particular point by applying the first snapshot of the data in the data storage to the database, applying the first snapshot of the log records in the log storage to the database and applying a portion of the second snapshot of the log records in the log storage to the database.
-
Citations
23 Claims
-
1. A system comprising:
-
a database, wherein the database comprises; data storage for storing data items; log storage for storing log records that comprise a list of operations performed on the data storage at discrete points in time; and a mapping structure representing state of the data in the database at any given point in time, the mapping structure comprising a set of pointers to storage locations for data as currently stored at the given point in time; one or more physical computer storage media comprising computer executable instructions; one or more processors, which when executing the computer executable instructions, cause the system to archive the database by providing point in time recovery of the database by restoring the database to a selected point in time between adjacent snapshots, by performing the following; taking a plurality of snapshots each comprising; a data portion comprising pointers to storage locations for data items existing in the database at each respective point in time; a log portion comprising a state of the log storage containing records that represent an enumeration of operations performed on the data storage at each respective point in time; and restoring the database to a particular point in time between a first point in time and a second point in time that is adjacent to the first point in time, by performing the following; for a first snapshot corresponding to the first point in time, performing the following; applying the data portion comprising pointers to storage locations for data items existing in the database at the first point in time; and applying the log portion comprising a state of the log storage containing records that represent an enumeration of operations performed on the data storage at the first point in time; and for a second snapshot corresponding to the adjacent second point in time, applying a portion which comprises some but not all of the log portion of the second snapshot, wherein the applied portion comprises only those log records that represent an enumeration of operations performed on stored data up to the particular point in time between the first point in time and the second point in time. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
-
a database, wherein the database comprises; data storage for storing data items; log storage for storing log records that comprise a list of operations performed on the data storage at discrete points in time; and a mapping structure representing state of the data in the database at any given point in time, the mapping structure comprising a set of pointers to storage locations for data as currently stored at the given point in time; one or more physical computer storage media comprising computer executable instructions; one or more processors, which when executing the computer executable instructions, cause the system to archive the database by providing point in time recovery of the database by restoring the database to a selected point in time between two snapshots, by performing the following; taking a first snapshot of the database at a first time, and wherein the first snapshot comprises; a data portion containing the set of pointers in the mapping structure at the first time corresponding to the first snapshot of the data in the data storage of the databases; and a log portion containing the list of any operations performed on data up to the first time corresponding to the first snapshot of the log records in the log storage; taking one or more additional snapshots of the database at one or more times subsequent to the first time, wherein the one or more additional snapshots each comprise; a data portion containing the set of pointers in the mapping structure corresponding to each subsequent time for a taken subsequent snapshot of the data storage; and a log portion containing the list of any operations performed on data up to the subsequent time corresponding to each subsequent snapshot, wherein for each additional snapshot the corresponding list of the log portion is a list of all log records occurring after the time of the additional snapshot of the database from a most recent previous snapshot of the database; and restoring the database to a particular point between two snapshots of the database by performing the following; applying the data and log portions of the first snapshot; and then applying some but not all of the log portions from two or more of the additional snapshots, wherein the applied log portions comprise only those records that represent an enumeration of operations performed on stored data up to the particular point in time. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computer-implemented method for archiving a database by providing point in time recovery of the database, the computer-implemented method being performed by one or more processors executing computer executable instructions for the computer-implemented method, and the computer-implemented method comprising:
-
taking a plurality of snapshots each comprising; a data portion comprising pointers to storage locations for data items existing in the database at each respective point in time; a log portion comprising a state of the log storage containing records that represent an enumeration of operations performed on the data storage at each respective point in time; and restoring the database to a particular point in time between a first point in time and a second point in time that is adjacent to the first point in time, by performing the following; for a first snapshot corresponding to the first point in time, performing the following; applying the data portion comprising pointers to storage locations for data items existing in the database at the first point in time; and applying the log portion comprising a state of the log storage containing records that represent an enumeration of operations performed on the data storage at the first point in time; and for a second snapshot corresponding to the adjacent second point in time, applying a portion which comprises some but not all of the log portion of the second snapshot, wherein the applied portion comprises only those log records that represent an enumeration of operations performed on stored data up to the particular point in time between the first point in time and the second point in time. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23)
-
Specification