IP Library Granted Patent US 11,030,058
Granted Patent B2
US 11,030,058 · App. 16/235,212 · Granted Jun 8, 2021

Restoring archived object-level database data

Inventors: Paramasivam Kumarasamy (Morganville, NJ); Brahmaiah Vallabhaneni (Marlboro, NJ); Rahul S. Pawar (Marlboro, NJ); Henry Wallace Dornemann (Eatontown, NJ); Jun H. Ahn (Manalapan, NJ); Amey Vijaykumar Karandikar (Long Branch, NJ); Amit Mitkar (Manalapan, NJ); Muthusamy Senthilnathan (Holmdel, NJ); Satish Chandra Kilaru (Manalapan, NJ)
Assignee: Commvault Systems, Inc.
G06F11/1464G06F3/061G06F3/064G06F3/065G06F3/067G06F3/0619G06F3/0643G06F11/14G06F11/1448G06F11/1451G06F11/1458G06F11/1469G06F11/3034G06F11/3476G06F16/113G06F16/1727G06F16/184G06F16/1827G06F16/214G06F16/2282G06F16/2358G06F16/27G06F16/275G06F2201/80G06F2201/84
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,030,058
App. No.
16/235,212
Granted
Jun 8, 2021
Kind
B2
Abstract

According to certain aspects, a system may include a data agent configured to: process a database file residing on a primary storage device(s) to identify a subset of data in the database file for archiving, the database file generated by a database application; and extract the subset of the data from the database file and store the subset of the data in an archive file on the primary storage device(s) as a plurality of blocks having a common size; and at least one secondary storage controller computer configured to, as part of a secondary copy operation in which the archive file is copied to a secondary storage device(s): copy the plurality of blocks to the secondary storage devices to create a secondary copy of the archive file; and create a table that provides a mapping between the copied plurality of blocks and corresponding locations in the secondary storage device(s).

Claims (78)

1. A system for removing and restoring database data, the system comprising:

one or more computing devices comprising computer hardware configured to:

process a database file residing on one or more first storage devices to identify a subset of data in the database file for archiving, the database file generated by a database application executing on the one or more computing devices;

copy the subset of the data from the database file to a first volume, wherein the first volume is organized as a plurality of volume blocks having a volume block size;

delete the subset of the data from the database file;

create a snapshot of the first volume comprising the copied subset of data; and

divide the snapshot into a plurality of blocks having a common size; and

at least one secondary storage controller computer comprising hardware and residing in a secondary storage subsystem, the at least one secondary storage controller computer configured to:

receive the plurality of blocks over a network connection;

copy the plurality of blocks to one or more secondary storage devices to create a secondary copy of the plurality of blocks;

create a table that provides a mapping between the copied plurality of blocks and corresponding locations in the one or more secondary storage devices;

receive a request from the one or more computing devices to restore a database block from the one or more secondary storage devices in the secondary storage subsystem, wherein the request is initiated by the one or more computing devices in response to intercepting a read operation by the database application to access one or more database blocks that have been removed; and

in response to receiving the request to restore the database block:

access the table to determine location of the database block in the one or more secondary storage devices; and

restore the requested database block from the one or more secondary storage devices to primary storage subsystem.

2. The system of claim 1 , wherein one or more computing devices is further configured to store the subset of data in an archive file on the one or more first storage devices; wherein the archive file is organized as one or more database blocks and wherein a block of the plurality of blocks includes multiple database blocks.

3. The system of claim 2 , wherein the archive file is deleted from the primary storage subsystem subsequent to creation of the secondary copy of the archive file.

4. The system of claim 1 , wherein the table includes a file offset for location of each copied plurality of blocks in the secondary storage subsystem.

5. The system of claim 4 , wherein:

the one or more computing devices is further configured to:

intercept a read operation by the database application to access one or more database blocks;

determine an offset of the one or more database blocks accessed by the read operation;

identify a block that corresponds to the offset; and

send a request to the at least one secondary storage controller computer to restore the identified block from the one or more secondary storage devices in the secondary storage subsystem.

6. The system of claim 5 , further comprising

a database archive server executing on a second computing device that is different from the one or more computing devices on which the database application executes,

the database archive server including a staging memory, and

wherein the at least one secondary storage controller computer is configured to restore the requested database block at least in part by storing the requested database block in the staging memory of the database archive server and forwarding the stored database block in the staging memory to at least one of one or more primary storage devices in the primary storage subsystem associated with the one or more computing devices.

7. The system of claim 6 , wherein the secondary copy of the plurality of blocks is provided as a file system in a user interface of the database archive server and the one or more database blocks in the read operation are accessed through the file system.

8. The system of claim 1 , wherein the processing of the database file is performed pursuant to a storage policy associated with the database file.

9. The system of claim 1 , wherein the one or more computing devices is configured to copy the subset of the data from the database file and store the subset of the data at least in part by instructing the database application to copy the subset of the data and create the secondary copy.

10. A system for archiving and restoring database data, the system comprising:

one or more computing devices comprising computer hardware configured to:

process a database file residing on one or more first storage devices to identify a subset of data in the database file for archiving, the database file generated by a database application executing on a client computing device comprising computer hardware;

copy the subset of the data from the database file and store the subset of data in an archive file on the one or more first storage devices,

wherein the archive file is contained within a first volume that is organized as a plurality of volume blocks having a volume block size,

wherein the archive file is organized as one or more database blocks, wherein a block of the plurality blocks includes multiple database blocks;

delete the subset of the data from the database file;

create a snapshot of the first volume; and

divide the snapshot into a plurality of blocks having a common size; and

at least one secondary storage controller computer comprising hardware and residing in a secondary storage subsystem, the at least one secondary storage controller computer configured to:

receive the plurality of blocks over a network connection;

copy the plurality of blocks to one or more secondary storage devices to create a secondary copy of the plurality of blocks;

create a table that provides a mapping between the copied plurality of blocks and corresponding locations in the one or more secondary storage devices;

receive a request from a data agent to restore an archived database block from the one or more secondary storage devices in the secondary storage subsystem, wherein the request is initiated by the data agent in response to intercepting a read operation by the database application to access one or more database blocks that have been archived;

in response to receiving the request to restore the archived database block:

access the table to determine location of the archived database block in the one or more secondary storage devices; and

restore the requested archived database block from the one or more secondary storage devices to primary storage subsystem.

11. A method of removing and restoring database data, the method comprising:

using one or more computing devices comprising computer hardware:

processing a database file residing on one or more first storage devices to identify a subset of data in the database file for archiving, the database file generated by a database application executing on a client the one or more computing devices;

copying the subset of the data from the database file to a first volume, wherein the first volume is organized as a plurality of volume blocks having a volume block size;

deleting the subset of the data from the database file;

creating a snapshot of the first volume comprising the copied subset of data; and

dividing the snapshot into a plurality of blocks having a common size; and

using a secondary storage controller computer comprising hardware and residing in a secondary storage subsystem, the secondary storage controller computer:

receiving the plurality of blocks over a network connection;

copying the plurality of blocks to one or more secondary storage devices to create a secondary copy of the plurality of blocks;

creating a table that provides a mapping between the copied plurality of blocks and corresponding locations in the one or more secondary storage devices;

receiving a request from the one or more computing devices to restore a database block from the one or more secondary storage devices in the secondary storage subsystem, wherein the request is initiated by the one or more computing devices in response to intercepting a read operation by the database application to access one or more database blocks that have been removed;

in responding to the request to restore the database block:

accessing the table to determine the location of the database block in the one or more secondary storage devices; and

restoring the requested database block from the one or more secondary storage devices to primary storage subsystem.

12. The method of claim 11 , wherein one or more computing devices is further configured to store the subset of data in an archive file on the one or more first storage devices; wherein the archive file is organized as one or more database blocks and wherein a block of the plurality of blocks includes multiple database blocks.

13. The method of claim 12 , wherein the archive file is deleted from the primary storage subsystem subsequent to creation of the secondary copy of the archive file.

14. The method of claim 11 , wherein the table includes a file offset for location of each copied plurality of blocks in the secondary storage subsystem.

15. The method of claim 11 , wherein:

the one or more computing devices is further configured to:

intercept a read operation by the database application to access one or more database blocks;

determine an offset of the one or more database blocks accessed by the read operation;

identify a block that corresponds to the offset; and

send a request to the secondary storage controller computer to restore the identified block from the one or more secondary storage devices.

16. The method of claim 15 , further comprising

a database archive server executing on a second computing device that is different from the one or more computing devices on which the database application executes,

the database archive server including a staging memory, and wherein the at least one secondary storage controller computer is configured to restore the requested block at least in part by storing the requested block in the staging memory of the database archive server and forwarding the stored block in the staging memory to at least one of the one or more primary storage devices in the primary storage subsystem associated with the one or more computing devices.

17. The method of claim 16 , wherein the secondary copy of the plurality of blocks is provided as a file system in user interface of the database archive server and the one or more database blocks in the read operation are accessed through the file system.

18. The method of claim 11 , wherein the processing of the database file is performed pursuant to a storage policy associated with the database file.

19. The method of claim 11 , further comprising copying the subset of the data from the database file and store the subset of the data blocks at least in part by instructing the database application to copy the subset of the data and create the secondary copy.

Assignments (2)
SUPPLEMENTAL CONFIRMATORY GRANT OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Apr 16, 2025
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070864/0344 →
SECURITY INTEREST Recorded Dec 13, 2021
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058496/0836 →