Consultor Eletrônico



Kbase P64206: How to convert a foreign database to Progress?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   3/5/2009
Status: Verified

GOAL:

How to convert a foreign database to Progress?

GOAL:

How to convert an Oracle Database to Progress?

GOAL:

How to convert a SQL Server Database to Progress?

GOAL:

How to migrate an Oracle database to a Progress database?

GOAL:

How to migrate a SQL Server database to a Progress database?

GOAL:

What are the options for converting a foreign database to Progress?

GOAL:

Is there an automated process / utility to migrate a foreign db to Progress db?

FACT(s) (Environment):

Progress 9.x
OpenEdge 10.x
All Supported Operating Systems

FIX:

At this time, there is no Progress provided utility that can migrate/convert an existing foreign database for a Progress db. However there a couple of different methods that can be used to migrate your existing foreign db to Progress?

Method 1:
If you are a DataServer user and/or have an existing DataServer license, then you will need to take your existing schema holder .df file and convert the file into a Progress .df. This is because the metaschema information within a schema holder .df is much different than the metaschema information within a Progress db. For example, a schema holder would have the following metaschema fields; i.e., DSRV, FOREIGN, MISC or SHADOW. These fields would not be present within a Progress .df file.

In order to convert the .df, follow these steps;

1. Dump the schema holder. df
2. Dump the .d file
3. Run the program found in Solution 15306, "How to convert schema holder .df to Progress database .df?" that can eliminate all references to the foreign datasource
4. Once this has been done, load the newly created progress .df file into an empty Progress db
5. Load the .d into Progress db

Method 2:
You can bypass the program provided in Method 1 and simply remove all metaschema fields used by the DataServer.

The following is a list of the metaschema fields that must get deleted from the schema holder .df file (delete the whole line).

-For table/field definition, the keywords that must be delete are:
FOREIGN-NAME
FOREIGN-TYPE
PROGRESS-RECID
FILE-MISC12
INDEX-FREE-FLD
RECID-FLD-NAME
FOREIGN-POS
FOREIGN-NAME
FOREIGN-TYPE
DSRVR-PRECISION
DSRVR-SCALE
DSRVR-LENGTH
DSRVR-FLDMISC
SHADOW-COL
QUOTED-NAME
MISC-PROPERTIES
SHADOW-NAME

-For sequence definition are:
FOREIGN-NAME
FOREIGN-OWNER
SEQ-MISC3

-For index definition, delete the keywords:
INDEX-NUM
FOREIGN-NAME
RECID-INDEX

-If you have specific tables, then delete the 'TYPE xxxx' phrase from the ADD TABLE syntax

-If you have all tables, then delete ADD DATABASE paragraph and replace with UPDATE DATABASE "?"

Once you've made all necessary changes to the schema holder .df file, save the file as a new .df. This new .df file will be loaded into your empty Progress database. Please note that if these fields are not deleted before the load, the load process might fail or hang.

Method 3:
If you do not have a DataServer license nor are a current DataServer user, then contact your sales representative to find out ways you can obtain a DataServer license. Once you receive this license, you will then need to create a schema holder. Refer to "The DataServer Tutorial" chapter on how to create a schema image. From there, Method 1 and 2 can be performed to convert the df file into Progress.

Method 4:
If you do not have access to a DataServer license and can not obtain one, then you will need create to the schema in the Progress database, export the data from the foreign database and create a conversion routine to load the data.