Backup and restoration of data in an electronic database
AssigneeMicrosoft Corporation
InventorsJeffrey A. East, Steven R. Schmidt, Gregory A. Smith
Life of this patent
Estimating the term…
Abstract
To avoid possible data corruption resulting from restoring data to a database from a backup set that is not valid for the database, attempted restore operations are intercepted before they are performed. The backup set is examined to determine whether it was created from the same recovery fork on which the database resides or an descendant of that recovery fork. The backup set is only allowed to be applied to the database if the backup set was created from one of these recovery forks. If not, the backup set is not allowed to be applied to the database.
Claims20
A computer-implemented method for restoring information to an electronic database from a sequence of at least one backup set, the method comprising:
- maintaining a history of one or more backup operations performed on the electronic database, the history associated with a recovery fork;
- intercepting an attempted restore operation that uses the backup set;
- determining whether the backup set is associated with the recovery fork or a descendant of the recovery fork;
- permitting the backup set to be applied to the electronic database only if the backup set is associated with the recovery fork or a descendant of the recovery fork;
- and
- maintaining a history both on the electronic database and the backup set, wherein each history comprises a push-down stack of a plurality of recovery fork names.
A computer-implemented method for restoring information to an electronic database from a backup set, the method comprising:
- maintaining in the electronic database and in the backup set a history of one or more backup operations performed on the electronic database, the electronic database associated with a recovery fork, each history comprising a push-down stack of two recovery fork names each having a globally unique identifier (GUID) and a log sequence number (LSN);
- intercepting an attempted restore operation that uses the backup set;
- determining whether a recovery fork name associated with the backup set has a GUID that matches a GUID of a recovery fork name associated with the electronic database;
- in response to identifying a first recovery fork name associated with the backup set and a second recovery fork name associated with the electronic database that have matching GUIDs, comparing the LSN of the first recovery fork name with the LSN of the second recovery fork name;
- rejecting the attempted restore operation if the LSN of the second recovery fork name is greater than the LSN of the first recovery fork name;
- and
- permitting the attempted restore operation if a recovery fork name associated with the backup set has a GUID that matches a GUID of a recovery fork name associated with the electronic database and the LSN of the second recovery fork name is no greater than the LSN of the first recovery fork name.
A computer-implemented method for creating a backup set based on information from an electronic database, the method comprising:
- maintaining a history of one or more backup operations performed on the electronic database, wherein said history comprises a push-down stack of a plurality of recovery fork names;
- copying the history to the backup set;
- if the backup set is to be the result of a database backup operation, updating the history to reflect a binding identifier of the backup set;
- if the backup set is to be the result of a backup operation other than a file backup operation, updating the history;
- and
- performing a backup operation.
A computer-readable medium having computer-executable modules comprising:
- a maintenance module configured to maintain a history of one or more backup operations performed on the electronic database, the electronic database associated with a recovery fork, wherein said history comprises a push-down stack of a plurality of recovery fork names;
- an interceptor module configured to intercept an attempted restore operation that uses the backup set;
- and
- a control module configured to determine whether the backup set is associated with the recovery fork or an descendant of the recovery fork, and to permit the backup set to be applied to the electronic database only if the backup set is associated with the recovery fork or an descendant of the recovery fork.
A computer-readable medium having computer-executable modules comprising:
- a maintenance module configured to maintain in the electronic database and in the backup set a history of one or more backup operations performed on the electronic database, the electronic database associated with a recovery fork, each history comprising a push-down stack of two recovery fork names each having a globally unique identifier (GUID) and a log sequence number (LSN);
- an interceptor module configured to intercept an attempted restore operation that uses the backup set;
- and
- a control module configured to
- determine whether a recovery fork name associated with the backup set has a GUID that matches a GUID of a recovery fork name associated with the electronic database;
- permit the backup set to be applied to the electronic database if the GUID of a topmost entry of the push-down stack associated with the backup set matches the GUID of a recovery fork name associated with the electronic database;
- in response to identifying a first recovery fork name, other than the topmost entry of the push-down stack associated with the backup set, associated with the backup set and a second recovery fork name associated with the electronic database that have matching GUIDs, compare the LSN of the first recovery fork name with the LSN of the second recovery fork name;
- reject the attempted restore operation if the LSN of the second recovery fork name is greater than the LSN of the first recovery fork name;
- and
- permit the backup set to be applied to the electronic database if a recovery fork name associated with the backup set has a GUID that matches a GUID of a recovery fork name associated with the electronic database and the LSN of the second recovery fork name is no greater than the LSN of the first recovery fork name.
A computer-readable medium having computer-executable modules comprising:
- a maintenance module configured to
- maintain a history of one or more backup operations performed on the electronic database, wherein said history comprises a push-down stack of a plurality of recovery fork names;
- copy the history to the backup set,
- if the backup set is to be the result of a database backup operation, updating the history to reflect a binding identifier of the backup set, and
- if the backup set is to be the result of a backup operation other than a file backup operation, update the history;
- and
- a backup module configured to perform a backup operation.
Dependencies are inferred from the claim text.