nav-img
Advanced

DRS Pre-Check Items

A DRS synchronization process consists of four phases: task startup, full migration, incremental migration, and task completion. A single full migration task contains three phases. To ensure smooth synchronization, DRS automatically scans and checks parameters and objects in the source and destination databases before starting a synchronization task.

Overview

View pre-check itmes based on the source database type of your synchronization task.

MySQL->MySQL

Table 1 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

  • Full synchronization requires the following minimum permissions:

    SELECT, SHOW VIEW, and EVENT

  • Full+incremental synchronization and incremental synchronization require the following minimum permissions:

    SELECT, SHOW VIEW, EVENT, LOCK TABLES, REPLICATION SLAVE, and REPLICATION CLIENT

Destination database permissions

  • The destination database user must have the following permissions:

    SELECT, CREATE, DROP, DELETE, INSERT, UPDATE, ALTER, CREATE VIEW, CREATE ROUTINE, and REFERENCES

    The root account of the RDS for MySQL DB instance has the preceding permissions by default.

  • If the destination database version is in the range 8.0.14 to 8.0.18, the SESSION_VARIABLES_ADMIN permission is required.

Versions

Source database versions

Versions 5.5, 5.6, 5.7, and 8.0 are supported.

Destination database versions

Versions 5.5, 5.6, 5.7, and 8.0 are supported.

Synchronization version

The destination database version must be the same as or later than the source database version.

Parameters

GTID status

Enable GTID for the source database. If GTID is not enabled for the source database, primary/standby switchover is not supported. DRS tasks will be interrupted and cannot be restored during a switchover.

Performance parameters

The log_slave_updates parameter of the source database must be enabled. Otherwise, the synchronization will fail.

The binlog_row_image parameter of the source database must be set to FULL. Otherwise, the synchronization will fail.

Maximum size of a packet that can be transmitted

If there is a lot of data to be synchronized or there are too many fields to be synchronized, and the max_allowed_packet value of the source database is too small, the synchronization task may fail.

If there is a lot of data to be synchronized or there are too many fields to be synchronized, and the max_allowed_packet value of the destination database is too small, data cannot be written to the destination database and the full synchronization fails.

sql_mode value

If the MyISAM tables are included in the synchronization objects, the sql_mode parameter in the destination database cannot contain the no_engine_substitution parameter. Otherwise, the synchronization fails.

Incremental synchronization

Index column length

The index column length of the source database must meet requirements.

Binlog status

During the incremental synchronization, the binlog of the source database must be enabled.

Binlog format

The source database binlog must be row-based.

Binlog retention period

If the storage space is sufficient, store the source database binlog files as long as possible. The recommended retention period is three days. If you set the period to 0, the synchronization may fail.

  • If the source database is a self-managed MySQL database, set expire_logs_days to specify the binlog retention period. Set expire_logs_day to a proper value to ensure that the binlog does not expire before data transfer resumes. This ensures that services can be recovered after interruption.
  • If the source database is RDS for MySQL, set the binlog retention period by following the instructions provided in DRS User Guide.

server_id value

During an incremental synchronization, the server_id value of the MySQL source database must be set.

  • If the source database version is MySQL 5.6 or earlier, the value of server_id ranges from 2 to 4294967296.
  • If the source database version is MySQL 5.7 or later, the value of server_id ranges from 1 to 4294967296.

Table fields

If there is a table containing fields of the longtext or longblob type in the synchronization object, you are advised to create a DRS task with large specifications. Otherwise, capture OOM may occur.

Additional columns

In an incremental synchronization task, if no additional column is added to the destination database, the task fails.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

Status

The destination DB instance is running properly.

Consistency

Character set

The character set of the destination database must be the same as that of the source database.

Collation

The collation_server value of the destination database must be the same as that of the source database.

Clock

The clock of the destination database must be the same as that of the source database.

Time zone

The time_zone value of the destination database must be the same as that of the source database.

Case sensitive

The lower_case_table_names value of the destination database must be the same as that of the source database.

Maximum length of the calculation result of the group_concat function

The group_concat_max_len value of the destination database must be the same as that of the source database.

InnoDB check mode

The innodb_strict_mode value of the destination database must be the same as that of the source database.

Data block encryption parameter

The block_encryption_mode value of the destination database must be the same as that of the source database.

SQL mode

The sql_mode value of the destination database must be the same as that of the source database.

Synchronization objects

Selected objects

  • Tables, primary key indexes, unique indexes, common indexes, stored procedures, views, and functions can be synchronized.
  • Only MyISAM and InnoDB tables can be synchronized.
  • Events and triggers cannot be synchronized.
  • Database parameters and the system database cannot be synchronized.

During database name mapping, if the objects to be synchronized contain stored procedures, views, and functions, these objects cannot be synchronized in the full synchronization phase, or it will result in inconsistent objects.

Tables without primary keys

Create primary keys for tables as the performance of a table without a primary key is lower than that of a table with a primary key.

Associated objects

Objects that have dependencies must be synchronized at the same time to avoid synchronization failure. Common dependencies: tables referenced by views, views referenced by views, views and tables referenced by stored procedures/functions/triggers, and tables referenced by primary and foreign keys

Foreign key reference operations

Cascade operations cannot be performed on tables with foreign keys. If the foreign key index of a table is a common index, the table structure may fail to be created. You are advised to use a unique index.

Duplicate names

If the destination database (excluding MySQL system database) has the same name as the source database, the table structures in the destination database must be consistent with those in the source database.

Database table naming rules

  • The source database names cannot contain non-ASCII characters, or the following characters: '<`>/\"
  • The source table and view names cannot contain non-ASCII characters, or the following characters: '<>/\"
  • The source database name or mapped name cannot start with ib_logfile or be ib_buffer_pool, ib_doublewrite, ibdata1 or ibtmp1.
  • The source database names mapped to the destination database cannot contain the following characters: dots (.), angle brackets (<>), backslash (\), and single quotation marks (')
  • If the database table name contains characters other than letters, digits, and underscores (_), or the mapped database table name contains hyphens (-) and number signs (#), the name length cannot exceed 42 characters.

SSL

SSL configuration

If you enable SSL, the SSL connections for both the source and destination databases are correctly configured.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

MySQL->PostgreSQL

Table 2 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

  • Full synchronization requires the following minimum permission: SELECT
  • Full+incremental synchronization requires the following minimum permissions:

    SELECT, LOCK TABLES, REPLICATION SLAVE, and REPLICATION CLIENT

Destination database permissions

The account of the RDS for PostgreSQL instance has the permissions by default.

Versions

Source database versions

Versions 5.5, 5.6, 5.7, and 8.0 are supported.

Destination database versions

Versions 9.5, 9.6, 10, and 11 are supported.

Parameters

GTID status

Enable GTID for the source database. If GTID is not enabled for the source database, primary/standby switchover is not supported. DRS tasks will be interrupted and cannot be restored during a switchover.

Performance parameters

The binlog_row_image parameter of the source database must be set to FULL. Otherwise, the synchronization will fail.

Maximum size of a packet that can be transmitted

If there is a lot of data to be synchronized or there are too many fields to be synchronized, and the max_allowed_packet value of the source database is too small, the synchronization task may fail.

Incremental synchronization

Binlog status

During the incremental synchronization, the binlog of the source database must be enabled.

Binlog format

The source database binlog must be row-based.

server_id value

During an incremental synchronization, the server_id value of the MySQL source database must be set.

  • If the source database version is MySQL 5.6 or earlier, the value of server_id ranges from 2 to 4294967296.
  • If the source database version is MySQL 5.7 or later, the value of server_id ranges from 1 to 4294967296.

Table fields

  • If there is a table containing fields of the longtext or longblob type in the synchronization object, you are advised to create a DRS task with large specifications. Otherwise, capture OOM may occur.
  • The following table field types are not supported in the source database: xml, geometry, point, lineString, polygon, geometrycollection, multipoint, multilinestring, multipolygon, and json.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

Status

The destination DB instance is running properly.

Consistency

Character set

The character set of the destination database must be the same as that of the source database.

Time zone

The time_zone value of the destination database must be the same as that of the source database.

Table structures

The table structure of the destination database must be the same as that of the source database.

Synchronization objects

Selected objects

  • Only table structures, table data, and indexes can be synchronized.
  • Only MyISAM and InnoDB tables can be synchronized.
  • Other database objects such as stored procedures cannot be synchronized.

Tables without primary keys

Create primary keys for tables as the performance of a table without a primary key is lower than that of a table with a primary key.

Primary keys

Do not use an imprecise value type as the primary key in the database. This feature affects the synchronization of UPDATE and DELETE statements in the DRS incremental scenario.

Foreign key reference operations

Cascade operations cannot be performed on tables with foreign keys. If the foreign key index of a table is a common index, the table structure may fail to be created. You are advised to use a unique index.

Duplicate names

The destination DB instance cannot contain databases with the same name as the source databases (except the MySQL system database).

Database table naming rules

The names of the source databases and tables cannot contain non-ASCII characters, or the following characters: '<`>/\"

Object name length

The destination database object name can contain a maximum of 63 characters.

Source database

The source database is properly connected during the synchronization object check in the pre-check phase.

SSL

SSL configuration

If you enable SSL, the SSL connections for both the source and destination databases are correctly configured.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

MySQL -> GaussDB Primary/Standby

Table 3 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

SELECT, LOCK TABLES, REPLICATION SLAVE, and REPLICATION CLIENT

Destination database permissions

  • Database-level permissions: Log in to the postgres base database as user root or user DATABASE with the Sysadmin role, and grant the CREATE and CONNECT permissions to user DATABASE.
  • Schema-level permissions: Log in to the database as user root or user DATABASE with the Sysadmin role, or the owner of the object, and grant the CREATE and USAGE permissions of the schema to the user.
  • Table-level permissions: Log in to the database as user root or user DATABASE with the Sysadmin role, or the owner of the object, and grant the SELECT, UPDATE, INSERT, ALTER, INDEX, and DELETE permissions for all tables in the SCHEMA to the user.

Versions

Source database versions

Versions 5.5, 5.6, 5.7, and 8.0 are supported.

Destination database versions

1.0.0 and later versions are supported.

Parameters

GTID status

Enable GTID for the source database. If GTID is not enabled for the source database, primary/standby switchover is not supported. DRS tasks will be interrupted and cannot be restored during a switchover.

Performance parameters

The binlog_row_image parameter of the source database must be set to FULL. Otherwise, the synchronization will fail.

Maximum size of a packet that can be transmitted

If there is a lot of data to be synchronized or there are too many fields to be synchronized, and the max_allowed_packet value of the source database is too small, the synchronization task may fail.

Incremental synchronization

Binlog status

During the incremental synchronization, the binlog of the source database must be enabled.

Binlog format

The source database binlog must be row-based.

Binlog retention period

If the storage space is sufficient, store the source database binlog files as long as possible. The recommended retention period is three days. If you set the period to 0, the synchronization may fail.

  • If the source database is a self-managed MySQL database, set expire_logs_days to specify the binlog retention period. Set expire_logs_day to a proper value to ensure that the binlog does not expire before data transfer resumes. This ensures that services can be recovered after interruption.
  • If the source database is RDS for MySQL, set the binlog retention period by following the instructions provided in DRS User Guide.

server_id value

During an incremental synchronization, the server_id value of the MySQL source database must be set.

  • If the source database version is MySQL 5.6 or earlier, the value of server_id ranges from 2 to 4294967296.
  • If the source database version is MySQL 5.7 or later, the value of server_id ranges from 1 to 4294967296.

Table fields

The following data types are not supported: XML, JSON containing the bit type, geometry, point, lineString, polygon, geometrycollection, multipoint, multilinestring, and multipolygon.

Database compatibility type

The compatibility mode of the destination database must be consistent with that of the source database.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

Status

The destination DB instance is running properly.

Consistency

Character set

The character set of the destination database must be the same as that of the source database.

Time zone

The time_zone value of the destination database must be the same as that of the source database.

Table structures

The table structure of the destination database must be the same as that of the source database.

Synchronization objects

Selected objects

  • Only table structures, table data, and indexes can be synchronized.
  • Only MyISAM and InnoDB tables can be synchronized.
  • Other database objects such as stored procedures cannot be synchronized.
  • MySQL tables containing virtual columns cannot be synchronized.
  • A user-defined table that has no primary key and is a partitioned table cannot be synchronized. Otherwise, the task may fail.

Foreign key reference operations

Cascade operations cannot be performed on tables with foreign keys. If the foreign key index of a table is a common index, the table structure may fail to be created. You are advised to use a unique index.

Duplicate names

The destination DB instance cannot contain databases with the same name as the source databases (except the MySQL system database).

Database table naming rules

  • The names of the source databases and tables cannot contain non-ASCII characters, or the following characters: .<'>/\
  • Object names will be converted to lowercase letters after being synchronized to the destination database. Ensure that the selected source database tables do not contain tables with the same name but different letter cases.

Object name length

The destination database object name can contain a maximum of 63 characters.

Source database

The selected synchronization object must exist in the source database.

Destination database

The mapped database configured for the task must exist in the destination database.

SSL

SSL configuration

If you enable SSL, the SSL connections for both the source and destination databases are correctly configured.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

MySQL->GaussDB(DWS)

Table 4 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

SELECT, LOCK TABLES, REPLICATION SLAVE, and REPLICATION CLIENT

Destination database permissions

The destination database user must have the following permissions: INSERT, SELECT, UPDATE, DELETE, CONNECT, and CREATE.

Versions

Source database versions

Versions 5.5, 5.6, 5.7, and 8.0 are supported.

Destination database versions

Versions 8.1.3 and 8.2.0 are supported.

Parameters

GTID status

Enable GTID for the source database. If GTID is not enabled for the source database, primary/standby switchover is not supported. DRS tasks will be interrupted and cannot be restored during a switchover.

Performance parameters

The binlog_row_image parameter of the source database must be set to FULL. Otherwise, the synchronization will fail.

Maximum size of a packet that can be transmitted

If there is a lot of data to be synchronized or there are too many fields to be synchronized, and the max_allowed_packet value of the source database is too small, the synchronization task may fail.

Incremental synchronization

Binlog status

During the incremental synchronization, the binlog of the source database must be enabled.

Binlog format

The source database binlog must be row-based.

Binlog retention period

If the storage space is sufficient, store the source database binlog files as long as possible. The recommended retention period is three days. If you set the period to 0, the synchronization may fail.

  • If the source database is a self-managed MySQL database, set expire_logs_days to specify the binlog retention period. Set expire_logs_day to a proper value to ensure that the binlog does not expire before data transfer resumes. This ensures that services can be recovered after interruption.
  • If the source database is RDS for MySQL, set the binlog retention period by following the instructions provided in DRS User Guide.

server_id value

During an incremental synchronization, the server_id value of the MySQL source database must be set.

  • If the source database version is MySQL 5.6 or earlier, the value of server_id ranges from 2 to 4294967296.
  • If the source database version is MySQL 5.7 or later, the value of server_id ranges from 1 to 4294967296.

Table fields

The following data types are not supported: XML, JSON containing the bit type, geometry, point, lineString, polygon, geometrycollection, multipoint, multilinestring, and multipolygon.

If there is a table containing fields of the longtext or longblob type in the synchronization object, you are advised to create a DRS task with large specifications. Otherwise, capture OOM may occur.

Database compatibility type

The compatibility mode of the destination database must be consistent with that of the source database.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

Status

The destination DB instance is running properly.

Consistency

Character set

The character set of the destination database must be the same as that of the source database.

Time zone

The time_zone value of the destination database must be the same as that of the source database.

Table structures

The table structure of the destination database must be the same as that of the source database.

Synchronization objects

Selected objects

  • Tables, indexes, and constraints (primary key, null, and non-null) can be synchronized.
  • MyISAM and InnoDB tables can be synchronized.
  • Views, foreign keys, stored procedures, triggers, functions, events, virtual columns, unique constraints, and unique indexes cannot be synchronized.
  • A user-defined table that has no primary key and is a partitioned table cannot be synchronized.

Foreign key reference operations

Cascade operations cannot be performed on tables with foreign keys. If the foreign key index of a table is a common index, the table structure may fail to be created. You are advised to use a unique index.

Duplicate names

The destination DB instance cannot contain databases with the same name as the source databases (except the MySQL system database).

Database table naming rules

  • The names of the source databases and tables cannot contain non-ASCII characters, or the following characters: .<'>/\
  • During database-level synchronization, tables with the same name but different letter cases cannot be created in the source database during incremental synchronization.
  • Object names will be converted to lowercase letters after being synchronized to the destination database. Ensure that the selected source database tables do not contain tables with the same name but different letter cases.

Object name length

The destination database object name can contain a maximum of 63 characters.

Source database

The selected synchronization object must exist in the source database.

SSL

SSL configuration

If you enable SSL, the SSL connections for both the source and destination databases are correctly configured.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

MySQL->GaussDB(for MySQL)

Table 5 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

The user must have the following permissions:

SELECT, SHOW VIEW, EVENT, LOCK TABLES, REPLICATION SLAVE, and REPLICATION CLIENT

Destination database permissions

  • The destination database user must have the following permissions:

    SELECT, CREATE, DROP, DELETE, INSERT, UPDATE, ALTER, CREATE VIEW, CREATE ROUTINE, and REFERENCES The root account of the GaussDB(for MySQL) DB instance has the preceding permissions by default.

  • If the destination database version is in the range 8.0.14 to 8.0.18, the SESSION_VARIABLES_ADMIN permission is required.

Versions

Source database versions

Versions 5.5, 5.6, 5.7, and 8.0 are supported.

Destination database versions

Version 8.0 is supported.

Synchronization version

The destination database version must be the same as or later than the source database version.

Parameters

GTID status

Enable GTID for the source database. If GTID is not enabled for the source database, primary/standby switchover is not supported. DRS tasks will be interrupted and cannot be restored during a switchover.

Performance parameters

The log_slave_updates parameter of the source database must be enabled. Otherwise, the synchronization will fail.

The binlog_row_image parameter of the source database must be set to FULL. Otherwise, the synchronization will fail.

Maximum size of a packet that can be transmitted

If there is a lot of data to be synchronized or there are too many fields to be synchronized, and the max_allowed_packet value of the source database is too small, the synchronization task may fail.

If there is a lot of data to be synchronized or there are too many fields to be synchronized, and the max_allowed_packet value of the destination database is too small, data cannot be written to the destination database and the full synchronization fails.

sql_mode value

If the MyISAM tables are included in the synchronization objects, the sql_mode parameter in the destination database cannot contain the no_engine_substitution parameter. Otherwise, the synchronization fails.

Incremental synchronization

Index column length

The index column length of the source database must meet requirements.

Binlog status

During the incremental synchronization, the binlog of the source database must be enabled.

Binlog format

The source database binlog must be row-based.

Binlog retention period

If the storage space is sufficient, store the source database binlog files as long as possible. The recommended retention period is three days. If you set the period to 0, the synchronization may fail.

  • If the source database is a self-managed MySQL database, set expire_logs_days to specify the binlog retention period. Set expire_logs_day to a proper value to ensure that the binlog does not expire before data transfer resumes. This ensures that services can be recovered after interruption.
  • If the source database is RDS for MySQL, set the binlog retention period by following the instructions provided in DRS User Guide.

server_id value

During an incremental synchronization, the server_id value of the MySQL source database must be set.

  • If the source database version is MySQL 5.6 or earlier, the value of server_id ranges from 2 to 4294967296.
  • If the source database version is MySQL 5.7 or later, the value of server_id ranges from 1 to 4294967296.

Table fields

If there is a table containing fields of the longtext or longblob type in the synchronization object, you are advised to create a DRS task with large specifications. Otherwise, capture OOM may occur.

Additional columns

Check whether you need to add the missing additional columns to the destination database tables.

Destination database

Status

The destination DB instance is running properly.

Consistency

Character set

The character set of the destination database must be the same as that of the source database.

Collation

The collation_server value of the destination database must be the same as that of the source database.

Clock

The clock of the destination database must be the same as that of the source database.

Time zone

The time_zone value of the destination database must be the same as that of the source database.

Case sensitive

The lower_case_table_names value of the destination database must be the same as that of the source database.

Maximum length of the calculation result of the group_concat function

The group_concat_max_len value of the destination database must be the same as that of the source database.

InnoDB check mode

The innodb_strict_mode value of the destination database must be the same as that of the source database.

Data block encryption parameter

The block_encryption_mode value of the destination database must be the same as that of the source database.

SQL mode

The sql_mode value of the destination database must be the same as that of the source database.

Synchronization objects

Selected objects

  • Tables, primary key indexes, unique indexes, common indexes, stored procedures, views, and functions can be synchronized.
  • Only MyISAM and InnoDB tables can be synchronized.
  • Events and triggers cannot be synchronized.
  • Database parameters and the system database cannot be synchronized.

During database name mapping, if the objects to be synchronized contain stored procedures, views, and functions, these objects cannot be synchronized in the full synchronization phase, or it will result in inconsistent objects.

Tables without primary keys

Create primary keys for tables as the performance of a table without a primary key is lower than that of a table with a primary key.

Associated objects

Objects that have dependencies must be synchronized at the same time to avoid synchronization failure. Common dependencies: tables referenced by views, views referenced by views, views and tables referenced by stored procedures/functions/triggers, and tables referenced by primary and foreign keys

Foreign key reference operations

Cascade operations cannot be performed on tables with foreign keys. If the foreign key index of a table is a common index, the table structure may fail to be created. You are advised to use a unique index.

Duplicate names

If the destination database (excluding MySQL system database) has the same name as the source database, the table structures in the destination database must be consistent with those in the source database.

Database table naming rules

  • The names of the source databases, tables, and views cannot contain non-ASCII characters, or the following characters: '<`>/\
  • The source database name or mapped name cannot start with ib_logfile or be ib_buffer_pool, ib_doublewrite, ibdata1 or ibtmp1.

SSL

SSL configuration

If you enable SSL, the SSL connections for both the source and destination databases are correctly configured.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

MySQL->MariaDB

Table 6 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

  • Full synchronization requires the following minimum permissions:

    SELECT, SHOW VIEW, and EVENT

  • Full+incremental synchronization and incremental synchronization require the following minimum permissions:

    SELECT, SHOW VIEW, EVENT, LOCK TABLES, REPLICATION SLAVE, and REPLICATION CLIENT

Destination database permissions

  • The destination database user must have the following permissions:

    SELECT, CREATE, DROP, DELETE, INSERT, UPDATE, ALTER, CREATE VIEW, CREATE ROUTINE, REFERENCES, and INDEX

    The root account of the RDS for MariaDB instance has the preceding permissions by default.

Versions

Source database versions

Versions 5.5, 5.6, 5.7, and 8.0 are supported.

Destination database versions

Version 10.5 is supported.

Parameters

GTID status

Enable GTID for the source database. If GTID is not enabled for the source database, primary/standby switchover is not supported. DRS tasks will be interrupted and cannot be restored during a switchover.

Performance parameters

The log_slave_updates parameter of the source database must be enabled. Otherwise, the synchronization will fail.

The binlog_row_image parameter of the source database must be set to FULL. Otherwise, the synchronization will fail.

sql_mode value

If the MyISAM tables are included in the synchronization objects, the sql_mode parameter in the destination database cannot contain the no_engine_substitution parameter. Otherwise, the synchronization fails.

Incremental synchronization

Index column length

The index column length of the source database must meet requirements.

Binlog status

During the incremental synchronization, the binlog of the source database must be enabled.

Binlog format

The source database binlog must be row-based.

Binlog retention period

If the storage space is sufficient, store the source database binlog files as long as possible. The recommended retention period is three days. If you set the period to 0, the synchronization may fail.

  • If the source database is a self-managed MySQL database, set expire_logs_days to specify the binlog retention period. Set expire_logs_day to a proper value to ensure that the binlog does not expire before data transfer resumes. This ensures that services can be recovered after interruption.
  • If the source database is RDS for MySQL, set the binlog retention period by following the instructions provided in DRS User Guide.

server_id value

During an incremental synchronization, the server_id value of the MySQL source database must be set.

  • If the source database version is MySQL 5.6 or earlier, the value of server_id ranges from 2 to 4294967296.
  • If the source database version is MySQL 5.7 or later, the value of server_id ranges from 1 to 4294967296.

Table fields

If there is a table containing fields of the longtext or longblob type in the synchronization object, you are advised to create a DRS task with large specifications. Otherwise, capture OOM may occur.

Additional columns

In an incremental synchronization task, if no additional column is added to the destination database, the task fails.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

Status

The destination DB instance is running properly.

Consistency

Character set

The character set of the destination database must be the same as that of the source database.

Collation

The collation_server value of the destination database must be the same as that of the source database.

Clock

The clock of the destination database must be the same as that of the source database.

Case sensitive

The lower_case_table_names value of the destination database must be the same as that of the source database.

Maximum length of the calculation result of the group_concat function

The group_concat_max_len value of the destination database must be the same as that of the source database.

InnoDB check mode

The innodb_strict_mode value of the destination database must be the same as that of the source database.

SQL mode

The sql_mode value of the destination database must be the same as that of the source database.

Synchronization objects

Selected objects

  • Tables, primary key indexes, unique indexes, common indexes, stored procedures, views, and functions can be synchronized.
  • Only MyISAM and InnoDB tables can be synchronized.
  • Events and triggers cannot be synchronized.
  • Database parameters and the system database cannot be synchronized.

During database name mapping, if the objects to be synchronized contain stored procedures, views, and functions, these objects cannot be synchronized in the full synchronization phase, or it will result in inconsistent objects.

Tables without primary keys

Create primary keys for tables as the performance of a table without a primary key is lower than that of a table with a primary key.

Associated objects

Objects that have dependencies must be synchronized at the same time to avoid synchronization failure. Common dependencies: tables referenced by views, views referenced by views, views and tables referenced by stored procedures/functions/triggers, and tables referenced by primary and foreign keys

Foreign key reference operations

Cascade operations cannot be performed on tables with foreign keys. If the foreign key index of a table is a common index, the table structure may fail to be created. You are advised to use a unique index.

Duplicate names

If the destination database (excluding MySQL system database) has the same name as the source database, the table structures in the destination database must be consistent with those in the source database.

Database table naming rules

  • The source database names cannot contain non-ASCII characters, or the following characters: '<`>/\"
  • The source table and view names cannot contain non-ASCII characters, or the following characters: '<>/\"
  • The source database name or mapped name cannot start with ib_logfile or be ib_buffer_pool, ib_doublewrite, ibdata1 or ibtmp1.
  • The source database names mapped to the destination database cannot contain the following characters: dots (.), angle brackets (<>), backslash (\), and single quotation marks (')
  • If the database table name contains characters other than letters, digits, and underscores (_), or the mapped database table name contains hyphens (-) and number signs (#), the name length cannot exceed 42 characters.

SSL

SSL configuration

If you enable SSL, the SSL connections for both the source and destination databases are correctly configured.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

PostgreSQL->PostgreSQL

Table 7 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

  • Full synchronization requires the following permissions:

    The CONNECT permission for databases, USAGE permission for schemas, SELECT permission for tables, SELECT permission for sequences, and SELECT permission for system table catalog pg_catalog.pg_authid (used for synchronizing user passwords)

  • Full+incremental synchronization and incremental synchronization require the following permissions:

    The CONNECT permission for databases, USAGE permission for schemas, SELECT permission for tables, SELECT permission for sequences, SELECT permission for system table pg_catalog.pg_authid (used for synchronizing user passwords), UPDATE, DELETE, and TRUNCATE permissions for tables that do not have primary keys, and the permission to create a replication connection

Destination database permissions

  • Database-level synchronization:
    • If the destination database is not PostgreSQL, the CREATEDB permission is required.
    • If the destination database is PostgreSQL, the CONNECT and CREATE permissions on PostgreSQL databases and the USAGE and CREATE permissions on public schemas are required.
  • Table-level synchronization:
    • To synchronize databases, the CREATEDB permission is required.
    • To synchronize schemas, the CONNECT and CREATE permissions for the database that contains the schemas are required.
    • To synchronize objects in a schema, the CONNECT permission for the database that contains the schema, and the USAGE and CREATE permissions for the schema that contain the objects are required.
  • User synchronization: The CREATEROLE permission is required.
  • User permissions synchronization: The default privilege cannot be modified. Otherwise, the object permissions of the destination database may be inconsistent with those of the source database.

Versions

Source database versions

Versions 9.4, 9.5, 9.6, 10, 11, 12, 13, and 14 are supported.

Destination database versions

Versions 9.5, 9.6, 10, 11, 12, 13, and 14 are supported.

Synchronization version

The destination database version must be the same as or later than the source database version.

Parameters

Performance parameters

The BLOCK_SIZE value of the destination database must be greater than or equal to that of the source database.

The PASSWORD_ENCRYPTION values of the source and destination databases must be the same.

The max_replication_slots value of the source database must be greater than the number of used replication slots.

The max_wal_senders value of the source database must be greater than or equal to the max_replication_slots value.

The replica identity attribute of tables that do not have primary keys in the source database must be full.

If the toast attribute of the primary key column in the source database is main, external, or extended, the replica identity attribute must be full.

The wal_level value of the source database must be logical.

Incremental synchronization

Table fields

  • If there is a table containing fields of the bytea or text type in the synchronization object, you are advised to create a DRS task with large specifications. Otherwise, an OOM exception may occur.
  • Supported field types: digit, currency, character, binary, date/time, Boolean, enumeration, geometry, network address, bit, text search, UUID, XML, JSON, array, compound, and range.

Unlogged tables

During database-level synchronization, DMLs of unlogged tables cannot be synchronized.

Parameters

To perform incremental synchronization, if the synchronization object contains foreign keys, triggers, or event triggers, set session_replication_role of the destination database to replica. After the synchronization is complete, change the value to origin.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

Status

The destination DB instance is running properly.

Character type and sorting rule

The destination database does not support the value of lc_ctype or lc_collate in the database to be synchronized.

Currency format

The currency format of the source and destination databases must be the same.

Synchronization objects

Selected objects

  • Database- and table-level synchronization is supported.
  • Instance-level synchronization is not supported.
  • Objects that are not supported: system schemas (schemas starting with pg_, information_schema, sys, utl_raw, dbms_lob, dbms_output, and dbms_random), system catalogs, system users, tablespaces, foreign-data wrappers, foreign servers, user mappings, publications, and subscriptions

The selected table cannot contain delay constraints.

The objects that have dependencies must be synchronized at the same time.

Naming rules of databases, tables, and columns

  • The database name cannot contain the following special characters: +"%'\<>
  • The schema name and table name cannot contain the following special characters: ".'<>
  • The column name cannot contain double quotation marks (") or single quotation marks (').

Source database

The source database is properly connected during the synchronization object check in the pre-check phase.

  • For a full+incremental synchronization task, the source database cannot be a standby database.
  • For a full synchronization task, the source database can be a standby database, and hot_standby_feedback must be set to on.

Before starting a task, ensure that the source database does not contain transactions that have been there for a long time without being submitted.

The SSL status of the source database is normal.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

PostgreSQL->GaussDB(DWS)

Table 8 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

Full+incremental synchronization requires the following permissions:

The CONNECT permission for databases, the USAGE permission for schemas, the SELECT permission for tables, the SELECT permission for sequences, the UPDATE, DELETE, and TRUNCATE permissions for tables that do not have primary keys, and the permission to create replication connections

Destination database permissions

  • Database-level: The CREATEDB permission is required.
  • Table-level:
    • To synchronize databases, the CREATEDB permission is required.
    • To synchronize schemas, the CONNECT and CREATE permissions for the database that contains the schemas are required.
    • To synchronize objects in a schema, the CONNECT permission for the database that contains the schema, and the USAGE and CREATE permissions for the schema that contain the objects are required.

Versions

Source database versions

Versions 9.4, 9.5, 9.6, 10, 11, 12, 13, and 14 are supported.

Destination database versions

Versions 8.1.3 and 8.2.0 are supported.

Parameters

Performance parameters

The max_replication_slots value of the source database must be greater than the number of used replication slots.

The max_wal_senders value of the source database must be greater than or equal to the max_replication_slots value.

The replica identity attribute of tables that do not have primary keys in the source database must be full.

If the toast attribute of the primary key column in the source database is main, external, or extended, the replica identity attribute must be full.

The wal_level value of the source database must be logical.

Incremental synchronization

Table fields

  • GaussDB(DWS)-compatible PostgreSQL data types, such as tinyint, smallint, int, bigint, numeric, decimal, char, bpchar, varchar, text, date, time, timetz, timestamp, timestamptz and interval, are supported.
  • XML, line, and domain data types cannot be synchronized.

Unlogged tables

During database-level synchronization, DMLs of unlogged tables cannot be synchronized.

Synchronization objects

Selected objects

  • Schemas, tables, indexes, constraints, sequences, and user-defined types can be synchronized.
  • During table-level synchronization, only tables and sequences can be synchronized.
  • Instance-level synchronization is not supported.
  • System schemas (any schema starting with pg_, information_schema, sys, utl_raw, dbms_lob, dbms_output, and dbms_random) and system catalogs cannot be synchronized. System schemas (any schema starting with pg_, information_schema, sys, utl_raw, dbms_lob, dbms_output, and dbms_random) and system catalogs cannot be synchronized.
  • A user-defined table that has no primary key and is a partitioned table cannot be synchronized.

The selected table cannot contain delay constraints.

The objects that have dependencies must be synchronized at the same time. Common dependencies are as follows: tables referenced by primary and foreign keys, parent tables referenced by child tables, partitioned tables referenced by sub-partitioned tables, and sequences referenced by auto-increment columns.

Naming rules of databases, tables, and columns

  • The database name cannot contain the following special characters: +"%'\<>
  • The schema name and table name cannot contain the following special characters: ".'<>
  • The column name cannot contain double quotation marks (") or single quotation marks (').

Source database

The source database is properly connected during the synchronization object check in the pre-check phase.

  • For an incremental synchronization task, the source database cannot be a standby database.
  • For a full synchronization task, the source database can be a standby database, and hot_standby_feedback must be set to on.

Before starting a task, ensure that the source database does not contain transactions that have been there for a long time without being submitted.

The SSL status of the source database is normal.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

PostgreSQL -> GaussDB Primary/Standby

Table 9 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

  • Full synchronization requires the following permissions:

    The CONNECT permission for databases, the USAGE permission for schemas, the SELECT permission for tables, and the SELECT permission for sequences

  • Full+incremental synchronization requires the following permissions:

    The CONNECT permission for databases, the USAGE permission for schemas, the SELECT permission for tables, the SELECT permission for sequences, the UPDATE, DELETE, and TRUNCATE permissions for tables that do not have primary keys, and the permission to create replication connections

Destination database permissions

The user has the sysadmin role or the following minimum permissions:

The CONNECT and CREATE permissions for databases, the USAGE and CREATE permissions for schemas, and the INSERT, UPDATE, DELETE, SELECT, ALTER, INDEX, and COMMENT permissions for tables.

Versions

Source database versions

Versions 9.4, 9.5, 9.6, 10, 11, 12, 13, and 14 are supported.

Destination database versions

1.0.0 and later versions are supported.

Parameters

Performance parameters

The max_replication_slots value of the source database must be greater than the number of used replication slots.

The max_wal_senders value of the source database must be greater than or equal to the max_replication_slots value.

The replica identity attribute of tables that do not have primary keys in the source database must be full.

If the toast attribute of the primary key column in the source database is main, external, or extended, the replica identity attribute must be full.

The wal_level value of the source database must be logical.

Incremental synchronization

Table fields

  • GaussDB (PostgreSQL-compatible) data types, such as tinyint, smallint, int, bigint, numeric, decimal, char, bpchar, varchar, text, date, time, timetz, timestamp, timestamptz and interval, are supported.
  • XML, line, domain, and self-built data type synchronization is not supported.

Unlogged tables

During database-level synchronization, DMLs of unlogged tables cannot be synchronized.

Consistency

Schemas and tables

The schemas and tables of the destination database must be the same as those of the source database.

Synchronization objects

Selected objects

  • Schemas, tables, primary key and unique constraints, table data, and sequences can be synchronized.
  • Instance-level synchronization is not supported.
  • System schemas and system catalogs cannot be synchronized. (The following schemas are system schemas in the destination database and cannot be synchronized: "pg_toast", "cstore", "snapshot", "sys", "dbms_job", "dbms_perf", "pg_catalog", "information_schema", "utl_file", "dbms_output", "dbms_random", "utl_raw", "dbms_sql", "dbms_lob", "dbe_perf", "pkg_service", "pkg_util", "dbe_file", "dbe_random", "dbe_output", "dbe_raw", "dbe_sql", "dbe_lob", "dbe_task", "blockchain", "db4ai", "dbe_pldebugger", "sqladvisor", "dbe_application_info", "dbe_match", "dbe_pldeveloper", "dbe_scheduler", "dbe_session", "dbe_utility", "dbe_sql_util").
  • A user-defined table that has no primary key and is a partitioned table cannot be synchronized.

The selected table cannot contain delay constraints.

The objects that have dependencies must be synchronized at the same time. Common dependencies are as follows: tables referenced by views, views referenced by views, tables referenced by primary and foreign keys, parent tables referenced by child tables, partitioned tables referenced by sub-partitioned tables, and sequences referenced by auto-increment columns.

Naming rules of databases, tables, and columns

  • The database name cannot contain the following special characters: +"%'\<>
  • The schema name and table name cannot contain the following special characters: ".'<>
  • The column name cannot contain double quotation marks (") or single quotation marks (').

Source database

The source database is properly connected during the synchronization object check in the pre-check phase.

  • For an incremental synchronization task, the source database cannot be a standby database.
  • For a full synchronization task, the source database can be a standby database, and hot_standby_feedback must be set to on.

Before starting a task, ensure that the source database does not contain transactions that have been there for a long time without being submitted.

The SSL status of the source database is normal.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

PostgreSQL -> GaussDB Distributed

Table 10 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

  • Full synchronization requires the following permissions:

    The CONNECT permission for databases, the USAGE permission for schemas, the SELECT permission for tables, and the SELECT permission for sequences

  • Full+incremental synchronization requires the following permissions:

    The CONNECT permission for databases, the USAGE permission for schemas, the SELECT permission for tables, the SELECT permission for sequences, the UPDATE, DELETE, and TRUNCATE permissions for tables that do not have primary keys, and the permission to create replication connections

Destination database permissions

The user has the sysadmin role or the following minimum permissions:

The CONNECT and CREATE permissions for databases, the USAGE and CREATE permissions for schemas, and the INSERT, UPDATE, DELETE, SELECT, ALTER, INDEX, and COMMENT permissions for tables.

Versions

Source database versions

Versions 9.4, 9.5, 9.6, 10, 11, 12, 13, and 14 are supported.

Destination database versions

1.0.0 and later versions are supported.

Parameters

Performance parameters

The max_replication_slots value of the source database must be greater than the number of used replication slots.

The max_wal_senders value of the source database must be greater than or equal to the max_replication_slots value.

The replica identity attribute of tables that do not have primary keys in the source database must be full.

If the toast attribute of the primary key column in the source database is main, external, or extended, the replica identity attribute must be full.

The wal_level value of the source database must be logical.

Incremental synchronization

Table fields

  • GaussDB (PostgreSQL-compatible) data types, such as tinyint, smallint, int, bigint, numeric, decimal, char, bpchar, varchar, text, date, time, timetz, timestamp, timestamptz and interval, are supported.
  • XML, line, domain, and self-built data type synchronization is not supported.

Unlogged tables

During database-level synchronization, DMLs of unlogged tables cannot be synchronized.

Consistency

Schemas and tables

The schemas and tables of the destination database must be the same as those of the source database.

Synchronization objects

Selected objects

  • Schemas, tables, primary key and unique constraints, table data, and sequences can be synchronized.
  • Instance-level synchronization is not supported.
  • System schemas and system catalogs cannot be synchronized. (The following schemas are system schemas in the destination database and cannot be synchronized: "pg_toast", "cstore", "snapshot", "sys", "dbms_job", "dbms_perf", "pg_catalog", "information_schema", "utl_file", "dbms_output", "dbms_random", "utl_raw", "dbms_sql", "dbms_lob", "dbe_perf", "pkg_service", "pkg_util", "dbe_file", "dbe_random", "dbe_output", "dbe_raw", "dbe_sql", "dbe_lob", "dbe_task", "blockchain", "db4ai", "dbe_pldebugger", "sqladvisor", "dbe_application_info", "dbe_match", "dbe_pldeveloper", "dbe_scheduler", "dbe_session", "dbe_utility", "dbe_sql_util").
  • A user-defined table that has no primary key and is a partitioned table cannot be synchronized.

The selected table cannot contain delay constraints.

The objects that have dependencies must be synchronized at the same time. Common dependencies are as follows: tables referenced by primary and foreign keys, parent tables referenced by child tables, partitioned tables referenced by sub-partitioned tables, and sequences referenced by auto-increment columns.

Naming rules of databases, tables, and columns

  • The database name cannot contain the following special characters: +"%'\<>
  • The schema name and table name cannot contain the following special characters: ".'<>
  • The column name cannot contain double quotation marks (") or single quotation marks (').

Source database

The source database is properly connected during the synchronization object check in the pre-check phase.

  • For an incremental synchronization task, the source database cannot be a standby database.
  • For a full synchronization task, the source database can be a standby database, and hot_standby_feedback must be set to on.

Before starting a task, ensure that the source database does not contain transactions that have been there for a long time without being submitted.

The SSL status of the source database is normal.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

Oracle->MySQL

Table 11 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

Full synchronization:

The user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, and SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser)

Full+incremental synchronization and incremental synchronization:

  • Oracle 12c or later in tenant mode:
    • To synchronize a container database (CDB) of Oracle 12c or later, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, and LOGMINING.
    • To synchronize a pluggable database (PDB) of Oracle 12c or later, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE and SELECT ANY TRANSACTION permissions for a PDB, and CREATE SESSION, SELECT ANY DICTIONARY, EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, LOGMINING and SET CONTAINER (GRANT SET CONTAINER TO <userName> CONTAINER=ALL) permissions for a CDB.
  • Oracle 12c or later in non-tenant mode:

    The user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, and LOGMINING.

  • To synchronize a database of Oracle 11g or earlier, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, and SELECT ANY TRANSACTION.

Destination database permissions

The user must have the SELECT, INSERT, CREATE, DROP, UPDATE, ALTER, DELETE and INDEX permissions.

MAINTAINED check of the source Oracle database user

Oracle 12c or later does not support incremental synchronization using accounts whose ORACLE_MAINTAINED is Y (except system/sys), because accounts with this attribute do not have the permissions to parse logs.

Versions

Source database versions

Versions 10g, 11g, 12c, 18c, 19c, and 21c are supported.

Destination database versions

Versions 5.5, 5.6, 5.7, and 8.0 are supported.

Incremental synchronization

Index column length

The index column length of the source database must meet requirements.

Compatibility with heterogeneous databases

  • The primary key or unique key column cannot contain data of the character string type when you map the MySQL data types to the character string data types in Oracle because MySQL cannot tell spaces in data. Otherwise, data inconsistency and deadlock may occur.
  • Ensure that the precision of the number(p, s) field in the Oracle database does not exceed the precision range p: [1, 38], s:[p-65, min(p, 30)]. The value of s depends on the value of p. The lower limit is p-65, and the upper limit is the minimum value of p or 30. For example, when p is 1, the value range of s is [-64, 1]. When p is 38, the value range of s is [-27, 30]. The value of the int field cannot exceed the precision range of (65, 0). The digit range of MySQL is smaller than that of Oracle.

Virtual columns

The source database cannot contain virtual columns.

Character set compatibility check

The character set of the destination database must be fully compatible with that of the source database.

Archive logs and supplementary logs

During incremental synchronization, enable PK, UI, or ALL supplemental logging for the source Oracle database at the database level or table level. If supplemental logging is enabled at table level, enable supplemental logging again after you rebuild or rename tables. During the synchronization, ensure that the preceding settings are always enabled.

Destination database

Status

The destination DB instance is running properly.

Source database

Physical standby database check

During the incremental synchronization, if the source database is a physical standby Oracle database, data of the LOB type cannot be parsed (the data dictionary cannot be generated). If the table to be synchronized contains data of the LOB type, the incremental synchronization will fail.

Synchronization objects

Selected objects

  • Table-level synchronization is supported.
  • Databases, table structures, primary keys, unique keys, normal indexes, and table data can be synchronized. Other database objects, such as stored procedures, triggers, functions, sequences, packages, synonyms, and users, cannot be synchronized.

Table structures

The table structure of the source database must be the same as that of the destination database.

Table field types

Check whether the source database contains unsupported table field types. The following table field types are supported: VARCHAR, VARCHAR2, NVARCHAR2, NUMBER, FLOAT, LONG, DATE, BINARY_FLOAT, BINARY_DOUBLE, RAW, LONG RAW, CHAR, NCHAR, CLOB, NCLOB, BLOB, ROWID, TIMESTAMP, TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE.

Collation check

The primary key or unique key in the destination database contains a collation ending with _ci. The collation ending with _ci is case insensitive, so an error indicating duplicate keys may be reported during synchronization.

Tables without primary keys

The table without a primary key lacks a unique identifier for rows. When the network is unstable, you may need to retry the task several times, or data inconsistency may occur.

Data constraints

During data transmission, data written to the destination database may fail or be lost because the data fails the constraint check.

Character sets

Only the following character sets are supported for the source database: ZHS16GBK, AL32UTF8, UTF8, US7ASCII, WE8MSWIN1252, WE8ISO8859P1, WE8ISO8859P2, WE8ISO8859P4, WE8ISO8859P5, WE8ISO8859P7, WE8ISO8859P9, WE8ISO8859P13, WE8ISO8859P15.

Duplicate names

Object names will be converted to lowercase letters after being synchronized to the destination database. To avoid synchronization failures, ensure that the selected source database tables do not contain tables with the same name but different letter cases.

Database table naming rules

  • Database object names, such as the database name and table name, support English characters and symbols such as #, $, and _. DRS does not support non-ASCII characters or the following special characters: .>`<'\,|?!"
  • The source database name or mapped name cannot start with ib_logfile or be ib_buffer_pool, ib_doublewrite, ibdata1 or ibtmp1.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

Oracle->GaussDB(for MySQL)

Table 12 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

Full synchronization:

The user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, and SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser)

Full+Incremental synchronization:

  • Oracle 12c or later in tenant mode:
    • To synchronize a container database (CDB) of Oracle 12c or later, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, and LOGMINING.
    • To synchronize a pluggable database (PDB) of Oracle 12c or later, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE and SELECT ANY TRANSACTION permissions for a PDB, and CREATE SESSION, SELECT ANY DICTIONARY, EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, LOGMINING and SET CONTAINER (GRANT SET CONTAINER TO <userName> CONTAINER=ALL) permissions for a CDB.
  • Oracle 12c or later in non-tenant mode:

    The user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, and LOGMINING.

  • To synchronize a database of Oracle 11g or earlier, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, and SELECT ANY TRANSACTION.
  • Oracle 12c or later does not support incremental synchronization using accounts whose ORACLE_MAINTAINED is Y (except system/sys), because accounts with this attribute do not have the permissions to parse logs.

Destination database permissions

The user must have the following permissions: SELECT, CREATE, DROP, DELETE, INSERT, UPDATE, ALTER, INDEX, EVENT, RELOAD, CREATE VIEW, CREATE ROUTINE and TRIGGER.

Versions

Source database versions

Versions 10g, 11g, 12c, 18c, 19c, and 21c are supported.

Destination database versions

Version 8.0 is supported.

Incremental synchronization

Index column length

The index column length of the source database must meet requirements.

Compatibility with heterogeneous databases

  • The primary key or unique key column cannot contain data of the character string type when you map the MySQL data types to the character string data types in Oracle because MySQL cannot tell spaces in data. Otherwise, data inconsistency and deadlock may occur.
  • Ensure that the precision of the number(p, s) field in the Oracle database does not exceed the precision range p: [1, 38], s:[p-65, min(p, 30)]. The value of s depends on the value of p. The lower limit is p-65, and the upper limit is the minimum value of p or 30. For example, when p is 1, the value range of s is [-64, 1]. When p is 38, the value range of s is [-27, 30]. The value of the int field cannot exceed the precision range of (65, 0). The digit range of MySQL is smaller than that of Oracle.

Virtual columns

The source database cannot contain virtual columns.

Archive logs and supplementary logs

During incremental synchronization, enable PK, UI, or ALL supplemental logging for the source Oracle database at the database level or table level. If supplemental logging is enabled at table level, enable supplemental logging again after you rebuild or rename tables. During the synchronization, ensure that the preceding settings are always enabled.

Destination database

Status

The destination DB instance is running properly.

Source database

Physical standby database check

During the incremental synchronization, if the source database is a physical standby Oracle database, data of the LOB type cannot be parsed (the data dictionary cannot be generated). If the table to be synchronized contains data of the LOB type, the incremental synchronization will fail.

Synchronization objects

Selected objects

Databases, table structures, primary keys, unique keys, normal indexes, and table data can be synchronized. Other database objects, such as stored procedures, triggers, functions, sequences, packages, synonyms, and users, cannot be synchronized.

Table field types

Check whether the source database contains unsupported table field types. The following table field types are supported: VARCHAR, VARCHAR2, NVARCHAR2, NUMBER, FLOAT, LONG, DATE, BINARY_FLOAT, BINARY_DOUBLE, RAW, LONG RAW, CHAR, NCHAR, CLOB, NCLOB, BLOB, ROWID, TIMESTAMP, TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE.

Collation check

The primary key or unique key in the destination database contains a collation ending with _ci. The collation ending with _ci is case insensitive, so an error indicating duplicate keys may be reported during synchronization.

Tables without primary keys

The table without a primary key lacks a unique identifier for rows. When the network is unstable, you may need to retry the task several times, or data inconsistency may occur.

Data constraints

During data transmission, data written to the destination database may fail or be lost because the data fails the constraint check.

Character sets

Only the following character sets are supported for the source database: ZHS16GBK, AL32UTF8, UTF8, US7ASCII, WE8MSWIN1252, WE8ISO8859P1, WE8ISO8859P2, WE8ISO8859P4, WE8ISO8859P5, WE8ISO8859P7, WE8ISO8859P9, WE8ISO8859P13, WE8ISO8859P15.

Duplicate names

Object names will be converted to lowercase letters after being synchronized to the destination database. To avoid synchronization failures, ensure that the selected source database tables do not contain tables with the same name but different letter cases.

Database table naming rules

  • The names of databases and tables cannot contain non-ASCII characters or the following special characters: .>`<'\,|?!"
  • The source database name or mapped name cannot start with ib_logfile or be ib_buffer_pool, ib_doublewrite, ibdata1 or ibtmp1.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

Oracle -> GaussDB Primary/Standby

Table 13 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

Full synchronization:

The user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, and SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser)

Full+incremental synchronization and incremental synchronization:

  • Oracle 12c or later in tenant mode:
    • To synchronize a container database (CDB) of Oracle 12c or later, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, and LOGMINING.
    • To synchronize a pluggable database (PDB) of Oracle 12c or later, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE and SELECT ANY TRANSACTION permissions for a PDB, and CREATE SESSION, SELECT ANY DICTIONARY, EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, LOGMINING and SET CONTAINER (GRANT SET CONTAINER TO <userName> CONTAINER=ALL) permissions for a CDB.
  • Oracle 12c or later in non-tenant mode:

    The user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, and LOGMINING.

  • To synchronize a database of Oracle 11g or earlier, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, and SELECT ANY TRANSACTION.

Destination database permissions

  • Database-level permissions: Log in to the postgres base database as user root or user DATABASE with the Sysadmin role, and grant the CREATE and CONNECT permissions to user DATABASE.

    Statement: GRANT CREATE, CONNECT ON DATABASE <database> TO <user>

  • Schema-level permissions: Log in to the database as user root or user DATABASE with the Sysadmin role, or the owner of the database, and grant the CREATE and USAGE permissions of the schema to the user.

    Statement: GRANT CREATE, USAGE ON SCHEMA <schema> TO <user>

  • Table-level permissions: Log in to the database as user root or user DATABASE with the Sysadmin role, or the owner of the database, and grant the DML permission for tables in the schema to the user. (The SELECT permission is required only for tables without primary keys.)

    Statement for granting the DML permission on all tables in the schema: GRANT SELECT, UPDATE, INSERT, DELETE, INDEX, ALTER ON ALL TABLES IN SCHEMA <schema> TO <user>

    Statement for granting the DML permission on a specified table in the schema: GRANT SELECT, UPDATE, INSERT, DELETE, INDEX, ALTER ON TABLE <schema.table> TO <user>

  • If gs_loader is used to create system catalogs (such as public.pgxc_copy_error_log and public.gs_copy_summary) in the destination database, the all privilege permission is required for accessing the system catalogs.

MAINTAINED check of the source Oracle database user

Oracle 12c or later does not support incremental synchronization using accounts whose ORACLE_MAINTAINED is Y (except system/sys), because accounts with this attribute do not have the permissions to parse logs.

Versions

Source database versions

Versions 10g, 11g, 12c, 18c, 19c, and 21c are supported.

Destination database versions

1.0.0 and later versions are supported.

Incremental synchronization

Character set compatibility check

The character set of the destination database must be fully compatible with that of the source database.

Virtual columns

The source database cannot contain virtual columns.

Archive logs and supplementary logs

During incremental synchronization, enable PK, UI, or ALL supplemental logging for the source Oracle database at the database level or table level. If supplemental logging is enabled at table level, enable supplemental logging again after you rebuild or rename tables. During the synchronization, ensure that the preceding settings are always enabled.

Source database

Physical standby database check

During the incremental synchronization, if the source database is a physical standby Oracle database, data of the LOB type cannot be parsed (the data dictionary cannot be generated). If the table to be synchronized contains data of the LOB type, the incremental synchronization will fail.

Synchronization objects

Selected objects

  • During full synchronization, tables, common indexes, primary key and unique constraints, and data can be synchronized.
  • Tables can be synchronized in real time during incremental synchronization.

Whether the selected objects exist in the destination database

Check whether the destination database objects meet the synchronization requirements.

Foreign keys

Do not use foreign keys for tables during synchronization. Otherwise, the sequence of writing data to different tables may be inconsistent with that in the source database, which may trigger foreign key constraints and cause synchronization failures.

Table field types

Check whether the source database contains unsupported table field types. The following table field types are supported: VARCHAR, VARCHAR2, NVARCHAR2, NUMBER, FLOAT, LONG, DATE, BINARY_FLOAT, BINARY_DOUBLE, RAW, LONG RAW, CHAR, NCHAR, CLOB, NCLOB, BLOB, ROWID, TIMESTAMP, TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE.

Tables without primary keys

The table without a primary key lacks a unique identifier for rows. When the network is unstable, you may need to retry the task several times, or data inconsistency may occur.

Data constraints

During data transmission, data written to the destination database may fail or be lost because the data fails the constraint check.

Character sets

Only the following character sets are supported for the source database: ZHS16GBK, AL32UTF8, UTF8, US7ASCII, WE8MSWIN1252, WE8ISO8859P1, WE8ISO8859P2, WE8ISO8859P4, WE8ISO8859P5, WE8ISO8859P7, WE8ISO8859P9, WE8ISO8859P13, WE8ISO8859P15.

Database table naming rules

Database object names, such as the database name and table name, support English characters and symbols such as #, $, and _. DRS does not support non-ASCII characters or the following special characters: .>`<'\,|?!" Object names will be converted to lowercase letters after being synchronized to the destination database. To avoid synchronization failures, ensure that the selected source database tables do not contain tables with the same name but different letter cases.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

Oracle -> GaussDB Distributed

Table 14 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

Full synchronization:

The user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, and SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser)

Full+incremental synchronization and incremental synchronization:

  • Oracle 12c or later in tenant mode:
    • To synchronize a container database (CDB) of Oracle 12c or later, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, and LOGMINING.
    • To synchronize a pluggable database (PDB) of Oracle 12c or later, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE and SELECT ANY TRANSACTION permissions for a PDB, and CREATE SESSION, SELECT ANY DICTIONARY, EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, LOGMINING and SET CONTAINER (GRANT SET CONTAINER TO <userName> CONTAINER=ALL) permissions for a CDB.
  • Oracle 12c or later in non-tenant mode:

    The user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, and LOGMINING.

  • To synchronize a database of Oracle 11g or earlier, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, and SELECT ANY TRANSACTION.

Destination database permissions

  • Database-level permissions: Log in to the postgres base database as user root or user DATABASE with the Sysadmin role, and grant the CREATE and CONNECT permissions to user DATABASE.

    Statement: GRANT CREATE, CONNECT ON DATABASE <database> TO <user>

  • Schema-level permissions: Log in to the database as user root or user DATABASE with the Sysadmin role, or the owner of the database, and grant the CREATE and USAGE permissions of the schema to the user.

    Statement: GRANT CREATE, USAGE ON SCHEMA <schema> TO <user>

  • Table-level permissions: Log in to the database as user root or user DATABASE with the Sysadmin role, or the owner of the database, and grant the DML permission for tables in the schema to the user. (The SELECT permission is required only for tables without primary keys.)

    Statement for granting the DML permission on all tables in the schema: GRANT SELECT, UPDATE, INSERT, DELETE, INDEX, ALTER ON ALL TABLES IN SCHEMA <schema> TO <user>

    Statement for granting the DML permission on a specified table in the schema: GRANT SELECT, UPDATE, INSERT, DELETE, INDEX, ALTER ON TABLE <schema.table> TO <user>

  • If gs_loader is used to create system catalogs (such as public.pgxc_copy_error_log and public.gs_copy_summary) in the destination database, the all privilege permission is required for accessing the system catalogs.

MAINTAINED check of the source Oracle database user

Oracle 12c or later does not support incremental synchronization using accounts whose ORACLE_MAINTAINED is Y (except system/sys), because accounts with this attribute do not have the permissions to parse logs.

Versions

Source database versions

Versions 10g, 11g, 12c, 18c, 19c, and 21c are supported.

Destination database versions

1.0.0 and later versions are supported.

Incremental synchronization

Character set compatibility check

The character set of the destination database must be fully compatible with that of the source database.

Virtual columns

The source database cannot contain virtual columns.

Archive logs and supplementary logs

During incremental synchronization, enable PK, UI, or ALL supplemental logging for the source Oracle database at the database level or table level. If supplemental logging is enabled at table level, enable supplemental logging again after you rebuild or rename tables. During the synchronization, ensure that the preceding settings are always enabled.

Source database

Physical standby database check

During the incremental synchronization, if the source database is a physical standby Oracle database, data of the LOB type cannot be parsed (the data dictionary cannot be generated). If the table to be synchronized contains data of the LOB type, the incremental synchronization will fail.

Synchronization objects

Selected objects

  • During full synchronization, tables, common indexes, primary key and unique constraints, and data can be synchronized.
  • Tables can be synchronized in real time during incremental synchronization.

Whether the selected objects exist in the destination database

Check whether the destination database objects meet the synchronization requirements.

Foreign keys

Do not use foreign keys for tables during synchronization. Otherwise, the sequence of writing data to different tables may be inconsistent with that in the source database, which may trigger foreign key constraints and cause synchronization failures.

Table field types

Check whether the source database contains unsupported table field types. The following table field types are supported: VARCHAR, VARCHAR2, NVARCHAR2, NUMBER, FLOAT, LONG, DATE, BINARY_FLOAT, BINARY_DOUBLE, RAW, LONG RAW, CHAR, NCHAR, CLOB, NCLOB, BLOB, ROWID, TIMESTAMP, TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE.

Tables without primary keys

The table without a primary key lacks a unique identifier for rows. When the network is unstable, you may need to retry the task several times, or data inconsistency may occur.

Data constraints

During data transmission, data written to the destination database may fail or be lost because the data fails the constraint check.

Character sets

Only the following character sets are supported for the source database: ZHS16GBK, AL32UTF8, UTF8, US7ASCII, WE8MSWIN1252, WE8ISO8859P1, WE8ISO8859P2, WE8ISO8859P4, WE8ISO8859P5, WE8ISO8859P7, WE8ISO8859P9, WE8ISO8859P13, WE8ISO8859P15.

Database table naming rules

Database object names, such as the database name and table name, support English characters and symbols such as #, $, and _. DRS does not support non-ASCII characters or the following special characters: .>`<'\,|?!" Object names will be converted to lowercase letters after being synchronized to the destination database. To avoid synchronization failures, ensure that the selected source database tables do not contain tables with the same name but different letter cases.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

Oracle->DDM

Table 15 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

Full synchronization:

The user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, and SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser)

Full+Incremental synchronization:

  • Oracle 12c or later in tenant mode:
    • To synchronize a container database (CDB) of Oracle 12c or later, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, and LOGMINING.
    • To synchronize a pluggable database (PDB) of Oracle 12c or later, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE and SELECT ANY TRANSACTION permissions for a PDB, and CREATE SESSION, SELECT ANY DICTIONARY, EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, LOGMINING and SET CONTAINER (GRANT SET CONTAINER TO <userName> CONTAINER=ALL) permissions for a CDB.
  • Oracle 12c or later in non-tenant mode:

    The user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, and LOGMINING.

  • To synchronize a database of Oracle 11g or earlier, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, and SELECT ANY TRANSACTION.

Destination database permissions

The destination database user must have the following permissions: SELECT, CREATE, DROP, DELETE, INSERT, UPDATE, ALTER, INDEX, EVENT, RELOAD and CREATE VIEW

MAINTAINED check of the source Oracle database user

Oracle 12c or later does not support incremental synchronization using accounts whose ORACLE_MAINTAINED is Y (except system/sys), because accounts with this attribute do not have the permissions to parse logs.

Versions

Source database versions

Versions 10g, 11g, 12c, 18c, 19c, and 21c are supported.

Incremental synchronization

Character set compatibility check

The character set of the destination database must be fully compatible with that of the source database.

Virtual columns

The source database cannot contain virtual columns.

Archive logs and supplementary logs

During incremental synchronization, enable PK, UI, or ALL supplemental logging for the source Oracle database at the database level or table level. If supplemental logging is enabled at table level, enable supplemental logging again after you rebuild or rename tables. During the synchronization, ensure that the preceding settings are always enabled.

Source database

Physical standby database check

During the incremental synchronization, if the source database is a physical standby Oracle database, data of the LOB type cannot be parsed (the data dictionary cannot be generated). If the table to be synchronized contains data of the LOB type, the incremental synchronization will fail.

Synchronization objects

Selected objects

The source database data can be synchronized, but the source table structure and other objects cannot be synchronized.

Table structures

The redundant columns (columns that do not exist in the source database) of the destination database cannot contain not-null constraints. The not-null constraints will cause the migration to fail.

Table field types

Check whether the source database contains unsupported table field types. The following table field types are supported: VARCHAR, VARCHAR2, NVARCHAR2, NUMBER, FLOAT, LONG, DATE, BINARY_FLOAT, BINARY_DOUBLE, RAW, LONG RAW, CHAR, NCHAR, CLOB, NCLOB, BLOB, ROWID, TIMESTAMP, TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE.

Tables without primary keys

The table without a primary key lacks a unique identifier for rows. When the network is unstable, you may need to retry the task several times, or data inconsistency may occur.

Data constraints

During data transmission, data written to the destination database may fail or be lost because the data fails the constraint check.

Character sets

Only the following character sets are supported for the source database: ZHS16GBK, AL32UTF8, UTF8, US7ASCII, WE8MSWIN1252, WE8ISO8859P1, WE8ISO8859P2, WE8ISO8859P4, WE8ISO8859P5, WE8ISO8859P7, WE8ISO8859P9, WE8ISO8859P13, WE8ISO8859P15.

Database table naming rules

  • Tables whose names contain special characters except underscores (_) cannot be synchronized.
  • The source database name or mapped name cannot start with ib_logfile or be ib_buffer_pool, ib_doublewrite, ibdata1 or ibtmp1.
  • An empty source database cannot be synchronized.
  • Before synchronization, you must create databases, tables, columns, indexes, and constraints with the same names (in lowercase) as the corresponding source objects to be synchronized in the destination database.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

Oracle->PostgreSQL

Table 16 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

Full synchronization:

The user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, and SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser)

Full+Incremental synchronization:

  • Oracle 12c or later in tenant mode:
    • To synchronize a container database (CDB) of Oracle 12c or later, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, and LOGMINING.
    • To synchronize a pluggable database (PDB) of Oracle 12c or later, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE and SELECT ANY TRANSACTION permissions for a PDB, and CREATE SESSION, SELECT ANY DICTIONARY, EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, LOGMINING and SET CONTAINER (GRANT SET CONTAINER TO <userName> CONTAINER=ALL) permissions for a CDB.
  • Oracle 12c or later in non-tenant mode:

    The user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, SELECT ANY TRANSACTION, and LOGMINING.

  • To synchronize a database of Oracle 11g or earlier, the user must have the following permissions: CREATE SESSION, SELECT ANY DICTIONARY, SELECT for a single table (GRANT SELECT ON <userName.tbName> to drsUser), EXECUTE_CATALOG_ROLE, and SELECT ANY TRANSACTION.

Destination database permissions

The user must have the following permissions for a table: INSERT, SELECT, UPDATE, DELETE, CONNECT, CREATE, and REFERENCES.

MAINTAINED check of the source Oracle database user

Oracle 12c or later does not support incremental synchronization using accounts whose ORACLE_MAINTAINED is Y (except system/sys), because accounts with this attribute do not have the permissions to parse logs.

Versions

Source database versions

Versions 10g, 11g, 12c, 18c, 19c, and 21c are supported.

Destination database versions

Versions 9.5, 9.6, 10, 11, 12, 13, and 14 are supported.

Incremental synchronization

Compatibility with heterogeneous databases

Ensure that the columns that use character strings as primary keys or unique keys in the table to be migrated do not contain spaces. Otherwise, data may be inconsistent or the migration may fail.

Virtual columns

The source database cannot contain virtual columns.

Character set compatibility check

The character set of the destination database must be fully compatible with that of the source database.

Archive logs and supplementary logs

During incremental synchronization, enable PK, UI, or ALL supplemental logging for the source Oracle database at the database level or table level. If supplemental logging is enabled at table level, enable supplemental logging again after you rebuild or rename tables. During the synchronization, ensure that the preceding settings are always enabled.

Destination database

Status

The destination DB instance is running properly.

Storage space

The destination DB instance must have sufficient storage space.

Source database

Physical standby database check

During the incremental synchronization, if the source database is a physical standby Oracle database, data of the LOB type cannot be parsed (the data dictionary cannot be generated). If the table to be synchronized contains data of the LOB type, the incremental synchronization will fail.

Synchronization objects

Selected objects

  • Tables, indexes, and constraints (primary key, null, and non-null) can be synchronized.
  • Views, foreign keys, stored procedures, triggers, functions, events, and virtual columns cannot be synchronized.

Table field types

Check whether the source database contains unsupported table field types. The following table field types are supported: VARCHAR, VARCHAR2, NVARCHAR2, NUMBER, FLOAT, LONG, DATE, BINARY_FLOAT, BINARY_DOUBLE, RAW, LONG RAW, CHAR, NCHAR, CLOB, NCLOB, BLOB, ROWID, TIMESTAMP, TIMESTAMP WITH TIME ZONE and TIMESTAMP WITH LOCAL TIME ZONE.

Tables without primary keys

The table without a primary key lacks a unique identifier for rows. When the network is unstable, you may need to retry the task several times, or data inconsistency may occur.

Data constraints

During data transmission, data written to the destination database may fail or be lost because the data fails the constraint check.

Character sets

Only the following character sets are supported for the source database: ZHS16GBK, AL32UTF8, UTF8, US7ASCII, WE8MSWIN1252, WE8ISO8859P1, WE8ISO8859P2, WE8ISO8859P4, WE8ISO8859P5, WE8ISO8859P7, WE8ISO8859P9, WE8ISO8859P13, WE8ISO8859P15.

Log parsing permissions

If the source database user does not have the log parsing permission, the incremental migration will fail.

Duplicate names

Object names will be converted to lowercase letters after being synchronized to the destination database. To avoid synchronization failures, ensure that the selected source database tables do not contain tables with the same name but different letter cases.

Database table naming rules

The names of databases and tables cannot contain non-ASCII characters or the following special characters: .><\`|,?'!"

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

DDM->MySQL

Table 17 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

  • The user of the source DDM database must have at least one permission, for example, SELECT.
  • The DDM sharded database user must have the SELECT, SHOW VIEW, EVENT, LOCK TABLES, REPLICATION SLAVE and REPLICATION CLIENT permissions.

Destination database permissions

The user must have the SELECT, CREATE, ALTER, DROP, DELETE, INSERT and UPDATE permissions.

The root account of the RDS for MySQL DB instance has the preceding permissions by default.

Parameters

GTID status

Enable GTID for the source sharded database. If GTID is not enabled for the source sharded database, primary/standby switchover is not supported. DRS tasks will be interrupted and cannot be restored during a switchover.

Performance parameters

The binlog_row_image parameter of the source sharded database must be set to FULL. Otherwise, the synchronization will fail.

Incremental synchronization

Binlog status

During the incremental synchronization, the binlog of the source sharded database must be enabled.

Binlog format

The source sharded database binlog must be row-based.

server_id value

During an incremental synchronization, the server_id value of the source sharded database must be specified.

  • If the source sharded database version is MySQL 5.6 or earlier, the value of server_id ranges from 2 to 4294967296.
  • If the source sharded database version is MySQL 5.7 or later, the value of server_id ranges from 1 to 4294967296.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

Consistency

Character set

The character set of the destination database must be the same as that of the source database.

Case sensitive

The lower_case_table_names value of the destination database must be the same as that of the source database.

Maximum length of the calculation result of the group_concat function

The group_concat_max_len value of the destination database must be the same as that of the source database.

Data block encryption parameter

The block_encryption_mode value of the destination database must be the same as that of the source database.

Synchronization objects

Selected objects

  • Full synchronization supports the synchronization of data, table structures, and indexes.
  • The source database cannot contain tables whose sharding keys are of the timestamp type.

During database name mapping, if the objects to be synchronized contain stored procedures, views, and functions, these objects cannot be synchronized in the full synchronization phase, or it will result in inconsistent objects.

Tables without primary keys

Create primary keys for tables as the performance of a table without a primary key is lower than that of a table with a primary key.

Database table naming rules

The database names and table names of the source sharding middleware cannot contain non-ASCII characters and the following characters: '<>/\

SSL

SSL configuration

If you enable SSL, the SSL connections for both the source and destination databases are correctly configured.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

DDM->GaussDB(DWS)

Table 18 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

  • The user of the source DDM database must have at least one permission, for example, SELECT.
  • The DDM sharded database user must have the SELECT, SHOW VIEW, EVENT, LOCK TABLES, REPLICATION SLAVE and REPLICATION CLIENT permissions.

Destination database permissions

The destination database user must have the following permissions: INSERT, SELECT, UPDATE, DELETE, CONNECT, and CREATE.

Parameters

GTID status

Enable GTID for the source sharded database. If GTID is not enabled for the source sharded database, primary/standby switchover is not supported. DRS tasks will be interrupted and cannot be restored during a switchover.

Performance parameters

The binlog_row_image parameter of the source sharded database must be set to FULL. Otherwise, the synchronization will fail.

Incremental synchronization

Binlog status

During the incremental synchronization, the binlog of the source sharded database must be enabled.

Binlog format

The source sharded database binlog must be row-based.

server_id value

During an incremental synchronization, the server_id value of the source sharded database must be specified.

  • If the source sharded database version is MySQL 5.6 or earlier, the value of server_id ranges from 2 to 4294967296.
  • If the source sharded database version is MySQL 5.7 or later, the value of server_id ranges from 1 to 4294967296.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

Consistency

Character set

The character set of the destination database must be the same as that of the source database.

Case sensitive

The lower_case_table_names value of the destination database must be the same as that of the source database.

Maximum length of the calculation result of the group_concat function

The group_concat_max_len value of the destination database must be the same as that of the source database.

Data block encryption parameter

The block_encryption_mode value of the destination database must be the same as that of the source database.

Synchronization objects

Selected objects

  • Full synchronization supports the synchronization of data, table structures, and common indexes (B-Tree indexes).
  • The destination database does not support tables with unique keys. During synchronization, the tables with unique keys in the source database are ignored.
  • A table without a primary key cannot be synchronized. If the selected table does not have a primary key, the synchronization fails.
  • Unique constraints and indexes cannot be synchronized.
  • A user-defined table that has no primary key and is a partitioned table cannot be synchronized. Otherwise, the task may fail.
  • The column name of the synchronization object cannot be a field forbidden by GaussDB(DWS), such as CTID, XMIN, CMIN, XMAX, CMAX, TABLEOID, XC_NODE_ID and TID. Otherwise, the task fails.

During database name mapping, if the objects to be synchronized contain stored procedures, views, and functions, these objects cannot be synchronized in the full synchronization phase, or it will result in inconsistent objects.

Tables without primary keys

Create primary keys for tables as the performance of a table without a primary key is lower than that of a table with a primary key.

Database table naming rules

The database names and table names of the source sharding middleware cannot contain non-ASCII characters and the following characters: '<>/\

SSL

SSL configuration

If you enable SSL, the SSL connections for both the source and destination databases are correctly configured.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

DDM->DDM

Table 19 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

  • The user of the source DDM database must have at least one permission, for example, SELECT.
  • The DDM sharded database user must have the SELECT, SHOW VIEW, EVENT, LOCK TABLES, REPLICATION SLAVE and REPLICATION CLIENT permissions.

Destination database permissions

The user must have the following permissions: CREATE, DROP, ALTER, INDEX, INSERT, DELETE, UPDATE, and SELECT. In addition, grant the SELECT permission on all tables. The DDM destination database user must have permissions on the database to be synchronized.

Parameters

GTID status

Enable GTID for the source sharded database. If GTID is not enabled for the source sharded database, primary/standby switchover is not supported. DRS tasks will be interrupted and cannot be restored during a switchover.

Performance parameters

The binlog_row_image parameter of the source sharded database must be set to FULL. Otherwise, the synchronization will fail.

Incremental synchronization

Binlog status

During the incremental synchronization, the binlog of the source sharded database must be enabled.

Binlog format

The source sharded database binlog must be row-based.

server_id value

During an incremental synchronization, the server_id value of the source sharded database must be specified.

  • If the source sharded database version is MySQL 5.6 or earlier, the value of server_id ranges from 2 to 4294967296.
  • If the source sharded database version is MySQL 5.7 or later, the value of server_id ranges from 1 to 4294967296.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

Consistency

Character set

The character set of the destination database must be the same as that of the source database.

Case sensitive

The lower_case_table_names value of the destination database must be the same as that of the source database.

Maximum length of the calculation result of the group_concat function

The group_concat_max_len value of the destination database must be the same as that of the source database.

Data block encryption parameter

The block_encryption_mode value of the destination database must be the same as that of the source database.

Synchronization objects

Selected objects

  • Full synchronization supports the synchronization of data, table structures, and indexes.
  • Only MyISAM and InnoDB tables can be synchronized.
  • The source database cannot contain tables whose sharding keys are of the timestamp type.

During database name mapping, if the objects to be synchronized contain stored procedures, views, and functions, these objects cannot be synchronized in the full synchronization phase, or it will result in inconsistent objects.

Tables without primary keys

Create primary keys for tables as the performance of a table without a primary key is lower than that of a table with a primary key.

Database table naming rules

The database names and table names of the source sharding middleware cannot contain non-ASCII characters and the following characters: '<>/\

SSL

SSL configuration

If you enable SSL, the SSL connections for both the source and destination databases are correctly configured.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

Microsoft SQL Server->GaussDB(DWS)

Table 20 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

Sysadmin or view server state and db_datareader or db_owner permissions for databases to be synchronized

Destination database permissions

  • If the destination instance does not contain the database to be synchronized, the CREATEDB permission is required.
  • If the destination instance contains databases but does not have schemas, the CONNECT and CREATE permissions for the databases are required.
  • If the destination instance contains databases and schemas but does not contain tables, the CONNECT permission for databases and the USAGE and CREATE permissions for schemas are required.
  • If the destination instance contains databases, schemas, and tables, the CONNECT permission for databases, the USAGE permission for schemas, and the INSERT, UPDATE, DELETE, SELECT, ALTER, REFERENCES, and INDEX permissions for tables are required.

Versions

Source database versions

  • On-premises Microsoft SQL Server (Enterprise Edition 2012, 2014, 2016, 2017 and 2019 and Standard Edition 2016 SP2 or later, 2017, and 2019)
  • ECS-hosted Microsoft SQL Server (Enterprise Edition 2012, 2014, 2016, 2017 and 2019 and Standard Edition 2016 SP2 or later, 2017, and 2019)
  • Microsoft SQL Server on other clouds (Enterprise Edition 2012, 2014, 2016, 2017 and 2019 and Standard Edition 2016 SP2 or later, 2017, and 2019)
  • RDS for SQL Server (Enterprise Edition 2012, 2014, 2016, 2017 and 2019 and Standard Edition 2016 SP2 or later, 2017, and 2019)

Destination database versions

Versions 8.1.3 and 8.2.0 are supported.

Incremental synchronization

CDC enabling

Incremental synchronization of the source SQL Server database is based on the CDC capability provided by the SQL Server database. If CDC of the source SQL Server database is abnormal (for example, CDC is disabled or the transaction log is full), incremental synchronization will be affected.

CDC data retention

If the CDC data is retained less than one day in the source database, incremental synchronization will be abnormal. Change the retention period to 1440 minutes (one day) or longer. The recommended value is 4320 minutes (three days).

Consistency

Computer names

The computer names of the source and destination databases must be different.

Synchronization objects

Selected objects

  • Table structures, data, and indexes of selected tables can be synchronized.
  • The number of tables selected for the synchronization object cannot exceed 1000. If there are more than 1000 tables, you are advised to synchronize them in batches. (Create a new task after the synchronization task is complete.)
  • Column encryption is not supported.
  • Auto-increment columns cannot be synchronized.
  • Supported field types

    TINYINT, SMALLINT, INT, BIGINT, DECIMAL, NUMERIC, FLOAT, REAL, SMALLMONEY, MONEY, BIT, DATE, DATETIME, DATETIME2, DATETIMEOFFSET, TIME, TIMESTAMP, XML, CHAR, VARCHAR, NCHAR, NVARCHAR, BINARY, VARBINARY, IMAGE, HIERARCHYID, NTEXT, TEXT, and UNIQUEIDENTIFIER

  • Unsupported field types: SQL_VARIANT, GEOMETRY, and GEOGRAPHY

Database table naming rules

  • Names of the databases, schemas, and tables to be synchronized in the source database can contain a maximum of 64 characters, including only letters, digits, underscores (_), and hyphens (-).
  • Names of the columns in the source table cannot contain the following special characters: []?
  • The source database cannot contain the username cdc or schema.
  • The column name of the synchronization object cannot be a field forbidden by GaussDB(DWS), such as CTID, XMIN, CMIN, XMAX, CMAX, TABLEOID, XC_NODE_ID and TID. Otherwise, the task fails.

Tables without primary keys

Create primary keys for tables as the performance of a table without a primary key is lower than that of a table with a primary key.

Duplicate names

The destination database cannot contain objects with the same name as those in the source database (except SQL Server system databases).

Source database

The selected synchronization object must exist in the source database.

The source database cannot be empty.

The recovery model of the source database must be set to FULL.

SQL Server Agent must be enabled for the source database.

If the source database contains disabled clustered indexes of tables, the synchronization fails.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

Microsoft SQL Server -> GaussDB Primary/Standby

Table 21 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

  • Full synchronization requires the following minimum permissions:

    Sysadmin permission; DB_DATAREADER or DB_OWNER permission for a database to be synchronized

  • Full+incremental synchronization and incremental synchronization require the following minimum permissions:

    Sysadmin or view server state and db_datareader or db_owner permissions for databases to be synchronized

Destination database permissions

  • Database-level permissions: Log in to a Postgres database as the root user or the DATABASE user with the sysadmin role. Grant the CREATE and CONNECT permissions to the DATABASE user.
  • Schema-level permissions: Log in to the database as the root user, the DATABASE user with the sysadmin role, or the owner of the database. Grant the CREATE and USAGE permissions on schemas to the user.
  • Table-level permissions: Log in to the database as the root user, the DATABASE user with the sysadmin role, or the owner of the database. Grant the SELECT, UPDATE, INSERT, and DELETE permissions on all tables in the schema to the user.
  • If gs_loader is used to create system catalogs (such as public.pgxc_copy_error_log and public.gs_copy_summary) in the destination database, the all privilege permission is required for accessing the system catalogs.

Versions

Source database versions

  • On-premises Microsoft SQL Server (Enterprise Edition 2012, 2014, 2016, 2017 and 2019 and Standard Edition 2016 SP2 or later, 2017, and 2019)
  • ECS-hosted Microsoft SQL Server (Enterprise Edition 2012, 2014, 2016, 2017 and 2019 and Standard Edition 2016 SP2 or later, 2017, and 2019)
  • Microsoft SQL Server on other clouds (Enterprise Edition 2012, 2014, 2016, 2017 and 2019 and Standard Edition 2016 SP2 or later, 2017, and 2019)
  • RDS for SQL Server (Enterprise Edition 2012, 2014, 2016, 2017 and 2019 and Standard Edition 2016 SP2 or later, 2017, and 2019)

Destination database versions

Version 1.1.0 or later

Incremental synchronization

CDC enabling

Incremental synchronization of the source SQL Server database is based on the CDC capability provided by the SQL Server database. If CDC of the source SQL Server database is abnormal (for example, CDC is disabled or the transaction log is full), incremental synchronization will be affected.

CDC data retention

If the CDC data is retained less than one day in the source database, incremental synchronization will be abnormal. Change the retention period to 1440 minutes (one day) or longer. The recommended value is 4320 minutes (three days).

Consistency

Computer names

The computer names of the source and destination databases must be different.

Synchronization objects

Selected objects

  • Table structures, data, and indexes of selected tables can be synchronized.
  • The number of tables selected for the synchronization object cannot exceed 1000. If there are more than 1000 tables, you are advised to synchronize them in batches. (Create a new task after the synchronization task is complete.)
  • Column encryption is not supported.
  • Auto-increment columns cannot be synchronized.
  • Supported field types

    TINYINT, SMALLINT, INT, BIGINT, DECIMAL, NUMERIC, FLOAT, REAL, SMALLMONEY, MONEY, BIT, DATE, DATETIME, DATETIME2, DATETIMEOFFSET, TIME, TIMESTAMP, XML, CHAR, VARCHAR, NCHAR, NVARCHAR, BINARY, VARBINARY, IMAGE, HIERARCHYID, NTEXT, TEXT, and UNIQUEIDENTIFIER

  • Unsupported field types: SQL_VARIANT, GEOMETRY, and GEOGRAPHY

Database table naming rules

  • Names of the databases, schemas, and tables to be synchronized in the source database can contain a maximum of 64 characters, including only letters, digits, underscores (_), and hyphens (-).
  • Names of the columns in the source table cannot contain the following special characters: []?
  • The source database cannot contain the username cdc or schema.
  • The column name of the synchronization object cannot be a field forbidden by GaussDB(DWS), such as CTID, XMIN, CMIN, XMAX, CMAX, TABLEOID, XC_NODE_ID and TID. Otherwise, the task fails.

Tables without primary keys

Create primary keys for tables as the performance of a table without a primary key is lower than that of a table with a primary key.

Duplicate names

The destination database cannot contain objects with the same name as those in the source database (except SQL Server system databases).

Source database

The selected synchronization object must exist in the source database.

The source database cannot be empty.

The recovery model of the source database must be set to FULL.

SQL Server Agent must be enabled for the source database.

If the source database contains disabled clustered indexes of tables, the synchronization fails.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

Microsoft SQL Server -> GaussDB Distributed

Table 22 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

  • Full synchronization requires the following minimum permissions:

    Sysadmin permission; DB_DATAREADER or DB_OWNER permission for a database to be synchronized

  • Full+incremental synchronization and incremental synchronization require the following minimum permissions:

    Sysadmin or view server state and db_datareader or db_owner permissions for databases to be synchronized

Destination database permissions

  • Database-level permissions: Log in to a Postgres database as the root user or the DATABASE user with the sysadmin role. Grant the CREATE and CONNECT permissions to the DATABASE user.
  • Schema-level permissions: Log in to the database as the root user, the DATABASE user with the sysadmin role, or the owner of the database. Grant the CREATE and USAGE permissions on schemas to the user.
  • Table-level permissions: Log in to the database as the root user, the DATABASE user with the sysadmin role, or the owner of the database. Grant the SELECT, UPDATE, INSERT, and DELETE permissions on all tables in the schema to the user.
  • If gs_loader is used to create system catalogs (such as public.pgxc_copy_error_log and public.gs_copy_summary) in the destination database, the all privilege permission is required for accessing the system catalogs.

Versions

Source database versions

  • On-premises Microsoft SQL Server (Enterprise Edition 2012, 2014, 2016, 2017 and 2019 and Standard Edition 2016 SP2 or later, 2017, and 2019)
  • ECS-hosted Microsoft SQL Server (Enterprise Edition 2012, 2014, 2016, 2017 and 2019 and Standard Edition 2016 SP2 or later, 2017, and 2019)
  • Microsoft SQL Server on other clouds (Enterprise Edition 2012, 2014, 2016, 2017 and 2019 and Standard Edition 2016 SP2 or later, 2017, and 2019)
  • RDS for SQL Server (Enterprise Edition 2012, 2014, 2016, 2017 and 2019 and Standard Edition 2016 SP2 or later, 2017, and 2019)

Destination database versions

Version 1.1.0 or later

Incremental synchronization

CDC enabling

Incremental synchronization of the source SQL Server database is based on the CDC capability provided by the SQL Server database. If CDC of the source SQL Server database is abnormal (for example, CDC is disabled or the transaction log is full), incremental synchronization will be affected.

CDC data retention

If the CDC data is retained less than one day in the source database, incremental synchronization will be abnormal. Change the retention period to 1440 minutes (one day) or longer. The recommended value is 4320 minutes (three days).

Consistency

Computer names

The computer names of the source and destination databases must be different.

Synchronization objects

Selected objects

  • Table structures, data, and indexes of selected tables can be synchronized.
  • The number of tables selected for the synchronization object cannot exceed 1000. If there are more than 1000 tables, you are advised to synchronize them in batches. (Create a new task after the synchronization task is complete.)
  • Column encryption is not supported.
  • Auto-increment columns cannot be synchronized.
  • Supported field types

    TINYINT, SMALLINT, INT, BIGINT, DECIMAL, NUMERIC, FLOAT, REAL, SMALLMONEY, MONEY, BIT, DATE, DATETIME, DATETIME2, DATETIMEOFFSET, TIME, TIMESTAMP, XML, CHAR, VARCHAR, NCHAR, NVARCHAR, BINARY, VARBINARY, IMAGE, HIERARCHYID, NTEXT, TEXT, and UNIQUEIDENTIFIER

  • Unsupported field types: SQL_VARIANT, GEOMETRY, and GEOGRAPHY

Database table naming rules

  • Names of the databases, schemas, and tables to be synchronized in the source database can contain a maximum of 64 characters, including only letters, digits, underscores (_), and hyphens (-).
  • Names of the columns in the source table cannot contain the following special characters: []?
  • The source database cannot contain the username cdc or schema.
  • The column name of the synchronization object cannot be a field forbidden by GaussDB(DWS), such as CTID, XMIN, CMIN, XMAX, CMAX, TABLEOID, XC_NODE_ID and TID. Otherwise, the task fails.

Tables without primary keys

Create primary keys for tables as the performance of a table without a primary key is lower than that of a table with a primary key.

Duplicate names

The destination database cannot contain objects with the same name as those in the source database (except SQL Server system databases).

Source database

The selected synchronization object must exist in the source database.

The source database cannot be empty.

The recovery model of the source database must be set to FULL.

SQL Server Agent must be enabled for the source database.

If the source database contains disabled clustered indexes of tables, the synchronization fails.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

MongoDB->DDS

Table 23 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

Replica set: The source database user must have the readAnyDatabase permission for the admin database and the read permission for the local database.

Destination database permissions

The destination database user must have the dbAdminAnyDatabase permission for the admin database and the readWrite permission for the destination database.

Versions

Source database versions

  • Self-managed MongoDB (versions 3.2, 3.4, 3.6, 4.0, 4.2, and 4.4)
  • Other cloud MongoDB (versions 3.2, 3.4, 3.6, 4.0, 4.2, and 4.4)
  • DDS (versions 3.2, 3.4, 4.0, 4.2 and 4.4)
    NOTE:

    The source database cannot be a GeminiDB Mongo instance.

Destination database versions

DDS (versions 3.4, 4.0, 4.2 and 4.4)

Synchronization version

The destination database version must be the same as or later than the source database version.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

Status

The destination DB instance is running properly. If the destination DB instance type is primary/standby, the replication status must also be normal.

Maximum number of chunks

Check whether the maximum number of chunks in the destination database is sufficient to support sharding and splitting of the source database. If the maximum number of chunks is reached, chunks are not split and the write performance is negatively affected.

Synchronization objects

Selected objects

  • Replica set: Only collections (including validator and capped and non-capped collections), indexes, and views can be synchronized.
  • System databases (such as local, admin, and config) and system collections cannot be synchronized. If service data is in a system database, run renameCollection to move the service data to the user database.
  • The statement for creating a view cannot contain a regular expression.
  • Collections that contain the _id field without indexes are not supported.
  • The first parameter of BinData() cannot be 2.
  • If the source is a cluster instance of version 4.4, composite hash indexes and composite hash shard keys are not supported.
  • If the source is a replica set instance of version 4.4, composite hash indexes are not supported.

Object dependencies

If the roles referenced by accounts to be migrated are not migrated to the destination database, the migration may fail.

Associated objects

Associated objects must be synchronized at the same time to avoid synchronization failure due to missing associated objects. Common dependencies: collections referenced by views, and views referenced by views

Database table naming rules

  • The source database name cannot contain /\."$ or spaces.
  • The collection or view name in the source database cannot start with system. or contain the dollar sign ($).
  • The mapped synchronization object name can contain 1 to 63 characters. The following characters are not allowed: /\."$<>.
  • Do not store non-UTF-8 character strings in the String field of the source database collection. Otherwise, data will be inconsistent before and after the synchronization.

Source database

The source database is properly connected during the synchronization object check in the pre-check phase.

If a Time-to-Live (TTL) index already exists in the collection of the source database or is created during an incremental synchronization, data consistency cannot be ensured when source and destination databases are in different time zones or clocks.

The source database cannot be empty.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

MariaDB->MariaDB

Table 24 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

SELECT, SHOW VIEW, EVENT, LOCK TABLES, RELOAD, REPLICATION SLAVE, REPLICATION CLIENT (or BINLOG MONIOTOR, changed to this permission in MariaDB 10.5 and later versions)

Destination database permissions

The root account of RDS for MariaDB has the following permissions by default: SELECT, CREATE, DROP, DELETE, INSERT, UPDATE, ALTER, CREATE VIEW, CREATE ROUTINE, REFERENCES, and INDEX

Versions

Source database versions

Versions 10.3, 10.4, and 10.5 are supported.

Destination database versions

Version 10.5 is supported.

Synchronization version

The destination database version must be the same as or later than the source database version.

Parameters

Performance parameters

The log_slave_updates parameter of the source database must be enabled. Otherwise, the synchronization will fail.

The binlog_row_image parameter of the source database must be set to FULL. Otherwise, the synchronization will fail.

Maximum size of a packet that can be transmitted

During synchronization, a large amount of data is written to the destination database. If the value of the max_allowed_packet parameter of the destination database is too small, data cannot be written. You are advised to set the max_allowed_packet parameter to a value greater than 100 MB.

sql_mode value

If the MyISAM tables are included in the synchronization objects, the sql_mode parameter in the destination database cannot contain the no_engine_substitution parameter. Otherwise, the synchronization fails.

Incremental synchronization

Binlog status

During the incremental synchronization, the binlog of the source database must be enabled.

Binlog format

The source database binlog must be row-based.

Binlog retention period

If the storage space is sufficient, store the source database binlog files as long as possible. The recommended retention period is three days. If you set the period to 0, the synchronization may fail.

server_id value

During an incremental synchronization, the server_id parameter of the source MariaDB database must be set to a value ranging from 1 to 4294967296.

Table fields

If there is a table containing fields of the longtext or longblob type in the synchronization object, you are advised to create a DRS task with large specifications. Otherwise, capture OOM may occur.

Index column length

The index column length of the source database must meet requirements.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

Status

The destination DB instance is running properly. If the destination DB instance type is primary/standby, the replication status must also be normal.

Consistency

Character set

The character set of the destination database must be the same as that of the source database.

Collation

The collation_server value of the destination database must be the same as that of the source database.

Case sensitive

The lower_case_table_names value of the destination database must be the same as that of the source database.

Maximum length of the calculation result of the group_concat function

The group_concat_max_len value of the destination database must be the same as that of the source database.

InnoDB check mode

The innodb_strict_mode value of the destination database must be the same as that of the source database.

SQL mode

The sql_mode value of the destination database must be the same as that of the source database.

Synchronization objects

Selected objects

  • Tables, primary key indexes, unique indexes, common indexes, stored procedures, views, and functions can be synchronized.
  • Only MyISAM and InnoDB tables can be synchronized.
  • Events and triggers cannot be synchronized.
  • Table names cannot be mapped for tables on which views, stored procedures, and functions depend.
  • When table name mapping is used in a synchronization task, foreign key constraints of the table cannot be synchronized.
  • During database name mapping, if the objects to be synchronized contain stored procedures, views, and functions, these objects cannot be synchronized in the full synchronization phase, or it will result in inconsistent objects.

Tables without primary keys

Create primary keys for tables as the performance of a table without a primary key is lower than that of a table with a primary key.

Associated objects

Objects that have dependencies must be synchronized at the same time to avoid synchronization failure. Common dependencies: tables referenced by views, views referenced by views, views and tables referenced by stored procedures/functions/triggers, and tables referenced by primary and foreign keys

Encrypted table check

Whether the source database contains encrypted tables.

Duplicate names

If the destination database (excluding the system database) has the same name as the source database, the table structures in the destination database must be consistent with those in the source database.

Database table naming rules

  • The source database names cannot contain non-ASCII characters, or the following characters: '<`>/\"
  • The source table and view names cannot contain non-ASCII characters, or the following characters: '<>/\"
  • The source database name or mapped name cannot start with ib_logfile or be ib_buffer_pool, ib_doublewrite, ibdata1 or ibtmp1.
  • The source database names mapped to the destination database cannot contain the following characters: dots (.), angle brackets (<>), backslash (\), and single quotation marks (')
  • If the database table name contains characters other than letters, digits, and underscores (_), or the mapped database table name contains hyphens (-) and number signs (#), the name length cannot exceed 42 characters.

Source database

The source database is properly connected during the synchronization object check in the pre-check phase.

SSL

SSL configuration

If you enable SSL, the SSL connections for both the source and destination databases are correctly configured.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.

GaussDB(for MySQL)->GaussDB(for MySQL)

Table 25 Pre-check items

Category

Check Item

Check Item Details

Permissions

Source database permissions

SELECT, SHOW VIEW, EVENT, LOCK TABLES, REPLICATION SLAVE, and REPLICATION CLIENT

Destination database permissions

The root account of GaussDB(for MySQL) has the following permissions by default: SELECT, CREATE, DROP, DELETE, INSERT, UPDATE, ALTER, CREATE VIEW, CREATE ROUTINE, and REFERENCES

If the destination database version is in the range 8.0.14 to 8.0.18, the SESSION_VARIABLES_ADMIN permission is required.

Versions

Source database versions

Version 8.0 is supported.

Destination database versions

Version 8.0 is supported.

Synchronization version

The destination database version must be the same as or later than the source database version.

Parameters

GTID status

Enable GTID for the source database. If GTID is not enabled for the source database, primary/standby switchover is not supported. DRS tasks will be interrupted and cannot be restored during a switchover.

Performance parameters

The log_slave_updates parameter of the source database must be enabled. Otherwise, the synchronization will fail.

The binlog_row_image parameter of the source database must be set to FULL. Otherwise, the synchronization will fail.

Maximum size of a packet that can be transmitted

During synchronization, a large amount of data is written to the destination database. If the value of the max_allowed_packet parameter of the destination database is too small, data cannot be written. You are advised to set the max_allowed_packet parameter to a value greater than 100 MB.

If there is a lot of data to be synchronized or there are too many fields to be synchronized, and the max_allowed_packet value of the source database is too small, the synchronization task may fail.

sql_mode value

If the MyISAM tables are included in the synchronization objects, the sql_mode parameter in the destination database cannot contain the no_engine_substitution parameter. Otherwise, the synchronization fails.

Incremental synchronization

Binlog status

During the incremental synchronization, the binlog of the source database must be enabled.

Binlog format

The source database binlog must be row-based.

Binlog retention period

If the storage space is sufficient, store the source database binlog files as long as possible. The recommended retention period is three days. If you set the period to 0, the synchronization may fail.

server_id value

During an incremental synchronization, the server_id parameter of the source database must be set to a value ranging from 1 to 4294967296.

Table fields

If there is a table containing fields of the longtext or longblob type in the synchronization object, you are advised to create a DRS task with large specifications. Otherwise, capture OOM may occur.

Index column length

The index column length of the source database must meet requirements.

Destination database

Status

The destination DB instance is running properly. If the destination DB instance type is primary/standby, the replication status must also be normal.

Consistency

Character set

The character set of the destination database must be the same as that of the source database.

Collation

The collation_server value of the destination database must be the same as that of the source database.

Clock

The clock of the destination database must be the same as that of the source database.

Time zone

The time_zone value of the destination database must be the same as that of the source database.

Case sensitive

The lower_case_table_names value of the destination database must be the same as that of the source database.

Maximum length of the calculation result of the group_concat function

The group_concat_max_len value of the destination database must be the same as that of the source database.

InnoDB check mode

The innodb_strict_mode value of the destination database must be the same as that of the source database.

SQL mode

The sql_mode value of the destination database must be the same as that of the source database.

Data block encryption parameter

The block_encryption_mode value of the destination database must be the same as that of the source database.

Synchronization objects

Selected objects

  • Tables, primary key indexes, unique indexes, common indexes, stored procedures, views, and functions can be synchronized.
  • Only MyISAM and InnoDB tables can be synchronized.
  • Events and triggers cannot be synchronized.
  • Table names cannot be mapped for tables on which views, stored procedures, and functions depend.
  • When table name mapping is used in a synchronization task, foreign key constraints of the table cannot be synchronized.
  • During database name mapping, if the objects to be synchronized contain stored procedures, views, and functions, these objects cannot be synchronized in the full synchronization phase, or it will result in inconsistent objects.

Tables without primary keys

Create primary keys for tables as the performance of a table without a primary key is lower than that of a table with a primary key.

Associated objects

Objects that have dependencies must be synchronized at the same time to avoid synchronization failure. Common dependencies: tables referenced by views, views referenced by views, views and tables referenced by stored procedures/functions/triggers, and tables referenced by primary and foreign keys

Foreign key reference operations

Cascade operations cannot be performed on tables with foreign keys. If the foreign key index of a table is a common index, the table structure may fail to be created. You are advised to use a unique index.

Encrypted table check

Whether the source database contains encrypted tables.

Duplicate names

If the destination database (excluding the system database) has the same name as the source database, the table structures in the destination database must be consistent with those in the source database.

Database table naming rules

  • The names of the source databases, tables, and views cannot contain non-ASCII characters, or the following characters: '<`>/\"
  • The source database name or mapped name cannot start with ib_logfile or be ib_buffer_pool, ib_doublewrite, ibdata1 or ibtmp1.
  • If the database table name contains characters other than letters, digits, and underscores (_), or the mapped database table name contains hyphens (-) and number signs (#), the name length cannot exceed 42 characters.

Source database

The source database is properly connected during the synchronization object check in the pre-check phase.

SSL

SSL configuration

If you enable SSL, the SSL connections for both the source and destination databases are correctly configured.

Network conditions

Network conditions

The IP address, port, username, and password of the destination database are correctly configured.

The IP address, port, username, and password of the source database are correctly configured.