IP Library › Granted Patent US 10,936,545
Granted Patent B1
US 10,936,545 · App. 14/137,850 · Granted Mar 2, 2021

Automatic detection and backup of primary database instance in database cluster

Inventors: Elango Chockalingam (Chennai, IN); Manjesh Venkatanarayana Chikkanayakanahally (Bangalore, IN); Nikhil Ambastha (Bangalore, IN); Krishnendu Bagchi (Pune, IN); Vedavathi Ht (Bangalore, IN)
Assignee: EMC IP HOLDING COMPANY LLC
G06F16/174G06F11/1448G06F16/11G06F16/122G06F16/128G06F16/217G06F16/27G06F16/288
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 10,936,545
App. No.
14/137,850
Filed
Dec 20, 2013
Granted
Mar 2, 2021
Kind
B1
Art Unit
2156
USPC
707/648
Abstract

An improved backup utility allows the ability to maintain full backup and incremental backup log chains, even when databases which are part of a clustered database group are backed up from different database nodes and instances. In these embodiments, this is implemented by storing the backup of the databases from both primary and secondary (failover) nodes under a single backup client which is the cluster identifier. The backup is indexed against a constant database instance based on a user configured save set. In other words, regardless of which node is primary at the time of the backup, the backup is made against a constant backup instance.

Claims (71)

1. A computer-implemented method for creating data backups, comprising:

receiving, at a first cluster node running a first database instance of a first database group, a first backup command, the first database group being associated with the first database instance running on the first cluster node and a second database instance running on a second cluster node, wherein the first backup command specifies a cluster backup server for use in storing data backups from the first database group, wherein the data backups are to be stored in a save set on the cluster backup server, the save set being associated with the first database group and identified by a particular label specified in the first backup command;

determining that the first database instance on the first cluster node is acting as an active database instance for the first database group;

performing a backup operation on the first database instance to generate a first data backup for the first database group, in response to determining that the first database instance is acting as the active database instance for the first database group, wherein the first data backup is to be stored in a constant database instance of the save set on the cluster backup server;

receiving, at the first cluster node of the first database group, a second backup command to create a second data backup for the first database group, the second backup command specifying the save set on the cluster backup server to store the second data backup for the first database group;

detecting that the first database instance on the first cluster node has -stopped acting as the active database instance for the first database group and that the second database instance on the second cluster node is no longer acting as a failover database instance but is acting as the active database instance for the first database group, wherein the first database group includes a single active database instance and one or more failover database instances;

generating, by the first cluster node, a third backup command that includes the particular label specified by the second backup command; and

transmitting, by the first cluster node, the generated third backup command to the second cluster node to request the second cluster node to back up the second database instance to the cluster backup server without having to back up the first database instance; wherein

in response to receiving the generated third backup command by the second cluster node, backing up, by the second cluster node, the second database instance running thereon, to the same constant database instance associated with the save set on the cluster backup server previously backed up from the first database instance.

2. The computer-implemented method of claim 1 , wherein the first backup command comprises at least a cluster identifier, a backup instance identifier, an identifier of the first database group, and a backup type.

3. The computer-implemented method of claim 2 , wherein the first data backup on the cluster backup server is associated with the identifier for the first database group and the backup instance identifier for all backups made for the first database group; and wherein a backup operation of a plurality of recovery logs is performed for the first database group.

4. The computer-implemented method of claim 2 , further comprising:

receiving a fourth backup command at the first cluster node from a third cluster node, wherein the third backup command indicates that the first database instance on the first cluster node is currently acting as an active database instance for a different database group;

in response to the fourth backup command, performing a backup operation on the different database group from the first cluster node to the cluster backup server.

5. The computer-implemented method of claim 4 , wherein performing the backup operation further comprises:

associating a data backup on the cluster backup server created by the backup operation on the different database group with the identifier for the different database group and a backup instance identifier provided in the generated second backup command; and

performing a backup operation of a plurality of recovery logs for the different database group.

6. The computer-implemented method of claim 2 , wherein the backup type is a full, incremental, or differential backup type.

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

receiving a restore command from a user at the first cluster node for the first database group;

detecting a correct backup set for the first database group in the cluster backup server based on identifying information provided in the restore command;

restoring the first database group on to the first cluster node using a plurality of backup files and recovery log files located in a correct backup set; and

restoring the first database group on to a plurality of other clusters to which the first database group is designated to reside in.

8. A non-transitory computer-readable medium having computer instructions stored therein, wherein the computer instructions are provided for creating data backups, wherein the computer instructions, when executed by a processor, cause the processor to perform operations comprising:

receiving, at a first cluster node running a first database instance of a first database group, a first backup command, the first database group being associated with the first database instance running on the first cluster node and a second database instance running on a second cluster node, wherein the first backup command specifies a cluster backup server for use in storing data backups from the first database group, wherein the data backups are to be stored in a save set on the cluster backup server, the save set is associated with the first database group and the save set is identified by a particular label specified in the first backup command;

determining that the first database instance on the first cluster node is acting as an active database instance for the first database group;

performing a backup operation on the first database instance to generate a first data backup for the first database group, in response to determining that the first database instance is acting as the active database instance for the first database group, wherein the first data backup is to be stored in a constant database instance of the save set on the cluster backup server;

receiving, at the first cluster node of the first database group, a second backup command to create a second data backup for the first database group, the second backup command specifying the save set on the cluster backup server to store the second data backup for the first database group;

detecting that the first database instance on the first cluster node has stopped acting as the active database instance for the first database group and that the second database instance on the second cluster node is no longer acting as a failover database instance but is acting as the active database instance for the first database group, wherein the first database group includes a single active database instance and one or more failover database instances;

generating, by the first cluster node, a third backup command that includes the particular label specified by the second backup command; and

transmitting, by the first cluster node, the generated third backup command to the second cluster node to request the second cluster node to back up the second database instance to the cluster backup server without having to back up the first database instance; wherein

in response to receiving the generated third backup command by the second cluster node, backing up, by the second cluster node, the second database instance running thereon, to the same constant database instance associated with the save set on the cluster backup server previously backed up from the first database instance.

9. The non-transitory computer-readable medium of claim 8 , wherein the first backup command comprises at least a cluster identifier, a backup instance identifier, an identifier of the first database group, and a backup type.

10. The non-transitory computer-readable medium of claim 9 , wherein the first data backup on the cluster backup server is associated with the identifier for the first database group and the backup instance identifier for all backups made for the first database group; and wherein a backup operation of a plurality of recovery logs is performed for the first database group.

11. The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise:

receiving a fourth backup command at the first cluster node from a third cluster node, wherein the third backup command indicates that the first database instance on the first cluster node is currently acting as an active database instance for a different database group;

in response to the fourth backup command, performing a backup operation on the different database group from the first cluster node to the cluster backup server.

12. The non-transitory computer-readable medium of claim 11 , wherein performing the backup operation further comprises:

associating a data backup on the cluster backup server created by the backup operation on the different database group with the identifier for the different database group and a backup instance identifier provided in the generated second backup command; and

performing a backup operation of a plurality of recovery logs for the different database group.

13. The non-transitory computer-readable medium of claim 9 , wherein the backup type is a full, incremental, or differential backup type.

14. The non-transitory computer-readable medium of claim 13 , wherein the operations further comprise:

receiving a restore command from a user at the first cluster node for the first database group;

detecting a correct backup set for the first database group in the cluster backup server based on identifying information provided in the restore command;

restoring the first database group on to the first cluster node using a plurality of backup files and recovery log files located in a correct backup set; and

restoring the first database group on to a plurality of other clusters to which the first database group is designated to reside in.

15. A data processing system, comprising:

a processor; and

a memory coupled to the processor for storing instructions, wherein the instructions are provided for creating data backups, wherein the instructions, when executed by a processor, cause the processor to perform operations comprising:

receiving, at a first cluster node running a first database instance of a first database group, a first backup command, the first database group being associated with the first database instance running on the first cluster node and a second database instance running on a second cluster node, wherein the first backup command specifies a cluster backup server for use in storing data backups from the first database group, wherein the data backups are to be stored in a save set on the cluster backup server, the save set being associated with the first database group and identified by a particular label specified in the first backup command;

determining that the first database instance on the first cluster node is acting as an active database instance for the first database group;

performing a backup operation on the first database instance to generate a first data backup for the first database group, in response to determining that the first database instance is acting as the active database instance for the first database group, wherein the first data backup is to be stored in the save set on the cluster backup server;

receiving, at the first cluster node of the first database group, a second backup command to create a second data backup for the first database group, the second backup command specifying the save set on the cluster backup server to store the second data backup for the first database group;

detecting that the first database instance on the first cluster node has stopped acting as the active database instance for the first database group and that the second database instance on the second cluster node is no longer acting as a failover database instance but is acting as the active database instance for the first database group, wherein the first database group includes a single active database instance and one or more failover database instances;

generating, by the first cluster node, a third backup command that includes the particular label specified by the second backup command; and

transmitting, by the first cluster node, the generated third backup command to the second cluster node to request the second cluster node to back up the second database instance to the cluster backup server without having to back up the first database instance; wherein

in response to receiving the generated third backup command by the second cluster node, backing up, by the second cluster node, the second database instance running thereon, to the same constant database instance associated with the save set on the cluster backup server previously backed up from the first database instance.

16. The data processing system of claim 15 , wherein the first backup command comprises at least a cluster identifier, a backup instance identifier, an identifier of the first database group, and a backup type.

17. The data processing system of claim 16 , wherein the first data backup on the cluster backup server is associated with the identifier for the first database group and the backup instance identifier for all backups made for the first database group; and wherein a backup operation of a plurality of recovery logs is performed for the first database group.

18. The data processing system of claim 16 , wherein the processor is further caused to:

receiving a fourth backup command at the first cluster node from a third cluster node, wherein the third backup command indicates that the first database instance on the first cluster node is currently acting as an active database instance for a different database group;

in response to the fourth backup command, performing a backup operation on the different database group from the first cluster node to the cluster backup server.

19. The data processing system of claim 18 , wherein to perform the backup operation is further operative to:

associate a data backup on the cluster backup server created by the backup operation on the different database group with the identifier for the different database group and a backup instance identifier provided in the generated second backup command; and

perform a backup operation of a plurality of recovery logs for the different database group.

20. The data processing system of claim 16 , wherein the backup type is a full, incremental, or differential backup type.

21. The data processing system of claim 20 , wherein the operations further comprise:

receiving a restore command from a user at the first cluster node for the first database group;

detecting a correct backup set for the first database group in the cluster backup server based on identifying information provided in the restore command;

restoring the first database group on to the first cluster node using a plurality of backup files and recovery log files located in a correct backup set; and

restoring the first database group on to a plurality of other clusters to which the first database group is designated to reside in.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2014
From: CHOCKALINGAM, ELANGO; CHIKKANAYAKANAHALLY, MANJESH VENKATANARAYANA; AMBASTHA, NIKHIL; BAGCHI, KRISHNENDU; HT, VEDAVATHI
To: EMC CORPORATION
Reel/Frame 032420/0080 →
Cited By (10)
US 12,197,396 US 12,353,290 US 12,353,352 US 12,399,908 US 12,511,200 US 12,566,676 US 12,627,733 US 12,699,633 US 12,711,015 US 12,730,727