IP Library Granted Patent US 8,433,688
Granted Patent B2
US 8,433,688 · App. 12/975,035 · Granted Apr 30, 2013

Method and apparatus for performing a near-instantaneous restore of a database

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,433,688
App. No.
12/975,035
Granted
Apr 30, 2013
Kind
B2
Abstract

Some embodiments provide methods and apparatuses for performing a near-instantaneous restore of a database. During operation, the system intercepts a database management system restore request to restore a database from a backup file to a data file, wherein the backup file comprises a first number (e.g., N 1 ) of data pages. Next, in response to intercepting the database management system restore request, the system sends information to the database management system indicating that the backup file comprises a second number (e.g., N 2 ) of data pages, wherein the second number of data pages is less than the first number of data pages (e.g., N 2 <N 1 ). Once the database management system has copied the fewer number of data pages from the backup file to the data file, the database management system may indicate that the restore is complete, and continue processing database requests as if the database management system was back online.

Claims (83)

1. A computer-implemented method for performing a near-instantaneous restore of a database, the method comprising:

a filter driver executing on one or more processors intercepting a restore request from a database management system to restore a database from a backup file to a data file, wherein the backup file comprises a first number of data pages;

the filter driver executing on the one or more processors retrieving a backup header from the backup file;

the filter driver executing on the one or more processors modifying the backup header to indicate that the backup file comprises a second number of data pages, wherein the second number of data pages is less than the first number of data pages; and

the filter driver executing on the one or more processors passing the backup header to the database management system so that the database management system indicates that the restore is complete once the database management system has copied the second number of data pages from the backup file to the data file.

2. The computer-implemented method of claim 1 , wherein the method further comprises:

intercepting a database management system read request for a data page in the database;

determining if the data page exists in the data file;

in response to determining that the data page exists in the data file, retrieving the data page from the data file;

in response to determining that the data page does not exist in the data file, retrieving the data page from the backup file; and

returning the data page to the database management system.

3. The computer-implemented method of claim 2 , wherein determining if the data page exists in the data file involves performing a lookup in a data map.

4. The computer-implemented method of claim 3 , wherein upon retrieving the data page from the backup file, the method further comprises:

saving the data page to the data file; and

updating the data map to indicate that the data page exists in the data file.

5. The computer-implemented method of claim 3 , further comprising asynchronously restoring data from the backup file while the database is actively processing transactions, and while maintaining transactional consistency of the database, by:

retrieving a second data page from the backup file that does not exist in the data file;

writing the second data page to the data file, wherein writing the second data page to the data file involves temporarily blocking an area to be written in order to guarantee database integrity because the database may simultaneously try to perform a read from, or a write to, the area; and

updating the data map to indicate that the second data page exists in the data file.

6. The computer-implemented method of claim 3 , further comprising updating the data map to indicate that the second number of data pages exist in the data file.

7. The computer-implemented method of claim 3 , further comprising:

intercepting a write request to write a second data page to the data file;

updating the data map to indicate that the second data page exists in the data file; and

writing the second data page to the data file.

8. The computer-implemented method of claim 3 , further comprising:

determining that all of the data pages from the backup file exist in the data file; and

terminating the interception of calls from the database management system.

9. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for performing a near-instantaneous restore of a database, the method comprising:

intercepting a restore request from a database management system to restore a database from a backup file to a data file, wherein the backup file comprises a first number of data pages;

retrieving a backup header from the backup file;

modifying the backup header to indicate that the backup file comprises a second number of data pages, wherein the second number of data pages is less than the first number of data pages; and

passing the backup header to the database management system so that the database management system indicates that the restore is complete once the database management system has copied the second number of data pages from the backup file to the data file.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the method further comprises:

intercepting a database management system read request for a data page in the database;

determining if the data page exists in the data file;

in response to determining that the data page exists in the data file, retrieving the data page from the data file;

in response to determining that the data page does not exist in the data file, retrieving the data page from the backup file; and

returning the data page to the database management system.

11. The non-transitory computer-readable storage medium of claim 10 , wherein determining if the data page exists in the data file involves performing a lookup in a data map.

12. The non-transitory computer-readable storage medium of claim 11 , wherein upon retrieving the data page from the backup file, the method further comprises:

saving the data page to the data file; and

updating the data map to indicate that the data page exists in the data file.

13. The non-transitory computer-readable storage medium of claim 11 , wherein the method further comprises asynchronously restoring data from the backup file while the database is actively processing transactions, and while maintaining transactional consistency of the database, by:

retrieving a second data page from the backup file that does not exist in the data file;

writing the second data page to the data file, wherein writing the second data page to the data file involves temporarily blocking an area to be written in order to guarantee database integrity because the database may simultaneously try to perform a read from, or a write to, the area; and

updating the data map to indicate that the second data page exists in the data file.

14. The non-transitory computer-readable storage medium of claim 11 , wherein the method further comprises updating the data map to indicate that the second number of data pages exist in the data file.

15. The non-transitory computer-readable storage medium of claim 11 , wherein the method further comprises:

intercepting a write request to write a second data page to the data file;

updating the data map to indicate that the second data page exists in the data file; and

writing the second data page to the data file.

16. The non-transitory computer-readable storage medium of claim 11 , wherein the method further comprises:

determining that all of the data pages from the backup file exist in the data file; and

terminating the interception of calls from the database management system.

17. A system, comprising:

one or more processors; and

a non-transitory storage medium storing instructions that when executed by the one or more processors cause the system to perform a method for performing a near-instantaneous restore of a database, the method comprising:

intercepting a restore request from a database management system to restore a database from a backup file to a data file, wherein the backup file comprises a first number of data pages;

retrieving a backup header from the backup file;

modifying the backup header to indicate that the backup file comprises a second number of data pages, wherein the second number of data pages is less than the first number of data pages; and

passing the backup header to the database management system so that the database management system indicates that the restore is complete once the database management system has copied the second number of data pages from the backup file to the data file.

18. The system of claim 17 , wherein the method further comprises:

intercepting a database management system read request for a data page in the database;

determining if the data page exists in the data file;

in response to determining that the data page exists in the data file, retrieving the data page from the data file;

in response to determining that the data page does not exist in the data file, retrieving the data page from the backup file; and

returning the data page to the database management system.

19. The system of claim 18 , wherein determining if the data page exists in the data file involves performing a lookup in a data map.

20. The system of claim 19 , wherein upon retrieving the data page from the backup file, the method further comprises:

saving the data page to the data file; and

updating the data map to indicate that the data page exists in the data file.

21. The system of claim 19 , wherein the method further comprises asynchronously restoring data from the backup file while the database is actively processing transactions, and while maintaining transactional consistency of the database, by:

retrieving a second data page from the backup file that does not exist in the data file;

writing the second data page to the data file, wherein writing the second data page to the data file involves temporarily blocking an area to be written in order to guarantee database integrity because the database may simultaneously try to perform a read from, or a write to, the area; and

updating the data map to indicate that the second data page exists in the data file.

22. The system of claim 19 , wherein the method further comprises updating the data map to indicate that the second number of data pages exist in the data file.

23. The system of claim 19 , wherein the method further comprises:

intercepting a write request to write a second data page to the data file;

updating the data map to indicate that the second data page exists in the data file; and

writing the second data page to the data file.

24. The system of claim 19 , wherein the method further comprises:

determining that all of the data pages from the backup file exist in the data file; and

terminating the interception of calls from the database management system.

Assignments (10)
NUNC PRO TUNC ASSIGNMENT Recorded Feb 20, 2024
From: IDERA, INC.
To: CORECO IDERA OPS, INC.
Reel/Frame 066496/0733 →
CHANGE OF NAME Recorded Feb 20, 2024
From: CORECO IDERA OPS, INC.
To: IDERA, INC.
Reel/Frame 066626/0867 →
SECOND LIEN SECURITY AGREEMENT Recorded Oct 14, 2015
From: IDERA, INC.; CODEGEAR LLC; EMBARCADERO TECHNOLOGIES, INC.; COPPEREGG CORPORATION; PRECISE SOFTWARE SOLUTIONS, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 036863/0137 →
FIRST LIEN SECURITY AGREEMENT Recorded Oct 13, 2015
From: IDERA, INC.; CODEGEAR LLC; EMBARCADERO TECHNOLOGIES, INC.; COPPEREGG CORPORATION; PRECISE SOFTWARE SOLUTIONS, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 036842/0410 →
RELEASE OF SECURITY INTEREST Recorded Oct 12, 2015
From: FIFTH STREET MANAGEMENT LLC
To: IDERA, INC.; PRECISE SOFTWARE SOLUTIONS, INC.; COPPEREGG CORPORATION
Reel/Frame 036771/0552 →
RELEASE OF SECURITY INTEREST Recorded Oct 7, 2015
From: COMERICA BANK
To: IDERA, INC.; COPPEREGG CORPORATION; PRECISE SOFTWARE SOLUTIONS, INC.
Reel/Frame 036747/0982 →
SECURITY INTEREST Recorded Nov 25, 2014
From: IDERA, INC.; PRECISE SOFTWARE SOLUTIONS, INC.; COPPEREGG CORPORATION
To: FIFTH STREET MANAGEMENT LLC, AS AGENT
Reel/Frame 034260/0360 →
SECURITY INTEREST Recorded Sep 8, 2014
From: IDERA, INC.; PRECISE SOFTWARE SOLUTIONS, INC.; COPPEREGG CORPORATION
To: COMERICA BANK, AS AGENT
Reel/Frame 033696/0004 →
RELEASE OF SECURITY INTEREST Recorded Jul 11, 2013
From: SQUARE 1 BANK
To: IDERA, INC. F/K/A BBS TECHNOLOGIES, INC.
Reel/Frame 030781/0275 →
CHANGE OF NAME Recorded Dec 7, 2012
From: BBS TECHNOLOGIES, INC.
To: IDERA, INC.
Reel/Frame 029429/0262 →