Known issues, limitations, and notes v1.3

These are the known issues, limitations, and notes for:

Data migration limitations

Case sensitivity in object names

EDB DMS doesn’t currently support migrating schemas, tables, and columns that have case-sensitive names.

Upgraded destinations clusters

Clusters provisioned in Hybrid Manager versions 1.2 and earlier cannot be used as migration destinations after the HM instance is upgraded to version 1.3 or later. You must create a new cluster in the upgraded environment to use it as a valid migration destination.

Considerations and limitations for multiple migrations to a single destination

The DMS supports running multiple data migrations from one source to one destination database, but certain restrictions apply.

  • Table usage: Each destination table can only be actively used in a single migration at any given time.

  • Unique resourceID (applies to migrations to external destinations): When running multiple migrations to an external destination, you must assign a unique resourceID to each instance of the EDB DMS Agent in writer mode with the DBCONFIG_DATABASES_0__RESOURCE_ID=${Resource_ID} parameter. This prevents concurrent migrations from attempting to use the same table simultaneously, which can cause data loss or duplication.

    Note

    This resourceID requirement does not apply to migrations targeting HM-managed Postgres instances.

  • Performance planning (applies to migrations to external destinations): While performance generally remains strong with the recommended specifications, if you run a large volume of migrations (five or more) to the same external destination database, you should consider allocating additional CPU, memory, and volume IOPS/throughput to the destination to prevent resource contention, specially if the destination is an external database.

  • Resource management: Each migration job requires a dedicated, non-concurrent use of the necessary DMS Agent components.

    DMS Agent in reader mode (source): Don't use a single running instance of the EDB DMS Agent in reader mode for more than one concurrent migration from the same source database. The HM Console will automatically remove a source database from the available list once it is active in a migration. However, you can use a single DMS Agent in reader mode for subsequent migrations or for concurrent migrations from different source databases.

    DMS Agent in writer mode (external destination): Each migration requires its own instance of the DMS Agent in writer mode, even if the migration shares the same destination as another migration.

Oracle limitations

Unsupported Oracle data types

A limited number of Oracle data types and features aren't supported by EDB Data Migration Service (EDB DMS).

See the Debezium documentation for detailed comments on supported data types.

Unsupported Oracle data types include:

  • BFILE
  • LONG
  • LONG RAW
  • RAW
  • UROWID
  • User-defined types (REF, Varrays, Nested Tables)
  • ANYDATA
  • XMLTYPE
  • Spatial

EDB DMS supports replicating Oracle tables that contain BLOB, CLOB, or NCLOB columns only if these also have the primary key constraint. If the tables don't have the primary key constraint, the streaming replication will only support INSERT operations.

BINARY_FLOAT and BINARY_DOUBLE types in Oracle that might contain Nan, +INF, and -INF values are not supported by EDB DMS.

EDB DMS does not support values containing a null character (0x00) for text field types like VARCHAR and CLOB in Oracle.

Oracle 21c databases

The Data Migration Service Agent supports migrating Oracle 21c databases. However, Migration Portal doesn't. This means that to migrate 21c databases, you must manually perform the schema migration.

Postgres limitations

Unsupported domain type definitions in columns

The EDB DMS doesn't support migrating tables with columns that have user-defined domains as data types for the following data type domains:

  • DATE
  • TIME
  • TIMESTAMP
  • INTERVAL
  • UUID
  • ENUM
  • JSON
  • XML
  • POINT
  • LTREE
  • TSVECTOR

TSVECTOR type migration workaround

Although we don't support the migration of TSVECTOR type columns, you can apply this workaround to enable their migration. For example, this messages table in source database contains a TSVECTOR column:

CREATE TABLE messages (
    title       text,
    body        text,
    tsv         tsvector
);

Before starting the migration, you need to create a table in the destination database without the TSVECTOR column like this:

CREATE TABLE messages (
    title       text,
    body        text,
);

When you perform the migration, you must exclude the TSVECTOR column in the HM console when you review the tables on the Review your Tables page by unchecking the tsv column.

After the migration finishes, you will get the title and body columns migrated to the target database. Now you can add the TSVECTOR column to the target table like this:

ALTER TABLE messages ADD COLUMN tsv TSVECTOR DEFAULT NULL;

And then you need to run the following UPDATE statement to populate the column for all migrated data:

UPDATE messages SET tsv = to_tsvector('english', CONCAT(title, ' ', body)) WHERE tsv IS NULL;

Schema ingestion known issues

Additional schemas ingested for EDB Postgres Advanced Server sources

When viewing the list of schemas for a source EDB Postgres Advanced Server database that you have registered with the HM Agent, you may observe additional schemas that do not directly correspond to schemas you explicitly created. These extra schemas are generated internally by EDB Postgres Advanced Server as part of its Oracle compatibility feature set to represent Oracle PACKAGE objects. This is currently a known issue that is expected to be corrected in a future release. In the meantime, you can disregard these generated schemas for migration purposes.