IP Library › Granted Patent US 8,635,187
Granted Patent B2
US 8,635,187 · App. 12/986,666 · Granted Jan 21, 2014

Method and system of performing incremental SQL server database backups

Inventors: Louis J. Beatty (Ormond Beach, FL); Michael A. Payne (Archer, FL); Steven R. Devos (Kirkland, WA); Deepak Saraf (Windermere, FL)
Assignee: Symantec Corporation
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,635,187
App. No.
12/986,666
Filed
Jan 7, 2011
Granted
Jan 21, 2014
Kind
B2
Art Unit
2169
USPC
707/646
Abstract

A system, method, and medium for performing incremental backups of a Microsoft SQL server database. A snapshot of the database is created, and then a map identifying the changed extents is retrieved from the snapshot. The changed extents are then retrieved from the snapshot and stored in a backup storage device. For a restore operation, a full database backup file is written to a storage device and then the changed extents from a stored incremental backup file may be merged with the full backup file. Next, the database server is notified of the reconstructed file and then the reconstructed file is mounted by the database server as a live instance of the database.

Claims (71)

1. A method for performing an incremental backup of a database, the method comprising:

initiating the incremental backup by conveying a request to a database server to perform a full backup of the database;

in response to said request to perform the full backup:

retrieving one or more maps associated with the database, said one or more maps including an identification of data which has changed since a prior backup, wherein the one or more maps include a differential change map (DCM) comprising a bitmap which indicates all data that has changed since the prior backup;

resetting the DCM associated with the database as if a full backup were performed in response to said request such that the DCM indicates no changes have occurred since a most recent full backup;

retrieving the changed data;

storing the changed data as an incremental backup file in a storage device; and

storing said one or more maps in association with the incremental backup file;

wherein a schema of the database is automatically generated by querying the database when the prior backup is performed.

2. The method as recited in claim 1 , further comprising taking a snapshot of the database, in response to the request to perform the full backup.

3. The method as recited in claim 1 , wherein the one or more maps include a global allocation map (GAM) comprising information about data extents that have been allocated, a shared global allocation map (SGAM) comprising information about mixed extents that have at least one unused page, and/or an index allocation map (IAM) comprising information about extents that a table or index uses, and wherein prior to retrieving the changed data, the method further comprising:

reading the one or more maps to determine if the changed extents are allocated; and

retrieving the changed extents only if they are allocated.

4. The method as recited in claim 1 , further comprising:

detecting a request corresponding to said incremental backup file to perform a restore operation;

identifying a full database backup file associated with the incremental backup file;

creating a restored database by performing a restore operation using the incremental backup file and the full database backup file associated with the incremental backup file; and

notifying a database server of the restored database.

5. The method as recited in claim 1 , further comprising:

identifying a previously stored full backup;

retrieving a map associated with the previously stored full backup;

utilizing said map to identify particular data which has changed since a backup performed prior to the previously stored full backup;

storing the particular data as part of a compressed version of the previously stored full backup; and

discarding data of the previously stored full backup which has not changed since the backup performed prior to the previously stored full backup.

6. A computer readable storage medium comprising program instructions to perform an incremental backup of a database, wherein when executed the program instructions are configured to:

initiate the incremental backup by conveying a request to perform a full backup of the database;

in response to said request to perform the full backup:

retrieve one or more maps associated with the database, said one or more maps including an identification of data which has changed since a prior backup, wherein the one or more maps include a differential change map (DCM) comprising a bitmap which indicates all data that has changed since the prior backup;

reset the DCM associated with the database as if a full backup were performed in response to said request such that the DCM indicates no changes have occurred since a most recent full backup;

retrieve the changed data;

store the changed data as an incremental backup file in a storage device; and

store said one or more maps in association with the incremental backup file;

wherein a schema of the database is automatically generated by querying the database when the prior backup is performed.

7. The computer readable storage medium as recited in claim 6 , wherein the program instructions are further configured to take a snapshot of the database, in response to the request to perform the full backup.

8. The computer readable storage medium as recited in claim 6 , wherein the one or more maps include a global allocation map (GAM) comprising information about data extents that have been allocated, a shared global allocation map (SGAM) comprising information about mixed extents that have at least one unused page, and/or an index allocation map (IAM) comprising information about extents that a table or index uses, and wherein prior to retrieving the changed data, the instructions are configured to:

read the one or more maps to determine if the changed extents are allocated; and

retrieve the changed extents only if they are allocated.

9. The computer readable storage medium as recited in claim 6 , wherein the program instructions are further configured to:

detect a request corresponding to said incremental backup file to perform a restore operation;

identify a full database backup file associated with the incremental backup file;

create a restored database by performing a restore operation using the incremental backup file and the full database backup file associated with the incremental backup file; and

notify a database server of the restored database.

10. The computer readable storage medium as recited in claim 9 , wherein the program instructions are further configured to:

identify a previously stored full backup;

retrieve a map associated with the previously stored full backup;

utilize said map to identify particular data which has changed since a backup performed prior to the previously stored full backup;

store the particular data as part of a compressed version of the previously stored full backup; and

discard data of the previously stored full backup which has not changed since the backup performed prior to the previously stored full backup.

11. A system for performing an incremental backup of a database, the system comprising:

a database server;

a media server;

a database; and

one or more storage devices;

wherein in response to a request to perform a full backup, the database server is configured to:

initiate the incremental backup using a request to initiate a full backup; and

wherein the media server is configured to:

retrieve one or more maps associated with the database, said one or more maps including an identification of data which has changed since a prior backup, wherein the one or more maps include a differential change map (DCM) comprising a bitmap which indicates all data that has changed since the prior backup;

reset the DCM associated with the database as if a full backup were performed in response to said request such that the DCM indicates no changes have occurred since a most recent full backup;

retrieve the changed data;

store the changed data as an incremental backup file in a storage device; and

store said one or more maps in association with the incremental backup file;

wherein a schema of the database is automatically generated by querying the database when the prior backup is performed.

12. The system as recited in claim 11 , wherein the system is configured to take a snapshot of the database, in response to the request to perform the full backup.

13. The system as recited in claim 11 , wherein the one or more maps include a global allocation map (GAM) comprising information about data extents that have been allocated, a shared global allocation map (SGAM) comprising information about mixed extents that have at least one unused page, and/or an index allocation map (IAM) comprising information about extents that a table or index uses, and wherein prior to retrieving the changed data, the system is configured to:

read the one or more maps to determine if the changed extents are allocated; and

retrieve the changed extents only if they are allocated.

14. The system as recited in claim 11 , wherein the media server is further configured to:

detect a request corresponding to said incremental backup file to perform a restore operation;

identify a full database backup file associated with the incremental backup file;

create a restored database by performing a restore operation using the incremental backup file and the full database backup file associated with the incremental backup file; and

notify a database server of the restored database.

Assignments (13)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2011
From: BEATTY, LOUIS J.; PAYNE, MICHAEL A.; DEVOS, STEVEN R.; SARAF, DEEPAK
To: SYMANTEC CORPORATION
Reel/Frame 025611/0441 →
Continuity (1)
Related Publication 20120179655A1 · Jul 12, 2012