IP Library Granted Patent US 8,818,949
Granted Patent B2
US 8,818,949 · App. 13/341,676 · Granted Aug 26, 2014

Systems and methods for migrating database data

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,818,949
App. No.
13/341,676
Granted
Aug 26, 2014
Kind
B2
Abstract

In one general aspect, a computer-implemented method for migrating data from a source database to a target database includes a computer-implemented method that includes executing, using at least one processor, instructions recorded on a non-transitory computer-readable storage medium. The method includes ensuring that the source database has correct version information, creating an image copy of the data in the source database, and collecting metadata describing the source database. The metadata may include information used to verify that the target database is compatible with the source database, to automatically translate object identifiers, and to avert the migration if no data has changed in the source and the target databases (e.g., table and index spaces) since a previous migration. The method may further include refreshing the data in the target database using the image copy after determining that the source database and the target database are compatible.

Claims (102)

1. A computer-implemented method of migrating data from a source database to a target database including executing, using at least one processor, instructions recorded on a non-transitory computer-readable storage medium, the method comprising:

creating an image copy of data in the source database;

collecting metadata describing structural attributes of the source database;

using the metadata to ensure a structure of the source database and a structure of the target database are compatible; and

refreshing data in the target database using the image copy of the data in the source database when the structure of the source database and the structure of the target database are compatible,

wherein using the metadata to ensure the structure of the source database and the structure of the target database is compatible includes matching a name for a source table from the metadata with a name for a target table in the target database and determining that a value calculated based on columns included in the source table matches a value calculated based on columns included in the target table.

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

determining whether any changes to data occurred in the target database or the source database since a previous migration; and

averting the refreshing when it is determined that no data changes occurred in the target database and no data changes occurred in the source database.

3. The computer-implemented method of claim 2 , wherein determining whether any changes occurred to the source database comprises:

determining a current maximum last change logpoint for the source database;

retrieving a prior maximum last change logpoint for the previous migration; and

determining that no data has changed when the current maximum last change logpoint matches the prior maximum last change logpoint.

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

translating source object identifiers to target object identifiers based on the metadata as part of the refreshing.

5. The computer-implemented method of claim 1 , wherein matching the source table name and the target table name comprises:

matching the source table name from the metadata with the target table name in the target database regardless of whether an owner name of the source table matches an owner name of the target table;

when no target table matches the source table, applying a table matching rule; and

when more than one target table name matches the source table name, using an owner matching rule to match the source table with the target table.

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

determining whether a one-to-one relationship exists between objects in the metadata and objects in the target database as part of using the metadata; and

averting the refreshing when a one-to-one relationship does not exist.

7. The computer-implemented method of claim 1 , wherein calculating the value based on columns included in the source table comprises:

for each column in the source table, translating a number of beginning characters and a number of ending characters into a numeric value and multiplying the numeric value by the column number; and

summing the result of the multiplying for all columns in the source table.

8. The computer-implemented method of claim 1 , further comprising:

ensuring the source database has correct version information for the source database before creating the image copy of the data in the source database.

9. The computer-implemented method of claim 8 , further comprising:

determining whether version information of the target database is compatible with the version information of the source database; and

automatically repairing the version information of the target database when it is determined that the version information of the target database is not compatible with the version information of the source database.

10. The computer-implemented method of claim 8 , wherein ensuring the source database has correct version information comprises:

determining whether an update has been performed after an alter of the source database;

performing an update of a row in the source database when it is determined that an update has not been performed after an alter; and

performing a rollback of the row after the update.

11. The computer-implemented method of claim 1 , wherein the metadata is stored in a file generated by a computer system on which the source database resides.

12. The computer-implemented method of claim 4 , wherein translating source object identifiers to target object identifiers includes, for each source object:

determining a matching target object name for the source object;

retrieving a target object identifier for the matching target object name from a target database catalog; and

replacing source object identifiers with the target object identifiers in the image copy.

13. A computer program product, the computer program product being tangibly embodied on a computer-readable storage device storing instructions that when executed cause a processor to perform a process, the instructions comprising instructions to:

create an image copy of data in a source database;

collect metadata describing structural attributes of the source database;

use the metadata to ensure a structure of the source database and a structure of a target database are compatible, including matching a name for a source table from the metadata with a name for a target table in the target database and determining that a value calculated based on columns included in the source table matches a value calculated based on columns included in the target table; and

refresh data in the target database using the image copy of the data in the source database when the structure of the source database and the structure of the target database are compatible.

14. The computer program product of claim 13 , further comprising instructions to:

determine whether any changes to data occurred in the target database or the source database since a previous migration; and

avert the refreshing when it is determined that no data changes occurred in the target database and no data changes occurred in the source database.

15. The computer program product of claim 13 , further comprising instructions to:

translate source object identifiers to target object identifiers based on the metadata as part of the refreshing.

16. The computer program product of claim 13 , wherein the instructions to match the source table name with the target table name comprise instructions to:

match the source table name from the metadata with the target table name in the target database regardless of whether an owner name of the source table matches an owner name of the target table;

when no target table matches the source table, apply a table matching rule; and

when more than one target table name matches the source table name, use an owner matching rule to match the source table with the target table.

17. The computer program product of claim 13 , further comprising instructions to:

determine whether a one-to-one relationship exists between objects in the metadata and objects in the target database as part of using the metadata; and

avert the refreshing when a one-to-one relationship does not exist.

18. The computer program product of claim 13 , further comprising instructions to:

ensure the source database has correct version information for the source database before creating the image copy of the data in the source database;

determine whether version information of the target database is compatible with the version information of the source database; and

automatically repair the version information of the target database when it is determined that the version information of the target database is not compatible with the version information of the source database.

19. The computer program product of claim 13 , further comprising instructions to:

before creating the image copy of the data in the source database, determine whether an update has been performed after an alter of the source database;

perform an update of a row in the source database when it is determined that an update has not been performed after an alter; and

perform a rollback of the row after the update.

20. The computer program product of claim 13 , wherein the instructions to calculate the value based on columns included in the source table comprises instructions to:

for each column in the source table, translate a number of beginning characters and a number of ending characters into a numeric value and multiplying the numeric value by the column number; and

summing the result of the multiplying for all columns in the source table.

21. The computer program product of claim 15 , wherein the instructions to translate source object identifiers to target object identifiers comprises instructions to, for each source object:

determine a matching target object name for the source object;

retrieve a target object identifier for the matching target object name from a target database catalog; and

replace source object identifiers with the target object identifiers in the image copy.

22. A computer system for migrating data from a source database to a target database comprising:

a source computing system including:

at least a first processor;

a source database; and

memory storing instructions that, when executed by the at least first processor, cause the source computing system to:

create an image copy of data in the source database,

create a file of metadata describing structural attributes of the source database; and

a target computing system including:

at least a second processor,

a target database, and

memory storing instructions that, when executed by the at least second processor, cause the target computing system to:

use the file of metadata to ensure a structure of the source database and a structure of the target database are compatible, including, for each source table object in the metadata file, determining that a value calculated based on columns included in the source table object matches a value calculated based on columns included in a target table object, wherein when the values do not match the structure of the target database is not compatible with the structure of the source database,

refresh data in the target database using the image copy of the data in the source database when the structure of the source database and the structure of the target database are compatible.

23. The computer system of claim 22 , the target computing system including further instructions that, when executed by the at least second processor, cause the target computing system to:

translate source object identifiers to target object identifiers based on the metadata as part of the refreshing.

24. The computer system of claim 22 , the target computing system including further instructions that, when executed by the at least second processor, cause the target computing system to:

determine whether a one-to-one relationship exists between objects in the metadata file and objects in the target database as part of using the file of metadata; and

avert the refreshing when a one-to-one relationship does not exist.

25. The computer system of claim 22 ,

the source computing system including further instructions that, when executed by the at least first processor, cause the source computing system to ensure the source database has correct version information for the source database before creating the image copy of the data in the source database; and

the target computing system including further instructions that, when executed by the at least second processor, cause the target computing system to:

determine whether version information of the target database is compatible with the version information of the source database, and

automatically repair the version information of the target database when it is determined that the version information of the target database is not compatible with the version information of the source database.

26. The computer system of claim 22 , wherein the metadata is stored in a file generated by the source computing system.

27. The computer system of claim 22 , wherein calculating the value based on columns included in the source table object comprises:

for each column in the source table, translating a number of beginning characters and a number of ending characters into a numeric value and multiplying the numeric value by the column number; and

summing the result of the multiplying for all columns in the source table object.

28. The computer system of claim 23 , wherein translating source object identifiers to target object identifiers based on the metadata as part of the refresh comprises, for each source object:

determining a matching target object name for the source object;

retrieving a target object identifier for the matching target object name from a target database catalog; and

replacing source object identifiers with the target object identifiers in the image copy.

Assignments (13)
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY AGREEMENT Recorded Sep 11, 2013
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 031204/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2012
From: CLINE, RICHARD; POTHOFF, WILLIAM J.; PRICE, THOMAS G.
To: BMC SOFTWARE, INC.
Reel/Frame 027973/0434 →