IP Library Granted Patent US 11,599,428
Granted Patent B2
US 11,599,428 · App. 17/153,756 · Granted Mar 7, 2023

Protecting databases in a distributed availability group

Inventors: Roland Anthony Fernandes (Grimsby, CA); Bharat Bhushan (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F11/1469G06F11/1451G06F11/1461G06F11/1464G06F16/284G06F2201/80
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 11,599,428
App. No.
17/153,756
Granted
Mar 7, 2023
Kind
B2
Abstract

A determination is made that a relational database management system (RDBMS) is configured as a distributed availability group. The distributed availability group spans first and second availability groups. Each availability group includes a cluster of servers hosting replicas of a database. One of the first or second availability groups functions as a primary availability group. Another of the first or second availability groups functions as a secondary availability group that is available as a failover target should the primary availability group become unavailable. A name of the distributed availability group is obtained. A first server in the first availability group is directed to backup a replica of the database being hosted by the first server. The directing includes instructing the first server to index the backup against the name of the distributed availability group.

Claims (51)

1. A method comprising:

determining that a relational database management system (RDBMS) is configured as a distributed availability group, the distributed availability group spanning first and second availability groups, each availability group comprising a cluster of servers, each server of the cluster of servers hosting a replica of a database, one of the first or second availability groups functions as a primary availability group, and another of the first or second availability groups functions as a secondary availability group that is available as a failover target should the primary availability group become unavailable;

obtaining a name of the distributed availability group; and

directing, for an initial backup of the database, a first server in the first availability group to backup a replica of the database being hosted by the first server, the directing for the initial backup comprising instructing the first server to index the initial backup against the name of the distributed availability group, the name of the distributed availability group being different from a name of the first server.

2. The method of claim 1 further comprising:

directing, for a subsequent backup of the database, a second server in the second availability group to backup a replica of the database being hosted by the second server, the directing for the subsequent backup comprising instructing the second server to index the subsequent backup against the name of the distributed availability group, the name of the distributed availability group being different from a name of the second server, wherein during the subsequent backup the second availability group is functioning as the primary availability group, and

wherein the initial backup of the database replica hosted by the first server comprises a full backup, and the subsequent backup of the database replica hosted by the second server comprises a differential backup.

3. The method of claim 2 further comprising:

linking the initial and subsequent backups of the database using the name of the distributed availability group.

4. The method of claim 1 further comprising:

obtaining backup preferences for the distributed availability group, the backup preferences indicating whether backups should be performed using a server that functions as a primary server in the primary availability group or a server that functions as a secondary server in the primary availability group.

5. The method of claim 1 wherein after the initial backup of the database is completed, the database is failed over from the first availability group to the second availability group, the second availability group thereby now functioning as the primary availability group, and the method further comprises:

directing, for a subsequent backup of the database, a second server in the second availability group to backup a replica of the database being hosted by the second server, the directing for the subsequent backup comprising instructing the second server to index the subsequent backup against the name of the distributed availability group.

6. The method of claim 1 wherein the primary availability group comprises a primary server and a first set of one or more secondary servers, and the secondary availability group comprises a forwarder server and a second set of one or more secondary servers,

wherein a replica of the database hosted by the primary server accepts write operations from clients of the RDBMS, and replicas of the database hosted by the first set of the one or more secondary servers accept read-only operations from the clients,

wherein the write operations are transmitted from the primary server of the primary availability group to the forwarder server of the secondary availability group, and

wherein the forwarder server forwards the write operations to the second set of the one or more secondary servers of the secondary availability group.

7. A system comprising: a processor; and memory configured to store one or more sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of:

determining that a relational database management system (RDBMS) is configured as a distributed availability group, the distributed availability group spanning first and second availability groups, each availability group comprising a cluster of servers, each server of the cluster of servers hosting a replica of a database, one of the first or second availability groups functions as a primary availability group, and another of the first or second availability groups functions as a secondary availability group that is available as a failover target should the primary availability group become unavailable;

obtaining a name of the distributed availability group; and

directing, for an initial backup of the database, a first server in the first availability group to backup a replica of the database being hosted by the first server, the directing for the initial backup comprising instructing the first server to index the initial backup against the name of the distributed availability group, the name of the distributed availability group being different from a name of the first server.

8. The system of claim 7 wherein the processor further carries out the steps of:

directing, for a subsequent backup of the database, a second server in the second availability group to backup a replica of the database being hosted by the second server, the directing for the subsequent backup comprising instructing the second server to index the subsequent backup against the name of the distributed availability group, the name of the distributed availability group being different from a name of the second server, wherein during the subsequent backup the second availability group is functioning as the primary availability group, and

wherein the initial backup of the database replica hosted by the first server comprises a full backup, and the subsequent backup of the database replica hosted by the second server comprises a differential backup.

9. The system of claim 8 wherein the processor further carries out the steps of:

linking the initial and subsequent backups of the database using the name of the distributed availability group.

10. The system of claim 7 wherein the processor further carries out the steps of:

obtaining backup preferences for the distributed availability group, the backup preferences indicating whether backups should be performed using a server that functions as a primary server in the primary availability group or a server that functions as a secondary server in the primary availability group.

11. The system of claim 7 wherein after the initial backup of the database is completed, the database is failed over from the first availability group to the second availability group, the second availability group thereby now functioning as the primary availability group, and the processor further carries out the steps of:

directing, for a subsequent backup of the database, a second server in the second availability group to backup a replica of the database being hosted by the second server, the directing for the subsequent backup comprising instructing the second server to index the subsequent backup against the name of the distributed availability group.

12. The system of claim 7 wherein the primary availability group comprises a primary server and a first set of one or more secondary servers, and the secondary availability group comprises a forwarder server and a second set of one or more secondary servers,

wherein a replica of the database hosted by the primary server accepts write operations from clients of the RDBMS, and replicas of the database hosted by the first set of the one or more secondary servers accept read-only operations from the clients,

wherein the write operations are transmitted from the primary server of the primary availability group to the forwarder server of the secondary availability group, and

wherein the forwarder server forwards the write operations to the second set of the one or more secondary servers of the secondary availability group.

13. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a method comprising:

determining that a relational database management system (RDBMS) is configured as a distributed availability group, the distributed availability group spanning first and second availability groups, each availability group comprising a cluster of servers, each server of the cluster of servers hosting a replica of a database, one of the first or second availability groups functions as a primary availability group, and another of the first or second availability groups functions as a secondary availability group that is available as a failover target should the primary availability group become unavailable;

obtaining a name of the distributed availability group; and

directing, for an initial backup of the database, a first server in the first availability group to backup a replica of the database being hosted by the first server, the directing for the initial backup comprising instructing the first server to index the initial backup against the name of the distributed availability group, the name of the distributed availability group being different from a name of the first server.

14. The computer program product of claim 13 wherein the method further comprises:

directing, for a subsequent backup of the database, a second server in the second availability group to backup a replica of the database being hosted by the second server, the directing for the subsequent backup comprising instructing the second server to index the subsequent backup against the name of the distributed availability group, the name of the distributed availability group being different from a name of the second server, wherein during the subsequent backup the second availability group is functioning as the primary availability group, and

wherein the initial backup of the database replica hosted by the first server comprises a full backup, and the subsequent backup of the database replica hosted by the second server comprises a differential backup.

15. The computer program product of claim 14 wherein the method further comprises:

linking the initial and subsequent backups of the database using the name of the distributed availability group.

16. The computer program product of claim 13 wherein the method further comprises:

obtaining backup preferences for the distributed availability group, the backup preferences indicating whether backups should be performed using a server that functions as a primary server in the primary availability group or a server that functions as a secondary server in the primary availability group.

17. The computer program product of claim 13 wherein after the initial backup of the database is completed, the database is failed over from the first availability group to the second availability group, the second availability group thereby now functioning as the primary availability group, and the method further comprises:

directing, for a subsequent backup of the database, a second server in the second availability group to backup a replica of the database being hosted by the second server, the directing for the subsequent backup comprising instructing the second server to index the subsequent backup against the name of the distributed availability group.

18. The computer program product of claim 13 wherein the primary availability group comprises a primary server and a first set of one or more secondary servers, and the secondary availability group comprises a forwarder server and a second set of one or more secondary servers,

wherein a replica of the database hosted by the primary server accepts write operations from clients of the RDBMS, and replicas of the database hosted by the first set of the one or more secondary servers accept read-only operations from the clients,

wherein the write operations are transmitted from the primary server of the primary availability group to the forwarder server of the secondary availability group, and

wherein the forwarder server forwards the write operations to the second set of the one or more secondary servers of the secondary availability group.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2021
From: FERNANDES, ROLAND ANTHONY; BHUSHAN, BHARAT
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055002/0633 →