Functionality overview¶
Migration Toolkit is a powerful command-line tool that offers granular control of the migration process. Using Migration Toolkit is a two-step process:
Edit the
toolkit.propertiesfile to specify the source and target database.Invoke Migration Toolkit at the command line, specifying migration options.
Migration Toolkit helps with migration of database objects and data to an EDB Postgres Advanced Server or PostgreSQL database from:
OracleMySQLSQL Server
Migration Toolkit also allows you to migrate database objects and data to an EDB Postgres Advanced Server database from Sybase. You can also use Migration Toolkit to migrate between EDB Postgres Advanced Server and PostgreSQL. Migration Toolkit includes a number of options, allowing you granular control of the migration process:
Use the `-safeMode` option to commit each row as it is migrated.
Use the `-fastCopy` option to bypass WAL logging to optimize migration.
Use the `-batchSize` option to control the batch size of bulk inserts.
Use the `-cpBatchSize` option to specify the batch size used with the COPY command.
Use the `-lobBatchSize` option to specify the batch size used for large object data types.
Use the `-filterProp` option to migrate only those rows that meet a condition you specify.
Use the `-customColTypeMapping` option to change the data type of selected columns.
Use the `-dropSchema` option to drop the existing schema and create a new schema prior to migration.
On EDB Postgres Advanced Server, use the `-allDBLinks` option to migrate all Oracle database links.
On EDB Postgres Advanced Server, use the `-copyViaDBLinkOra` option to enable the `dblink_ora` module.
Object migration support¶
Migration Toolkit migrates object definitions (DDL), table data, or both. The following table contains a platform-specific list of the types of database objects that Migration Toolkit can migrate:
Object |
Oracle |
Sybase |
SQL Server |
MySQL |
|---|---|---|---|---|
Schemas |
X |
X |
X |
X |
Tables |
X |
X |
X |
X |
List-partitioned table |
X |
|||
Range-partitioned table |
X |
|||
Hash partitioned table |
X |
|||
Constraints |
X |
X |
X |
X |
Indexes |
X |
X |
X |
X |
Triggers |
X |
|||
Table data |
X |
X |
X |
X |
Views |
X |
X |
||
Materialized views |
X |
|||
Packages |
X |
|||
Procedures |
X |
|||
Functions |
X |
|||
Sequences |
X |
|||
Users/Roles |
X |
|||
Profiles |
X |
|||
Object types |
X |
|||
Object type methods |
X |
|||
Database links |
X |
|||
Queues |
X |
|||
For detailed information about the commands that offer granular control of the objects imported, see Schema object selection options.
Online migration versus offline migration¶
Migration Toolkit can migrate immediately and directly into a Postgres database (online migration). You can also choose to generate scripts to use later to re-create object definitions in a Postgres database (offline migration).
By default, Migration Toolkit creates objects directly into a Postgres
database. Alternatively, include the -offlineMigration option to
generate SQL scripts you can use later to reproduce the migrated objects
or data in a new database. You can alter migrated objects by customizing
the migration scripts generated by Migration Toolkit before you execute
them. With the -offlineMigration option, you can schedule the actual
migration at a time that best suits your system load.
For more information about the -offlineMigration option, see
Offline migration
options.