Retrieving Point-In-Time Copies of a Source Database For Creating Virtual Databases
First Claim
1. A method for storing copies of databases in a storage system, the method comprising:
- maintaining a plurality of copies of a source database on a storage system, each copy including a plurality of database blocks, wherein one or more database blocks are associated with at least two copies, the maintaining comprising, iteratively;
receiving, from a backup server maintaining backups of the source database, a full backup of the source database;
restoring the full backup of the source database to obtain a local copy of the source database;
iteratively updating the local copy of the source database using information received from the backup server, comprising;
receiving transaction log backups from the backup server; and
updating the local copy of the source database by restoring the received transaction log backups;
determining whether the local copy of the source database can be successfully updated using the information received from the backup server;
responsive to detecting a failure in updating the local copy using the received information, receiving, from the backup server, another full backup of the source database;
restoring the other full backup of the source database; and
storing a subset of database blocks obtained by restoring the other full backup, the subset of database blocks corresponding to database blocks that do not match corresponding database blocks from the local copy of the source database.
14 Assignments
0 Petitions
Accused Products
Abstract
A storage system maintains copies of a source database to allow virtual databases to be provisioned. Transaction logs received from the source database are applied to database blocks stored in the storage system to update the database blocks. The storage system checks if there are defect in the transaction logs of the source database. If a defect in transaction logs is detected, the storage system obtains a latest copy of the source database. The storage system matches database blocks of the received copy with database blocks already available in the storage system to determine whether a corresponding database block is already available in the storage system. If a received database block is different from database blocks already available at the storage system, the received database block is stored in the storage system. The database blocks may be matched using a hash value of the database blocks.
52 Citations
20 Claims
-
1. A method for storing copies of databases in a storage system, the method comprising:
maintaining a plurality of copies of a source database on a storage system, each copy including a plurality of database blocks, wherein one or more database blocks are associated with at least two copies, the maintaining comprising, iteratively; receiving, from a backup server maintaining backups of the source database, a full backup of the source database; restoring the full backup of the source database to obtain a local copy of the source database; iteratively updating the local copy of the source database using information received from the backup server, comprising; receiving transaction log backups from the backup server; and updating the local copy of the source database by restoring the received transaction log backups; determining whether the local copy of the source database can be successfully updated using the information received from the backup server; responsive to detecting a failure in updating the local copy using the received information, receiving, from the backup server, another full backup of the source database; restoring the other full backup of the source database; and storing a subset of database blocks obtained by restoring the other full backup, the subset of database blocks corresponding to database blocks that do not match corresponding database blocks from the local copy of the source database. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
8. A computer program product having a non-transitory computer-readable storage medium storing computer program modules configured to execute on a computer processor, the computer program modules comprising:
a database storage system configured to maintain a plurality of copies of a source database on a storage system, each copy including a plurality of database blocks, wherein one or more database blocks are associated with at least two copies, the database storage system comprising instructions to; receive, from a backup server maintaining backups of the source database, a full backup of the source database; send a request to restore the full backup of the source database to obtain a local copy of the source database; iteratively update the local copy of the source database using information received from the backup server, by receiving transaction log backups from the backup server and updating the local copy of the source database by restoring the received transaction log backups; determine whether the local copy of the source database can be successfully updated using the information received from the backup server; responsive to detecting a failure in updating the local copy using the received information, receive, from the backup server, another full backup of the source database; send a request to restore the other full backup of the source database; and store a subset of database blocks obtained by restoring the other full backup, the subset of database blocks corresponding to database blocks that do not match corresponding database blocks from the local copy of the source database. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
15. A computer-implemented system for storing copies of databases in a storage system, the system comprising:
-
a computer processor; and a computer-readable storage medium storing computer program modules configured to execute on the computer processor, the computer program modules comprising; a database storage system configured to maintain a plurality of copies of a source database on a storage system, each copy including a plurality of database blocks, wherein one or more database blocks are associated with at least two copies, the database storage system comprising instructions to; receive, from a backup server maintaining backups of the source database, a full backup of the source database; send a request to restore the full backup of the source database to obtain a local copy of the source database; iteratively update the local copy of the source database using information received from the backup server, by receiving transaction log backups from the backup server and updating the local copy of the source database by restoring the received transaction log backups; determine whether the local copy of the source database can be successfully updated using the information received from the backup server; responsive to detecting a failure in updating the local copy using the received information, receive, from the backup server, another full backup of the source database; send a request to restore the other full backup of the source database; and store a subset of database blocks obtained by restoring the other full backup, the subset of database blocks corresponding to database blocks that do not match corresponding database blocks from the local copy of the source database. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification