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, by a storage system, a plurality of copies of a source database on a storage system, each copy including a plurality of database blocks received by the storage system from a production database system, the plurality of database blocks representing the source database at a point in time, wherein one or more database blocks are associated with at least two copies, and wherein the source database is a relational database, the maintaining comprising;
receiving, by the storage system from the production database system, transaction logs of the source database;
determining, by the storage system, that the transaction logs of the source database are defective by;
determining that at least one transaction log is missing responsive to determining that sequence numbers of two consecutive transaction logs of the transaction logs differ by a value greater than one,applying the transaction logs to a copy of the source database, anddetermining that the transactions are corrupted responsive to receiving an indication of failure to process the transaction logs as result of applying the transaction logs to the copy of the source database;
responsive to determining that the transaction logs are defective, receiving, by the storage system from the production database system, a latest copy of data from the source database comprising a plurality of database blocks, and for one or more database blocks received in the latest copy;
determining, by the storage system, that the database block of the latest copy fails to match a corresponding database block of a previously stored copy of the source database, andresponsive to determining that the database block from the latest copy fails to match the corresponding database block of the previously stored copy of the source database, storing, by the storage system, the database block of the latest copy on the storage system; and
creating, by the storage system, a snapshot on the storage system representing the latest copy of the source database.
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
16 Claims
-
1. A method for storing copies of databases in a storage system, the method comprising:
maintaining, by a storage system, a plurality of copies of a source database on a storage system, each copy including a plurality of database blocks received by the storage system from a production database system, the plurality of database blocks representing the source database at a point in time, wherein one or more database blocks are associated with at least two copies, and wherein the source database is a relational database, the maintaining comprising; receiving, by the storage system from the production database system, transaction logs of the source database; determining, by the storage system, that the transaction logs of the source database are defective by; determining that at least one transaction log is missing responsive to determining that sequence numbers of two consecutive transaction logs of the transaction logs differ by a value greater than one, applying the transaction logs to a copy of the source database, and determining that the transactions are corrupted responsive to receiving an indication of failure to process the transaction logs as result of applying the transaction logs to the copy of the source database; responsive to determining that the transaction logs are defective, receiving, by the storage system from the production database system, a latest copy of data from the source database comprising a plurality of database blocks, and for one or more database blocks received in the latest copy; determining, by the storage system, that the database block of the latest copy fails to match 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 fails to match the corresponding database block of the previously stored copy of the source database, storing, by the storage system, the database block of the latest copy on the storage system; and creating, by the storage system, a snapshot on the storage system representing the latest copy of the source database. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A non-transitory computer-readable storage medium storing instructions for:
maintaining, by a storage system, a plurality of copies of a source database on a storage system, each copy including a plurality of database blocks received by the storage system from a production database system, the plurality of database blocks representing the source database at a point in time, wherein one or more database blocks are associated with at least two copies, and wherein the source database is a relational database, the maintaining comprising; receiving, by the storage system from the production database system, transaction logs of the source database; determining, by the storage system, that the transaction logs of the source database are defective by; determining that at least one transaction log is missing responsive to determining that sequence numbers of two consecutive transaction logs of the transaction logs differ by a value greater than one, applying the transaction logs to a copy of the source database, and determining that the transactions are corrupted responsive to receiving an indication of failure to process the transaction logs as result of applying the transaction logs to the copy of the source database; responsive to determining that the transaction logs are defective, receiving, by the storage system from the production database system, a latest copy of data from the source database comprising a plurality of database blocks, and for one or more database blocks received in the latest copy; determining, by the storage system, that the database block of the latest copy fails to match 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 fails to match the corresponding database block of the previously stored copy of the source database, storing, by the storage system, the database block of the latest copy on the storage system; and creating, by the storage system, a snapshot on the storage system representing the latest copy of the source database. - View Dependent Claims (11, 12, 13)
-
14. A computer-implemented system for storing copies of databases in a storage system, the system comprising:
-
a computer processor; and a non-transitory computer-readable storage medium storing instructions for execution by the computer processor, the instructions causing the computer processor to; maintain, by a storage system, a plurality of copies of a source database on a storage system, each copy including a plurality of database blocks received by the storage system from a production database system, the plurality of database blocks representing the source database at a point in time, wherein one or more database blocks are associated with at least two copies, and wherein the source database is a relational database, the maintenance comprising; receive, by the storage system from the production database system, transaction logs of the source database; determine, by the storage system, that the transaction logs of the source database are defective by; determining that at least one transaction log is missing responsive to determining that sequence numbers of two consecutive transaction logs of the transaction logs differ by a value greater than one, applying the transaction logs to a copy of the source database, and determining that the transactions are corrupted responsive to receiving an indication of failure to process the transaction logs as result of applying the transaction logs to the copy of the source database; responsive to the determination that the transaction logs are defective, receive, by the storage system from the production database system, a latest copy of data from the source database comprising a plurality of database blocks, and for one or more database blocks received in the latest copy; determine, by the storage system, that the database block of the latest copy fails to match a corresponding database block of a previously stored copy of the source database, and responsive to the determination that the database block from the latest copy fails to match the corresponding database block of the previously stored copy of the source database, store, by the storage system, the database block of the latest copy on the storage system; and create, by the storage system, a snapshot on the storage system representing the latest copy of the source database. - View Dependent Claims (15, 16)
-
Specification