IP Library Granted Patent US 8,566,361
Granted Patent B2
US 8,566,361 · App. 13/316,263 · Granted Oct 22, 2013

Datacenter workflow automation scenarios using virtual databases

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,566,361
App. No.
13/316,263
Granted
Oct 22, 2013
Kind
B2
Abstract

Information from multiple databases is retrieved and stored on a database storage system. Multiple point-in-time copies are obtained for each database. A point-in-time copy retrieves data changed in the database since the retrieval of a previous point-in-time copy. A virtual database (VDB) is created by creating a set of files in the data storage system. Each file in the set of files created for a VDB is linked to the database blocks on the database storage system associated with a point-in-time copy of the source database. The set of files associated with the VDB are mounted on a database server allowing the database server to read from and write to the set of files. Workflows based on VDBs allow various usage scenarios based on databases to be implemented efficiently, for example, testing and development, backup and recovery, and data warehouse building.

Claims (113)

1. A method for replicating a database, the method comprising:

linking a source database, wherein linking the source database comprises receiving information identifying the source database;

loading the source database at multiple points in time, wherein the loading comprises:

receiving database blocks for different point-in-time copies of the source database, and

storing the database blocks in a first storage system;

replicating the database blocks of the source database from the first storage system to a second storage system; and

provisioning a virtual database (VDB) from the second storage system to a system running a database server, wherein provisioning comprises:

creating a set of files linked to the stored database blocks on the second storage system, and

mounting the set of files to the system allowing the database server running on the system to access the set of files.

2. The method of claim 1 , wherein the replicating of database blocks comprises transmitting the database blocks from the first storage system to the second storage system for storing in the second storage system.

3. The method of claim 1 , wherein the replicating of database blocks comprises transmitting a subset of database blocks comprising database blocks that changed since a point-in-time from the first storage system to the second storage system for storing in the second storage system.

4. The method of claim 1 , further comprising:

using the virtual database from the second storage system as a standby database for use when the source database is unavailable.

5. The method of claim 1 , further comprising:

transmitting database blocks stored in the second storage system to the first storage system; and

storing the database blocks received from the second storage system at the first storage system.

6. The method of claim 1 , further comprising:

receiving request to update database blocks associated with the VDB from the database server running on the system.

7. The method of claim 6 , further comprising:

updating database blocks associated with the VDB based on request received from the database server running on the system

receiving at the first storage system, database blocks stored in the second storage system; and

identifying conflicts by the first storage system, between database blocks received from the second storage system and database blocks that were updated based on request received from the database server.

8. The method of claim 1 , further comprising:

provisioning a second virtual database from the first storage system to a second system running a second database server, wherein provisioning comprises:

creating a second set of files linked to the stored database blocks on the first storage system, and

mounting the set of files to the second system allowing the second database server to access the set of files.

9. A method for creating a data warehouse and a data mart from a database, the method comprising:

linking a first database, wherein the linking comprises receiving information identifying the first database;

loading the first database at multiple points in time, wherein the loading comprises:

receiving database blocks for different point-in-time copies of the first database, and

storing the database blocks in a storage system;

provisioning a first virtual database (VDB) to an operational data store system, wherein provisioning the first VDB comprises:

creating a set of files linked to the stored database blocks associated with the first database on the storage system, and

mounting the set of files to the operational data store system;

performing extract, transform, and load (ETL) operations on the data in the first virtual database and storing the output of the ETL operations in a second database in a data warehouse system; and

receiving database blocks for different point-in-time copies of the second database.

10. The method of claim 9 , further comprising:

storing the database blocks received for different point-in-time copies of the second database in the storage system.

11. The method of claim 9 , further comprising:

provisioning a second VDB to a data mart system, wherein provisioning the second VDB comprises:

creating a set of files linked to the stored database blocks on the storage system, wherein the stored database blocks are associated with the second database, and

mounting the set of files to the data mart system.

12. The method of claim 9 , further comprising:

provisioning a plurality of VDBs to a plurality of data mart systems, wherein provisioning each VDB in the plurality of VDBs comprises:

creating a set of files linked to the stored database blocks on the storage system, wherein the stored database blocks are associated with the second database, and

mounting the set of files to at least one data mart system in the plurality of data mart systems.

13. The method of claim 9 , wherein the storage system is a first storage system, the method comprising:

performing backup of the database blocks associated with the first database to a second storage system, wherein performing backup comprises transmitting database blocks associated with the first database from the first storage system to a second storage system for storage in the second storage system.

14. A method for backup of source databases using a virtual database system, the method comprising:

linking a source database, wherein linking the source database comprises receiving information identifying the source database;

loading a plurality of point-in-time copies of the source database, wherein the loading comprises:

receiving database blocks for the point-in-time copies of the source database, and

storing the database blocks on a first storage system; and

provisioning a virtual database to a system, wherein provisioning the virtual databases to a system comprises:

creating a set of files linked to the stored database blocks on the storage system, and

mounting the set of files to the system to allow a database server running on the system to access the set of files

performing backup of the database blocks stored on the first storage system, wherein performing backup comprises transmitting database blocks associated with the source database from the first storage system to a second storage system.

15. The method of claim 14 , wherein the second storage system is a tape backup system.

16. The method of claim 14 , wherein the source database is a first source database further comprising:

linking a second source database, wherein linking the second source database comprises receiving information identifying the second source database;

loading a plurality of point-in-time copies of the second source database comprising:

receiving database blocks for the point-in-time copies of the second source database, and

storing the database blocks on the first storage system; and

performing backup of the database blocks stored on the first storage system, wherein performing backup comprises transmitting database blocks associated with the second source database from the first storage system to a second storage system.

17. A computer program product having a non-transitory computer-readable storage medium storing computer-executable code for replicating a database, the code comprising instructions to:

link a source database, wherein linking the source database comprises receiving information identifying the source database;

load the source database at multiple points in time, wherein instructions to load comprise instructions to:

receive database blocks for different point-in-time copies of the source database, and

store the database blocks in a first storage system;

replicate the database blocks of the source database from the first storage system to a second storage system; and

provision a virtual database (VDB) from the second storage system to a system running a database server, wherein instructions to provision comprise instructions to:

create a set of files linked to the stored database blocks on the second storage system, and

mount the set of files to the system allowing the database server running on the system to access the set of files.

18. The computer program product of claim 17 , wherein the replicating of database blocks comprises transmitting the database blocks from the first storage system to the second storage system for storing in the second storage system.

19. The computer program product of claim 17 , wherein the code further comprises instructions to:

transmit database blocks stored in the second storage system to the first storage system; and

store the database blocks received from the second storage system at the first storage system.

20. The computer program product of claim 17 , wherein the code further comprises instructions to:

receive request to update database blocks associated with the VDB from the database server running on the system;

update database blocks associated with the VDB based on request received from the database server running on the system

receive at the first storage system, database blocks stored in the second storage system; and

identify conflicts by the first storage system, between database blocks received from the second storage system and database blocks that were updated based on request received from the database server.

21. A computer program product having a non-transitory computer-readable storage medium storing computer-executable code for creating a data warehouse and a data mart from a database, the code comprising instructions to:

link a first database, wherein the linking comprises receiving information identifying the first database;

load the first database at multiple points in time, wherein instructions to load comprise instructions to:

receive database blocks for different point-in-time copies of the first database, and

store the database blocks in a storage system;

provision a first virtual database (VDB) to an operational data store system, wherein instructions to provision the first VDB comprise instructions to:

create a set of files linked to the stored database blocks associated with the first database on the storage system, and

mount the set of files to the operational data store system;

perform extract, transform, and load (ETL) operations on the data in the first virtual database and storing the output of the ETL operations in a second database in a data warehouse system; and

receive database blocks for different point-in-time copies of the second database.

22. The computer program product of claim 21 , the code further comprising instructions to:

provision a plurality of VDBs to a plurality of data mart systems, wherein instructions to provision each VDB in the plurality of VDBs comprises instructions to:

create a set of files linked to the stored database blocks on the storage system, wherein the stored database blocks are associated with the second database, and

mount the set of files to at least one data mart system in the plurality of data mart systems.

23. The computer program product of claim 21 , wherein the storage system is a first storage system, the code further comprising instructions to:

perform backup of the database blocks associated with the first database to a second storage system, wherein performing backup comprises transmitting database blocks associated with the first database from the first storage system to a second storage system for storage in the second storage system.

24. A computer program product having a non-transitory computer-readable storage medium storing computer-executable code for performing backup of source databases using a virtual database system, the code comprising instructions to:

link a source database, wherein linking the source database comprises receiving information identifying the source database;

load a plurality of point-in-time copies of the source database, wherein the loading comprises:

receiving database blocks for the point-in-time copies of the source database, and

storing the database blocks on a first storage system; and

provision a virtual database to a system, wherein instructions to provision the virtual databases to a system comprise instructions to:

create a set of files linked to the stored database blocks on the storage system, and

mount the set of files to the system to allow a database server running on the system to access the set of files

perform backup of the database blocks stored on the first storage system, wherein performing backup comprises transmitting database blocks associated with the source database from the first storage system to a second storage system.

25. The computer program product of claim 24 , wherein the source database is a first source database, wherein the code further comprises instructions to:

link a second source database, wherein linking the second source database comprises receiving information identifying the second source database;

load a plurality of point-in-time copies of the second source database comprising:

receiving database blocks for the point-in-time copies of the second source database, and

storing the database blocks on the first storage system; and

perform backup of the database blocks stored on the first storage system, wherein performing backup comprises transmitting database blocks associated with the second source database from the first storage system to a second storage system.

Assignments (16)
FIRST LIEN PATENT SECURITY AGREEMENT Recorded May 24, 2024
From: DELPHIX CORP.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 067528/0384 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded May 17, 2024
From: DELPHIX CORP.
To: CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 067453/0344 →
RELEASE OF SECURITY INTEREST Recorded Mar 22, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
To: DELPHIX CORP.
Reel/Frame 066869/0540 →
RELEASE OF SECURITY INTEREST Recorded Aug 5, 2022
From: HERCULES CAPITAL, INC., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
To: DELPHIX CORP.
Reel/Frame 060737/0201 →
SECURITY INTEREST Recorded Aug 5, 2022
From: DELPHIX CORP.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 060734/0591 →
RELEASE OF SECURITY INTEREST Recorded Aug 5, 2022
From: SILICON VALLEY BANK
To: DELPHIX CORP.
Reel/Frame 060738/0578 →
SECURITY INTEREST Recorded Jan 10, 2020
From: DELPHIX CORP.
To: HERCULES CAPITAL, INC., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 051482/0043 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 9, 2020
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: DELPHIX CORP.
Reel/Frame 051532/0264 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SCHEDULE TO REMOVE APPLICATION NUMBERS 10025528 AND 10083196, AND REPLACE WITH PATENT NUMBERS 10025528 AND 10083196 PREVIOUSLY RECORDED ON REEL 047169 FRAME 0863. ASSIGNOR(S) HEREBY CONFIRMS THE AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT. Recorded Jan 6, 2020
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 051485/0422 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SCHEDULE TO REMOVE APPLICATION NUMBERS 10025528 AND 10083196, AND REPLACE WITH PATENT NUMBERS 10025528 AND 10083196 PREVIOUSLY RECORDED ON REEL 047016 FRAME 0544. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jan 6, 2020
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 051485/0438 →
AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 9, 2019
From: DELPHIX CORP.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 050673/0234 →
SECURITY INTEREST Recorded Oct 1, 2018
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 047016/0544 →
AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 1, 2018
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 047169/0863 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 1, 2018
From: SILICON VALLEY BANK
To: DELPHIX CORP.
Reel/Frame 047169/0901 →
SECURITY INTEREST Recorded Feb 28, 2017
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 041398/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2013
From: ZHA, CHARLES LI; YUEH, JEDIDIAH; SRIVASTAVA, ALOK KUMAR
To: DELPHIX CORP.
Reel/Frame 031220/0937 →