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;
checking for defect in the transaction logs of the source database;
responsive to identifying no defect in the transaction logs;
receiving transaction logs of the source database, andapplying the received transaction logs to database blocks of the source database stored in the storage system;
responsive to detecting a defect in the transaction logs;
receiving a latest copy of data from the source database comprising a plurality of database blocks, andfor each database block received in the latest copy;
determining if the database block of the latest copy matches a corresponding database block of a previously stored copy of the source database, andresponsive to determining that the database block from the latest copy does not match the corresponding database block of the previously stored copy of the source database, storing the database block of the latest copy on the storage system; and
creating a snapshot on the storage system representing a copy of the source database at a point in time.
16 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.
-
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; checking for defect in the transaction logs of the source database; responsive to identifying no defect in the transaction logs; receiving transaction logs of the source database, and applying the received transaction logs to database blocks of the source database stored in the storage system; responsive to detecting a defect in the transaction logs; receiving a latest copy of data from the source database comprising a plurality of database blocks, and for each database block received in the latest copy; determining if the database block of the latest copy matches a corresponding database block of a previously stored copy of the source database, and responsive to determining that the database block from the latest copy does not match the corresponding database block of the previously stored copy of the source database, storing the database block of the latest copy on the storage system; and creating a snapshot on the storage system representing a copy of the source database at a point in time. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
12. A computer program product having a non-transitory 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; a transaction log manager configured to; check for defect in the transaction logs of the source database; responsive to identifying no defect in the transaction logs; receive transaction logs of the source database, and apply the received transaction logs to database blocks of the source database stored in the storage system; a point-in-time copy manager configured to; responsive to the transaction log manager detecting a defect in the transaction logs, receive a latest copy of data from the source database comprising a plurality of database blocks, and for each database block received in the latest copy; determine if the database block of the latest copy matches a corresponding database block of a previously stored copy of the source database, and responsive to determining that the database block from the latest copy does not match the corresponding database block of the previously stored copy of the source database, store the database block of the latest copy on the storage system; and a snapshot manager configured to create a snapshot on the storage system representing information stored in the source database at a point in time. - View Dependent Claims (13, 14, 15, 16)
-
-
17. 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; a transaction log manager configured to; check for defect in the transaction logs of the source database; responsive to identifying no defect in the transaction logs; receive transaction logs of the source database, and apply the received transaction logs to database blocks of the source database stored in the storage system; a point-in-time copy manager configured to; responsive to the transaction log manager detecting a defect in the transaction logs, receive a latest copy of data from the source database comprising a plurality of database blocks, and for each database block received in the latest copy; determine if the database block of the latest copy matches a corresponding database block of a previously stored copy of the source database, and responsive to determining that the database block from the latest copy does not match the corresponding database block of the previously stored copy of the source database, store the database block of the latest copy on the storage system; and a snapshot manager configured to create a snapshot on the storage system representing information stored in the source database at a point in time. - View Dependent Claims (18, 19, 20)
-
Specification