Updated on 2024-07-11 GMT+08:00

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

Solution to Failure

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

For details, see Which MySQL Permissions Are Required for DRS?

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.

For details, see Which MySQL Permissions Are Required for DRS?

Versions

Source database versions

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

For details, see Supported Databases.

Destination database versions

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

For details, see Supported Databases.

Synchronization version

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

For details, see Checking Whether the Migration Is from an Earlier Database Version to the Same or a Later 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.

For details, see Checking Whether GTID Is Enabled for the Source Database.

Performance parameters

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

For details, see Checking Whether the log_slave_updates Value of the Source Database Is Correctly Configured.

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

For details, see Checking Whether the binlog_row_image Value is FULL.

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.

For details, see Whether the max_allowed_packet Value of the Source Database Is Too Small.

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.

For details, see Checking Whether the max_allowed_packet Value of the Destination Database Is too Small.

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.

For details, see Checking Whether the Source Database Contains Invalid sql_mode Values.

Incremental synchronization

Index column length

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

For details, see Checking the Length of the Index Column in the Source Database.

Binlog status

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

For details, see Checking Whether the Source Database Binlog Is Enabled.

Binlog format

The source database binlog must be row-based.

For details, see Checking Whether the Source Database Binlog Is 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 Setting a Local Retention Period for RDS for MySQL Binlogs.

For details, see Checking Whether the Binlog Retention Period Is Set on the Source Database.

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.

For details, see Checking Whether the Source Database server_id Meets the Incremental Migration Requirements.

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.

For details, see Checking the Additional Column of the Destination Database.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

For details, see Checking Whether the Destination Database Has 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.

For details, see Checking Whether the Source and Destination Database Character Sets Are Consistent.

Collation

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

For details, see Checking Whether the COLLATION_SERVER Values of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the TIME_ZONE Values of the Source and Destination Databases Are the Same.

Case sensitive

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

For details, see Checking Whether the Source and Destination Database Table Names Are Consistent in Case Sensitivity.

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.

For details, see Checking Whether the Values of group_concat_max_len Are Consistent.

InnoDB check mode

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

For details, see Checking Whether the innodb_strict_mode Values of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the sql_mode Values of the Source and Destination Databases Are the Same.

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.

For details, see Checking Database Mapping 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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

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

For details, see Checking Whether Referenced Tables Are Selected for Migration.

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.

For details, see Whether There Are Foreign Keys Containing Unsupported Reference Operations in the Source Database.

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.

For details, see Checking Whether the Names of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the SSL Connection Is Correctly Configured.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

MySQL->PostgreSQL

Table 2 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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

For details, see Which MySQL Permissions Are Required for DRS?

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.

For details, see Supported Databases.

Destination database versions

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

For details, see Supported Databases.

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.

For details, see Checking Whether GTID Is Enabled for the Source Database.

Performance parameters

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

For details, see Checking Whether the binlog_row_image Value is FULL.

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.

For details, see Whether the max_allowed_packet Value of the Source Database Is Too Small.

Incremental synchronization

Binlog status

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

For details, see Checking Whether the Source Database Binlog Is Enabled.

Binlog format

The source database binlog must be row-based.

For details, see Checking Whether the Source Database Binlog Is 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.

For details, see Checking Whether the Source Database server_id Meets the Incremental Migration Requirements.

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.

For details, see Checking Whether the Destination Database Has 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.

For details, see Checking Whether the Source and Destination Database Character Sets Are Consistent.

Time zone

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

For details, see Checking Whether the TIME_ZONE Values of the Source and Destination Databases Are the Same.

Table structures

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

For details, see Checking Whether Tables Structures Are Consistent.

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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

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.

For details, see Whether There Are Foreign Keys Containing Unsupported Reference Operations in the Source Database.

Duplicate names

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

For details, see Checking Whether the Names of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the Length of the Source Database Object Names Exceeds the Limit.

Source database

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

For details, see Checking the Synchronization Objects.

SSL

SSL configuration

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

For details, see Checking Whether the SSL Connection Is Correctly Configured.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

MySQL -> GaussDB Primary/Standby

Table 3 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

Permissions

Source database permissions

SELECT, LOCK TABLES, REPLICATION SLAVE, and REPLICATION CLIENT

For details, see Which MySQL Permissions Are Required for DRS?

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.

For details, see Supported Databases.

Destination database versions

1.0.0 and later versions are supported.

For details, see Supported Databases.

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.

For details, see Checking Whether GTID Is Enabled for the Source Database.

Performance parameters

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

For details, see Checking Whether the binlog_row_image Value is FULL.

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.

For details, see Whether the max_allowed_packet Value of the Source Database Is Too Small.

Incremental synchronization

Binlog status

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

For details, see Checking Whether the Source Database Binlog Is Enabled.

Binlog format

The source database binlog must be row-based.

For details, see Checking Whether the Source Database Binlog Is 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 Setting a Local Retention Period for RDS for MySQL Binlogs.

For details, see Checking Whether the Binlog Retention Period Is Set on the Source Database.

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.

For details, see Checking Whether the Source Database server_id Meets the Incremental Migration Requirements.

Table fields

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

For details, see Checking Whether the Source Database Contains Unsupported Table Field Types.

Database compatibility type

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

For details, see Checking the Database Compatibility Type.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

For details, see Checking Whether the Destination Database Has 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.

For details, see Checking Whether the Source and Destination Database Character Sets Are Consistent.

Time zone

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

For details, see Checking Whether the TIME_ZONE Values of the Source and Destination Databases Are the Same.

Table structures

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

For details, see Checking Whether Tables Structures Are Consistent.

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.

For details, see Whether There Are Foreign Keys Containing Unsupported Reference Operations in the Source Database.

Duplicate names

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

For details, see Checking Whether the Names of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the Length of the Source Database Object Names Exceeds the Limit.

Source database

The selected synchronization object must exist in the source database.

For details, see Checking the Synchronization Objects.

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.

For details, see Checking Whether the SSL Connection Is Correctly Configured.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

MySQL->GaussDB(DWS)

Table 4 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

Permissions

Source database permissions

SELECT, LOCK TABLES, REPLICATION SLAVE, and REPLICATION CLIENT

For details, see Which MySQL Permissions Are Required for DRS?

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.

For details, see Supported Databases.

Destination database versions

Versions 8.1.3 and 8.2.0 are supported.

For details, see Supported Databases.

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.

For details, see Checking Whether GTID Is Enabled for the Source Database.

Performance parameters

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

For details, see Checking Whether the binlog_row_image Value is FULL.

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.

For details, see Whether the max_allowed_packet Value of the Source Database Is Too Small.

Incremental synchronization

Binlog status

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

For details, see Checking Whether the Source Database Binlog Is Enabled.

Binlog format

The source database binlog must be row-based.

For details, see Checking Whether the Source Database Binlog Is 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 Setting a Local Retention Period for RDS for MySQL Binlogs.

For details, see Checking Whether the Binlog Retention Period Is Set on the Source Database.

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.

For details, see Checking Whether the Source Database server_id Meets the Incremental Migration Requirements.

Table fields

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

For details, see Checking Whether the Source Database Contains Unsupported Table Field Types.

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.

For details, see Checking the Database Compatibility Type.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

For details, see Checking Whether the Destination Database Has 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.

For details, see Checking Whether the Source and Destination Database Character Sets Are Consistent.

Time zone

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

For details, see Checking Whether the TIME_ZONE Values of the Source and Destination Databases Are the Same.

Table structures

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

For details, see Checking Whether Tables Structures Are Consistent.

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.

For details, see Whether There Are Foreign Keys Containing Unsupported Reference Operations in the Source Database.

Duplicate names

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

For details, see Checking Whether the Names of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the Length of the Source Database Object Names Exceeds the Limit.

Source database

The selected synchronization object must exist in the source database.

For details, see Checking the Synchronization Objects.

SSL

SSL configuration

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

For details, see Checking Whether the SSL Connection Is Correctly Configured.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

MySQL->GaussDB(for MySQL)

Table 5 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

Permissions

Source database permissions

The user must have the following permissions:

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

For details, see Which MySQL Permissions Are Required for DRS?

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.

For details, see Supported Databases.

Destination database versions

Version 8.0 is supported.

For details, see Supported Databases.

Synchronization version

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

For details, see Checking Whether the Migration Is from an Earlier Database Version to the Same or a Later 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.

For details, see Checking Whether GTID Is Enabled for the Source Database.

Performance parameters

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

For details, see Checking Whether the log_slave_updates Value of the Source Database Is Correctly Configured.

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

For details, see Checking Whether the binlog_row_image Value is FULL.

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.

For details, see Whether the max_allowed_packet Value of the Source Database Is Too Small.

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.

For details, see Checking Whether the max_allowed_packet Value of the Destination Database Is too Small.

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.

For details, see Checking Whether the Source Database Contains Invalid sql_mode Values.

Incremental synchronization

Index column length

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

For details, see Checking the Length of the Index Column in the Source Database.

Binlog status

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

For details, see Checking Whether the Source Database Binlog Is Enabled.

Binlog format

The source database binlog must be row-based.

For details, see Checking Whether the Source Database Binlog Is 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 Setting a Local Retention Period for RDS for MySQL Binlogs.

For details, see Checking Whether the Binlog Retention Period Is Set on the Source Database.

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.

For details, see Checking Whether the Source Database server_id Meets the Incremental Migration Requirements.

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.

For details, see Checking the Additional Column of the Destination Database.

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.

For details, see Checking Whether the Source and Destination Database Character Sets Are Consistent.

Collation

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

For details, see Checking Whether the COLLATION_SERVER Values of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the TIME_ZONE Values of the Source and Destination Databases Are the Same.

Case sensitive

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

For details, see Checking Whether the Source and Destination Database Table Names Are Consistent in Case Sensitivity.

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.

For details, see Checking Whether the Values of group_concat_max_len Are Consistent.

InnoDB check mode

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

For details, see Checking Whether the innodb_strict_mode Values of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the sql_mode Values of the Source and Destination Databases Are the Same.

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.

For details, see Checking Database Mapping 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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

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

For details, see Checking Whether Referenced Tables Are Selected for Migration.

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.

For details, see Whether There Are Foreign Keys Containing Unsupported Reference Operations in the Source Database.

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.

For details, see Checking Whether the Names of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the SSL Connection Is Correctly Configured.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

MySQL->MariaDB

Table 6 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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

For details, see Which MySQL Permissions Are Required for DRS?

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.

For details, see Supported Databases.

Destination database versions

Version 10.5 is supported.

For details, see Supported Databases.

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.

For details, see Checking Whether GTID Is Enabled for the Source Database.

Performance parameters

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

For details, see Checking Whether the log_slave_updates Value of the Source Database Is Correctly Configured.

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

For details, see Checking Whether the binlog_row_image Value is FULL.

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.

For details, see Checking Whether the Source Database Contains Invalid sql_mode Values.

Incremental synchronization

Index column length

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

For details, see Checking the Length of the Index Column in the Source Database.

Binlog status

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

For details, see Checking Whether the Source Database Binlog Is Enabled.

Binlog format

The source database binlog must be row-based.

For details, see Checking Whether the Source Database Binlog Is 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 Setting a Local Retention Period for RDS for MySQL Binlogs.

For details, see Checking Whether the Binlog Retention Period Is Set on the Source Database.

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.

For details, see Checking Whether the Source Database server_id Meets the Incremental Migration Requirements.

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.

For details, see Checking the Additional Column of the Destination Database.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

For details, see Checking Whether the Destination Database Has 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.

For details, see Checking Whether the Source and Destination Database Character Sets Are Consistent.

Collation

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

For details, see Checking Whether the COLLATION_SERVER Values of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the Source and Destination Database Table Names Are Consistent in Case Sensitivity.

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.

For details, see Checking Whether the Values of group_concat_max_len Are Consistent.

InnoDB check mode

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

For details, see Checking Whether the innodb_strict_mode Values of the Source and Destination Databases Are the Same.

SQL mode

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

For details, see Checking Whether the sql_mode Values of the Source and Destination Databases Are the Same.

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.

For details, see Checking Database Mapping 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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

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

For details, see Checking Whether Referenced Tables Are Selected for Migration.

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.

For details, see Whether There Are Foreign Keys Containing Unsupported Reference Operations in the Source Database.

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.

For details, see Checking Whether the Names of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the SSL Connection Is Correctly Configured.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

MySQL -> GaussDB Distributed

Table 7 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

Permissions

Source database permissions

  • Full synchronization: SELECT.
  • Full+incremental synchronization and incremental synchronization: SELECT, LOCK TABLES, REPLICATION SLAVE and REPLICATION CLIENT.

For details, see Which MySQL Permissions Are Required for DRS?

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 database, 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 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.)
  • 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.For details, see gs_loader.

-

Versions

Source database versions

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

For details, see Supported Databases.

Destination database versions

1.0.0 and later versions are supported.

For details, see Supported Databases.

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.

For details, see Checking Whether GTID Is Enabled for the Source Database.

Performance parameters

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

For details, see Checking Whether the binlog_row_image Value is FULL.

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.

For details, see Whether the max_allowed_packet Value of the Source Database Is Too Small.

Incremental synchronization

Binlog status

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

For details, see Checking Whether the Source Database Binlog Is Enabled.

Binlog format

The source database binlog must be row-based.

For details, see Checking Whether the Source Database Binlog Is 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 Setting a Local Retention Period for RDS for MySQL Binlogs.

For details, see Checking Whether the Binlog Retention Period Is Set on the Source Database.

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.

For details, see Checking Whether the Source Database server_id Meets the Incremental Migration Requirements.

Table fields

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

For details, see Checking Whether the Source Database Contains Unsupported Table Field Types.

Database compatibility type

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

For details, see Checking the Database Compatibility Type.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

For details, see Checking Whether the Destination Database Has 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.

For details, see Checking Whether the Source and Destination Database Character Sets Are Consistent.

Time zone

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

For details, see Checking Whether the TIME_ZONE Values of the Source and Destination Databases Are the Same.

Table structures

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

For details, see Checking Whether Tables Structures Are Consistent.

Synchronization objects

Selected objects

  • Only table structures, table data, and indexes can be synchronized.
  • Only tables with primary keys can be synchronized. Tables without primary keys cannot be synchronized.
  • Only MyISAM and InnoDB tables can be synchronized.
  • Other database objects such as stored procedures cannot be synchronized.
  • Virtual columns are synchronized as common columns, and no data is written or incremental synchronization is performed.
  • 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.

For details, see Whether There Are Foreign Keys Containing Unsupported Reference Operations in the Source Database.

Duplicate names

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

For details, see Checking Whether the Names of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the Length of the Source Database Object Names Exceeds the Limit.

Source database

The selected synchronization object must exist in the source database.

For details, see Checking the Synchronization Objects.

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.

For details, see Checking Whether the SSL Connection Is Correctly Configured.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

PostgreSQL->PostgreSQL

Table 8 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.

For details, see Supported Databases.

Destination database versions

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

For details, see Supported Databases.

Synchronization version

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

For details, see Checking Whether the Migration Is from an Earlier Database Version to the Same or a Later Version.

Parameters

Performance parameters

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

For details, see Checking Whether the BLOCK_SIZE Value of the Source Database Is the Same as That of the Destination 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.

For details, see Checking Whether the MAX_REPLICATION_SLOTS Value in the Source Database Is Correct.

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

For details, see Checking Whether the max_wal_senders Value of the Source Database Is Correctly Configured.

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.

For details, see Checking Replication Attribute of Primary Key Columns.

The wal_level value of the source database must be logical.

For details, see Checking Whether the WAL_LEVEL Value in the Source Database Is Correct.

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.

For details, see Checking Whether session_replication_role of the Destination Database Is Correctly Set.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

For details, see Checking Whether the Destination Database Has 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.

For details, see Character Type and Sorting Rule Check in the Destination Database.

Currency format

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

For details, see Checking Whether the lc_monetary Values of the Source and Destination Databases Are 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.

For details, see Whether the Selected Table Contains 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 details, see Checking the Synchronization Objects.

  • 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.

For details, see Checking Whether the Source Database Is on Standby.

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.

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

PostgreSQL->GaussDB(DWS)

Table 9 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.

For details, see Supported Databases.

Destination database versions

Versions 8.1.3 and 8.2.0 are supported.

For details, see Supported Databases.

Parameters

Performance parameters

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

For details, see Checking Whether the MAX_REPLICATION_SLOTS Value in the Source Database Is Correct.

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

For details, see Checking Whether the max_wal_senders Value of the Source Database Is Correctly Configured.

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.

For details, see Checking Replication Attribute of Primary Key Columns.

The wal_level value of the source database must be logical.

For details, see Checking Whether the WAL_LEVEL Value in the Source Database Is Correct.

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.

For details, see Whether the Selected Table Contains 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 details, see Checking the Synchronization Objects.

  • 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.

For details, see Checking Whether the Source Database Is on Standby.

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.

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

PostgreSQL -> GaussDB Primary/Standby

Table 10 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.

For details, see Supported Databases.

Destination database versions

1.0.0 and later versions are supported.

For details, see Supported Databases.

Parameters

Performance parameters

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

For details, see Checking Whether the MAX_REPLICATION_SLOTS Value in the Source Database Is Correct.

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

For details, see Checking Whether the max_wal_senders Value of the Source Database Is Correctly Configured.

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.

For details, see Checking Replication Attribute of Primary Key Columns.

The wal_level value of the source database must be logical.

For details, see Checking Whether the WAL_LEVEL Value in the Source Database Is Correct.

Incremental synchronization

Table fields

  • GaussDB-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, 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.

For details, see Whether the Selected Table Contains 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 details, see Checking the Synchronization Objects.

  • 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.

For details, see Checking Whether the Source Database Is on Standby.

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.

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

PostgreSQL -> GaussDB Distributed

Table 11 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.

For details, see Supported Databases.

Destination database versions

1.0.0 and later versions are supported.

For details, see Supported Databases.

Parameters

Performance parameters

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

For details, see Checking Whether the MAX_REPLICATION_SLOTS Value in the Source Database Is Correct.

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

For details, see Checking Whether the max_wal_senders Value of the Source Database Is Correctly Configured.

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.

For details, see Checking Replication Attribute of Primary Key Columns.

The wal_level value of the source database must be logical.

For details, see Checking Whether the WAL_LEVEL Value in the Source Database Is Correct.

Incremental synchronization

Table fields

  • GaussDB-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, 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.

For details, see Whether the Selected Table Contains 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 details, see Checking the Synchronization Objects.

  • 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.

For details, see Checking Whether the Source Database Is on Standby.

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.

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

Oracle->MySQL

Table 12 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.

For details, see Supported Databases.

Destination database versions

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

For details, see Supported Databases.

Incremental synchronization

Index column length

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

For details, see Checking the Length of the Index Column in the Source Database.

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.

For details, see Checking Whether the Values in the Source Oracle Database Are Out of the Ranges of the MySQL Database.

Virtual columns

The source database cannot contain virtual columns.

For details, see Checking Whether the Source Table Structure Contains Virtual Columns.

Character set compatibility check

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

For details, see Checking Whether the Character Sets Are Compatible.

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.

For details, see Checking the Physical Standby Database.

Synchronization objects

Selected objects

  • Table-level synchronization or object file import 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.

For details, see Checking Whether the Source Database Contains Unsupported Table Field Types.

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.

For details, see Checking Whether the Collation of the Destination Database Is Correct.

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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

Data constraints

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

For details, see Checking Whether Existing Data Meets the Constraints.

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.

For details, see Checking Whether the Source Database Character Set Is Supported.

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.

For details, see Checking Whether the Names of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

Oracle->GaussDB(for MySQL)

Table 13 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.

For details, see Supported Databases.

Destination database versions

Version 8.0 is supported.

For details, see Supported Databases.

Incremental synchronization

Index column length

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

For details, see Checking the Length of the Index Column in the Source Database.

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.

For details, see Checking Whether the Values in the Source Oracle Database Are Out of the Ranges of the MySQL Database.

Virtual columns

The source database cannot contain virtual columns.

For details, see Checking Whether the Source Table Structure Contains 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.

For details, see Checking the Physical Standby Database.

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.

For details, see Checking Whether the Source Database Contains Unsupported Table Field Types.

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.

For details, see Checking Whether the Collation of the Destination Database Is Correct.

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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

Data constraints

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

For details, see Checking Whether Existing Data Meets the Constraints.

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.

For details, see Checking Whether the Source Database Character Set Is Supported.

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.

For details, see Checking Whether the Names of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

Oracle -> GaussDB Primary/Standby

Table 14 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.For details, see gs_loader.

-

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.

For details, see Supported Databases.

Destination database versions

1.0.0 and later versions are supported.

For details, see Supported Databases.

Incremental synchronization

Character set compatibility check

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

For details, see Checking Whether the Character Sets Are Compatible.

Virtual columns

The source database cannot contain virtual columns.

For details, see Checking Whether the Source Table Structure Contains 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.

For details, see Checking the Physical Standby Database.

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.

For details, see Whether the Selected Objects Exist in the Destination Database.

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.

For details, see Whether Foreign Keys Are Disabled or Tables to Be Synchronized Have Foreign Keys in 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.

For details, see Checking Whether the Source Database Contains Unsupported Table Field Types.

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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

Data constraints

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

For details, see Checking Whether Existing Data Meets the Constraints.

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.

For details, see Checking Whether the Source Database Character Set Is Supported.

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.

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

Oracle -> GaussDB Distributed

Table 15 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.For details, see gs_loader.

-

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.

For details, see Supported Databases.

Destination database versions

1.0.0 and later versions are supported.

For details, see Supported Databases.

Incremental synchronization

Character set compatibility check

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

For details, see Checking Whether the Character Sets Are Compatible.

Virtual columns

The source database cannot contain virtual columns.

For details, see Checking Whether the Source Table Structure Contains 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.

For details, see Checking the Physical Standby Database.

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.

For details, see Whether the Selected Objects Exist in the Destination Database.

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.

For details, see Whether Foreign Keys Are Disabled or Tables to Be Synchronized Have Foreign Keys in 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.

For details, see Checking Whether the Source Database Contains Unsupported Table Field Types.

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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

Data constraints

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

For details, see Checking Whether Existing Data Meets the Constraints.

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.

For details, see Checking Whether the Source Database Character Set Is Supported.

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.

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

Oracle->GaussDB(DWS)

Table 16 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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

  • If the destination side does not contain databases, schemas, or tables, the destination database user must have the permission to create databases, the permission to create schemas in a database, or the permission to create tables in a schema.
  • The INSERT, SELECT, UPDATE, and DELETE permissions are required for each table.

-

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.

For details, see Supported Databases.

Destination database versions

Versions 8.1.3 and 8.2.0 are supported.

For details, see Supported Databases.

Incremental synchronization

Character set compatibility check

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

For details, see Checking Whether the Character Sets Are Compatible.

Virtual columns

The source database cannot contain virtual columns.

For details, see Checking Whether the Source Table Structure Contains 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.

For details, see Checking the Physical Standby Database.

Synchronization objects

Selected objects

  • Tables, common indexes (B-Tree indexes), and constraints (primary key, empty, and not-null) can be synchronized.
  • Views, foreign keys, stored procedures, triggers, functions, events, virtual columns, unique constraints, unique indexes, foreign key indexes, and check constraints 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.

For details, see Checking Whether the Source Database Contains Unsupported Table Field Types.

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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

Duplicate names

During table structure synchronization, if the destination database has a constraint with the same name as the source database, the table fails to be created.

For details, see Checking Whether the Names of the Source and Destination Databases Are the Same.

Data constraints

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

For details, see Checking Whether Existing Data Meets the Constraints.

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.

For details, see Checking Whether the Source Database Character Set Is Supported.

Database table naming rules

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

-

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

Oracle->DDM

Table 17 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.

For details, see Supported Databases.

Incremental synchronization

Character set compatibility check

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

For details, see Checking Whether the Character Sets Are Compatible.

Virtual columns

The source database cannot contain virtual columns.

For details, see Checking Whether the Source Table Structure Contains 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.

For details, see Checking the Physical Standby Database.

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.

For details, see Whether the Table Structures (Including Primary Key Indexes and the Number of Columns) of the Source Oracle Database and Destination Database Middleware Are Aligned.

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.

For details, see Checking Whether the Source Database Contains Unsupported Table Field Types.

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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

Data constraints

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

For details, see Checking Whether Existing Data Meets the Constraints.

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.

For details, see Checking Whether the Source Database Character Set Is Supported.

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.

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

Oracle->PostgreSQL

Table 18 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.

For details, see Supported Databases.

Destination database versions

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

For details, see Supported Databases.

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.

For details, see Checking Whether the Values in the Source Oracle Database Are Out of the Ranges of the MySQL Database.

Virtual columns

The source database cannot contain virtual columns.

For details, see Checking Whether the Source Table Structure Contains Virtual Columns.

Character set compatibility check

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

For details, see Checking Whether the Character Sets Are Compatible.

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.

For details, see Checking Whether the Destination Database Has 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.

For details, see Checking the Physical Standby Database.

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.

For details, see Checking Whether the Source Database Contains Unsupported Table Field Types.

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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

Data constraints

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

For details, see Checking Whether Existing Data Meets the Constraints.

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.

For details, see Checking Whether the Source Database Character Set Is Supported.

Log parsing permissions

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

For details, see Checking Whether the Source Database User Has the Permission to Parse Logs.

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.

For details, see Checking Whether the Names of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

DDM->MySQL

Table 19 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.

For details, see Which MySQL Permissions Are Required for DRS?

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.

For details, see Checking Whether the binlog_row_image Value is FULL.

Incremental synchronization

Binlog status

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

For details, see Checking Whether the Source Database Binlog Is Enabled.

Binlog format

The source sharded database binlog must be row-based.

For details, see Checking Whether the Source Database Binlog Is 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.

For details, see Checking Whether the Source Database server_id Meets the Incremental Migration Requirements.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

For details, see Checking Whether the Destination Database Has Sufficient Storage Space.

Consistency

Character set

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

For details, see Checking Whether the Source and Destination Database Character Sets Are Consistent.

Case sensitive

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

For details, see Checking Whether the Source and Destination Database Table Names Are Consistent in Case Sensitivity.

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.

For details, see Checking Whether the Values of group_concat_max_len Are Consistent.

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.

For details, see Checking Database Mapping 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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

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.

For details, see Checking Whether the SSL Connection Is Correctly Configured.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

DDM->GaussDB(DWS)

Table 20 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.

For details, see Checking Whether the binlog_row_image Value is FULL.

Incremental synchronization

Binlog status

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

For details, see Checking Whether the Source Database Binlog Is Enabled.

Binlog format

The source sharded database binlog must be row-based.

For details, see Checking Whether the Source Database Binlog Is 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.

For details, see Checking Whether the Source Database server_id Meets the Incremental Migration Requirements.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

For details, see Checking Whether the Destination Database Has Sufficient Storage Space.

Consistency

Character set

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

For details, see Checking Whether the Source and Destination Database Character Sets Are Consistent.

Case sensitive

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

For details, see Checking Whether the Source and Destination Database Table Names Are Consistent in Case Sensitivity.

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.

For details, see Checking Whether the Values of group_concat_max_len Are Consistent.

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.

For details, see Checking Database Mapping 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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

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.

For details, see Checking Whether the SSL Connection Is Correctly Configured.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

DDM->DDM

Table 21 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.

For details, see Checking Whether the binlog_row_image Value is FULL.

Incremental synchronization

Binlog status

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

For details, see Checking Whether the Source Database Binlog Is Enabled.

Binlog format

The source sharded database binlog must be row-based.

For details, see Checking Whether the Source Database Binlog Is 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.

For details, see Checking Whether the Source Database server_id Meets the Incremental Migration Requirements.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

For details, see Checking Whether the Destination Database Has Sufficient Storage Space.

Consistency

Character set

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

For details, see Checking Whether the Source and Destination Database Character Sets Are Consistent.

Case sensitive

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

For details, see Checking Whether the Source and Destination Database Table Names Are Consistent in Case Sensitivity.

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.

For details, see Checking Whether the Values of group_concat_max_len Are Consistent.

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.

For details, see Checking Database Mapping 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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

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.

For details, see Checking Whether the SSL Connection Is Correctly Configured.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

DB2 for LUW -> GaussDB Primary/Standby

Table 22 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

Permissions

Source database permissions

  • The CONNECT and DATAACCESS permissions are mandatory for full synchronization.
  • The DBADM permission is mandatory for full+incremental synchronization.
  • If there is the DB2SECURITYLABEL data in the table structure of the source database, ensure that the user has the read permission on all data in the table.

-

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.For details, see gs_loader.

-

Versions

Source database versions

Versions 9.7, 10.1, 10.5, 11.1, and 11.5 are supported.

For details, see Supported Databases.

Destination database versions

1.0.0 and later versions are supported.

For details, see Supported Databases.

Parameters

DataCapture

If you select full+incremental synchronization, ensure that the archive log of the source database is enabled and the DataCapture attribute of the table to be synchronized is Y.

-

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.
  • During full synchronization, the table structure does not support bitmap indexes, inverted indexes, function indexes, and XML indexes.
  • Tables whose default values contain expression functions cannot be synchronized.
  • Temporary tables in the source database cannot be synchronized.
  • For a full+incremental task, tables without primary keys that contain XML fields cannot be synchronized.

-

Whether the selected objects exist in the destination database

Check whether the destination database objects meet the synchronization requirements.

For details, see Whether the Selected Objects Exist in the Destination Database.

Table field types

  • The maximum precision supported by the TIMESTAMP type is 6.
  • The LOB type supported by incremental synchronization cannot exceed 10 MB.
  • User-defined types are not supported.
  • VARCHAR or VARGRAPHIC data whose length exceeds 3998 characters cannot be synchronized during the incremental synchronization.

For details, see Checking Whether the Source Database Contains Unsupported Table Field Types.

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.

For details, see Whether the Source Database Tables Contain Primary Keys.

Character sets

The source database supports only the GBK and UTF8 character sets.

For details, see Checking Whether the Source Database Character Set Is Supported.

Source database

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

For details, see Checking the Synchronization Objects.

Database table naming rules

  • During table structure synchronization in the full phase, if there is a schema with the same name as a user in the destination database and another user is used to synchronize the table structure to the schema, run the grant [role] to [role] command to grant permissions to the user. Otherwise, the synchronization may fail because the table structure cannot be created.
  • 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.

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

DB2 for LUW -> GaussDB Distributed

Table 23 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

Permissions

Source database permissions

  • The CONNECT and DATAACCESS permissions are mandatory for full synchronization.
  • The DBADM permission is mandatory for full+incremental synchronization.
  • If there is the DB2SECURITYLABEL data in the table structure of the source database, ensure that the user has the read permission on all data in the table.

-

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.For details, see gs_loader.

-

Versions

Source database versions

Versions 9.7, 10.1, 10.5, 11.1, and 11.5 are supported.

For details, see Supported Databases.

Destination database versions

1.0.0 and later versions are supported.

For details, see Supported Databases.

Parameters

DataCapture

If you select full+incremental synchronization, ensure that the archive log of the source database is enabled and the DataCapture attribute of the table to be synchronized is Y.

-

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.
  • During full synchronization, the table structure does not support bitmap indexes, inverted indexes, function indexes, and XML indexes.
  • Tables whose default values contain expression functions cannot be synchronized.
  • Temporary tables in the source database cannot be synchronized.
  • For a full+incremental task, tables without primary keys that contain XML fields cannot be synchronized.

-

Whether the selected objects exist in the destination database

Check whether the destination database objects meet the synchronization requirements.

For details, see Whether the Selected Objects Exist in the Destination Database.

Table field types

  • The maximum precision supported by the TIMESTAMP type is 6.
  • The LOB type supported by incremental synchronization cannot exceed 10 MB.
  • User-defined types are not supported.
  • VARCHAR or VARGRAPHIC data whose length exceeds 3998 characters cannot be synchronized during the incremental synchronization.

For details, see Checking Whether the Source Database Contains Unsupported Table Field Types.

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.

For details, see Whether the Source Database Tables Contain Primary Keys.

Character sets

The source database supports only the GBK and UTF8 character sets.

For details, see Checking Whether the Source Database Character Set Is Supported.

Source database

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

For details, see Checking the Synchronization Objects.

Database table naming rules

  • During table structure synchronization in the full phase, if there is a schema with the same name as a user in the destination database and another user is used to synchronize the table structure to the schema, run the grant [role] to [role] command to grant permissions to the user. Otherwise, the synchronization may fail because the table structure cannot be created.
  • 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.

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

DB2 for LUW->GaussDB(DWS)

Table 24 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

Permissions

Source database permissions

  • The CONNECT and DATAACCESS permissions are mandatory for full synchronization.
  • The DBADM permission is mandatory for full+incremental synchronization.
  • If there is the DB2SECURITYLABEL data in the table structure of the source database, ensure that the user has the read permission on all data in the table.

-

Destination database permissions

  • If the destination side does not contain databases, schemas, or tables, the destination database user must have the permission to create databases, the permission to create schemas in a database, or the permission to create tables in a schema.
  • The INSERT, SELECT, UPDATE, and DELETE permissions are required for each table.

-

Versions

Source database versions

Versions 9.7, 10.1, 10.5, 11.1, and 11.5 are supported.

For details, see Supported Databases.

Destination database versions

Versions 8.1.3 and 8.2.0 are supported.

For details, see Supported Databases.

Parameters

DataCapture

If you select full+incremental synchronization, ensure that the archive log of the source database is enabled and the DataCapture attribute of the table to be synchronized is Y.

-

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.
  • During full synchronization, the table structure does not support bitmap indexes, inverted indexes, function indexes, and XML indexes.
  • Tables whose default values contain expression functions cannot be synchronized.
  • Temporary tables in the source database cannot be synchronized.
  • For a full+incremental task, tables without primary keys that contain XML fields cannot be synchronized.
  • The number of synchronization objects of a single schema in the source database cannot exceed 32,766.

-

Whether the selected objects exist in the destination database

Check whether the destination database objects meet the synchronization requirements.

For details, see Whether the Selected Objects Exist in the Destination Database.

Table field types

  • The maximum precision supported by the TIMESTAMP type is 6.
  • The LOB type supported by incremental synchronization cannot exceed 10 MB.
  • User-defined types are not supported.
  • VARCHAR or VARGRAPHIC data whose length exceeds 3998 characters cannot be synchronized during the incremental synchronization.
  • 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.

For details, see Checking Whether the Source Database Contains Unsupported Table Field Types.

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.

For details, see Whether the Source Database Tables Contain Primary Keys.

Character sets

The source database supports only the GBK and UTF8 character sets.

For details, see Checking Whether the Source Database Character Set Is Supported.

Source database

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

For details, see Checking the Synchronization Objects.

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.

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

TiDB->GaussDB(for MySQL)

Table 25 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

Permissions

Source database permissions

The user must have the SELECT and CONFIG permissions.

-

Destination database permissions

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

-

Versions

Source database versions

Version 4.0.0 and later (excluding the development version)

For details, see Supported Databases.

Destination database versions

Version 8.0

For details, see Supported Databases.

Incremental synchronization

Binlog status

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

For details, see Checking Whether the Source Database Binlog Is Enabled.

Synchronization objects

Selected objects

  • Table structures, data, and indexes and constraints of selected tables can be synchronized.
  • Supported field types

    BIGINT, BINARY, BIT, BLOB, BOOLEAN, CHAR, DATE, DATETIME, DECIMAL, DOUBLE, ENUM, FLOAT, INT, JSON, LONGBLOB, LONGTEXT, MEDIUMBLOB, MEDIUMINT, SET, SMALLINT, TEXT, TIME, TIMESTAMP, TINYBLOB, TINYINT, TINYTEXT, VARBINARY, VARCHAR, YEAR

-

Database table naming rules

  • The 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.
  • The names of the databases and tables to be synchronized cannot contain non-ASCII characters or the following special characters: '<`>/\.

-

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.

For details, see Whether the Source Database Tables Contain Primary Keys.

Duplicate names

The destination database cannot contain tables with the same names as those in the source database.

For details, see Checking Whether Destination Database Contains the Same Table Names As the Synchronization Objects.

Source database

The selected synchronization object must exist in the source database.

For details, see Checking the Synchronization Objects.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

Microsoft SQL Server->GaussDB(DWS)

Table 26 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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)

For details, see Supported Databases.

Destination database versions

Versions 8.1.3 and 8.2.0 are supported.

For details, see Supported Databases.

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.

For details, see Checking Whether CDC is Enabled for Tables in the Source Database.

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).

For details, see Checking Whether the CDC Retention Period in the Source Database Is Long Enough.

Consistency

Computer names

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

For details, see Checking Whether the Source and Destination Databases Have Different Computer Names.

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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

Duplicate names

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

For details, see Checking Whether the Destination Database Contains Objects with the Same Name As Those in the Source Database.

Source database

The selected synchronization object must exist in the source database.

For details, see Checking the Synchronization Objects.

The source database cannot be empty.

For details, see Checking Whether the Source Database Is Empty.

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

For details, see Checking Whether the Source Database Uses the Full Recovery Model.

SQL Server Agent must be enabled for the source database.

For details, see Checking Whether the SQL Server Agent of the Source Database Is Enabled.

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

For details, see Checking Whether the Source Database Contains Disabled Clustered Indexes.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

Microsoft SQL Server -> GaussDB Primary/Standby

Table 27 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.For details, see gs_loader.

-

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)

For details, see Supported Databases.

Destination database versions

Version 1.1.0 or later

For details, see Supported Databases.

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.

For details, see Checking Whether CDC is Enabled for Tables in the Source Database.

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).

For details, see Checking Whether the CDC Retention Period in the Source Database Is Long Enough.

Consistency

Computer names

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

For details, see Checking Whether the Source and Destination Databases Have Different Computer Names.

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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

Duplicate names

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

For details, see Checking Whether the Destination Database Contains Objects with the Same Name As Those in the Source Database.

Source database

The selected synchronization object must exist in the source database.

For details, see Checking the Synchronization Objects.

The source database cannot be empty.

For details, see Checking Whether the Source Database Is Empty.

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

For details, see Checking Whether the Source Database Uses the Full Recovery Model.

SQL Server Agent must be enabled for the source database.

For details, see Checking Whether the SQL Server Agent of the Source Database Is Enabled.

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

For details, see Checking Whether the Source Database Contains Disabled Clustered Indexes.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

Microsoft SQL Server -> GaussDB Distributed

Table 28 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.For details, see gs_loader.

-

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)

For details, see Supported Databases.

Destination database versions

Version 1.1.0 or later

For details, see Supported Databases.

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.

For details, see Checking Whether CDC is Enabled for Tables in the Source Database.

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).

For details, see Checking Whether the CDC Retention Period in the Source Database Is Long Enough.

Consistency

Computer names

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

For details, see Checking Whether the Source and Destination Databases Have Different Computer Names.

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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

Duplicate names

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

For details, see Checking Whether the Destination Database Contains Objects with the Same Name As Those in the Source Database.

Source database

The selected synchronization object must exist in the source database.

For details, see Checking the Synchronization Objects.

The source database cannot be empty.

For details, see Checking Whether the Source Database Is Empty.

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

For details, see Checking Whether the Source Database Uses the Full Recovery Model.

SQL Server Agent must be enabled for the source database.

For details, see Checking Whether the SQL Server Agent of the Source Database Is Enabled.

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

For details, see Checking Whether the Source Database Contains Disabled Clustered Indexes.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

Microsoft SQL Server->Microsoft SQL Server

Table 29 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

Permissions

Source database permissions

At least the sysadmin or view server state and db_datareader or db_owner permissions for databases to be synchronized

-

Destination database permissions

If the destination end does not contain databases, the destination database user must have the create any database permission.

If the destination end contains databases, the destination database user must have the connect, create table, alter any schema, and select permissions for the databases.

-

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)

For details, see Supported Databases.

Destination database versions

RDS for SQL Server (Enterprise Edition 2012, 2014, 2016, 2017 and 2019 and Standard Edition 2016 SP2 or later, 2017, and 2019)

For details, see Supported Databases.

Synchronization version

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

For details, see Checking Whether the Migration Is from an Earlier Database Version to the Same or a Later Version.

Destination database

Status

The destination DB instance is running properly.

-

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.

For details, see Checking Whether CDC is Enabled for Tables in the Source Database.

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).

For details, see Checking Whether the CDC Retention Period in the Source Database Is Long Enough.

Consistency

Computer names

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

For details, see Checking Whether the Source and Destination Databases Have Different Computer Names.

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.

-

Duplicate names

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

For details, see Checking Whether the Destination Database Contains Objects with the Same Name As Those in the Source Database.

Source database

The selected synchronization object must exist in the source database.

For details, see Checking the Synchronization Objects.

The source database cannot be empty.

For details, see Checking Whether the Source Database Is Empty.

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

For details, see Checking Whether the Source Database Uses the Full Recovery Model.

SQL Server Agent must be enabled for the source database.

For details, see Checking Whether the SQL Server Agent of the Source Database Is Enabled.

Transparent Data Encryption (TDE) encrypted databases in the source instance cannot be synchronized. If you do not need to synchronize TDE encrypted databases, deselect them from the synchronization objects. If you need to synchronize TDE encrypted databases, disable TDE first.

For details, see Whether the Source Database Contains Encrypted Objects.

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

For details, see Checking Whether the Source Database Contains Disabled Clustered Indexes.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

MongoDB->DDS

Table 30 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.

For details, see Supported Databases.

Destination database versions

DDS (versions 3.4, 4.0, 4.2 and 4.4)

For details, see Supported Databases.

Synchronization version

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

For details, see Checking Whether the Migration Is from an Earlier Database Version to the Same or a Later Version.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

For details, see Checking Whether the Destination Database Has 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.

For details, see Checking Whether the Maximum Number of Chunks in the Destination Database Is Sufficient.

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

For details, see Checking Whether Referenced Tables Are Selected for Migration.

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.

For details, see Checking the Synchronization Objects.

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.

For details, see Checking Whether the Source Database Collections Contain TTL Indexes.

The source database cannot be empty.

For details, see Checking Whether the Source Database Is Empty.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

MariaDB->MariaDB

Table 31 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.

For details, see Supported Databases.

Destination database versions

Version 10.5 is supported.

For details, see Supported Databases.

Synchronization version

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

For details, see Checking Whether the Migration Is from an Earlier Database Version to the Same or a Later Version.

Parameters

Performance parameters

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

For details, see Checking Whether the log_slave_updates Value of the Source Database Is Correctly Configured.

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

For details, see Checking Whether the binlog_row_image Value is FULL.

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.

For details, see Checking Whether the max_allowed_packet Value of the Destination Database Is too Small.

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.

For details, see Checking Whether the Source Database Contains Invalid sql_mode Values.

Incremental synchronization

Binlog status

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

For details, see Checking Whether the Source Database Binlog Is Enabled.

Binlog format

The source database binlog must be row-based.

For details, see Checking Whether the Source Database Binlog Is 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.

For details, see Checking Whether the Binlog Retention Period Is Set on the Source Database.

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.

For details, see Checking Whether the Source Database server_id Meets the Incremental Migration Requirements.

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.

For details, see Checking the Length of the Index Column in the Source Database.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

For details, see Checking Whether the Destination Database Has 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.

For details, see Checking Whether the Source and Destination Database Character Sets Are Consistent.

Collation

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

For details, see Checking Whether the COLLATION_SERVER Values of the Source and Destination Databases Are the Same.

Case sensitive

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

For details, see Checking Whether the Source and Destination Database Table Names Are Consistent in Case Sensitivity.

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.

For details, see Checking Whether the Values of group_concat_max_len Are Consistent.

InnoDB check mode

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

For details, see Checking Whether the innodb_strict_mode Values of the Source and Destination Databases Are the Same.

SQL mode

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

For details, see Checking Whether the sql_mode Values of the Source and Destination Databases Are the Same.

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.

For details, see Checking Database Mapping 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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

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

For details, see Checking Whether Referenced Tables Are Selected for Migration.

Encrypted table check

Whether the source database contains encrypted tables.

For details, see Source Encrypted Table Check.

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.

For details, see Checking Whether Destination Database Contains the Same Table Names As the Synchronization Objects.

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.

For details, see Checking the Synchronization Objects.

SSL

SSL configuration

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

For details, see Checking Whether the SSL Connection Is Correctly Configured.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

MariaDB->MySQL

Table 32 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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 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

Versions 10.0, 10.1, 10.2, 10.3, 10.4, and 10.5 are supported.

For details, see Supported Databases.

Destination database versions

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

For details, see Supported Databases.

Parameters

Performance parameters

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

For details, see Checking Whether the log_slave_updates Value of the Source Database Is Correctly Configured.

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

For details, see Checking Whether the binlog_row_image Value is FULL.

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.

For details, see Checking Whether the max_allowed_packet Value of the Destination Database Is too Small.

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.

For details, see Checking Whether the Source Database Contains Invalid sql_mode Values.

Incremental synchronization

Binlog status

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

For details, see Checking Whether the Source Database Binlog Is Enabled.

Binlog format

The source database binlog must be row-based.

For details, see Checking Whether the Source Database Binlog Is 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.

For details, see Checking Whether the Binlog Retention Period Is Set on the Source Database.

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.

For details, see Checking Whether the Source Database server_id Meets the Incremental Migration Requirements.

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.

For details, see Checking the Length of the Index Column in the Source Database.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

For details, see Checking Whether the Destination Database Has 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.

For details, see Checking Whether the Source and Destination Database Character Sets Are Consistent.

Collation

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

For details, see Checking Whether the COLLATION_SERVER Values of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the Source and Destination Database Table Names Are Consistent in Case Sensitivity.

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.

For details, see Checking Whether the Values of group_concat_max_len Are Consistent.

InnoDB check mode

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

For details, see Checking Whether the innodb_strict_mode Values of the Source and Destination Databases Are the Same.

SQL mode

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

For details, see Checking Whether the sql_mode Values of the Source and Destination Databases Are the Same.

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.

For details, see Checking Database Mapping 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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

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

For details, see Checking Whether Referenced Tables Are Selected for Migration.

Encrypted table check

Whether the source database contains encrypted tables.

For details, see Source Encrypted Table Check.

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.

For details, see Checking Whether Destination Database Contains the Same Table Names As the Synchronization Objects.

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.

For details, see Checking the Synchronization Objects.

SSL

SSL configuration

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

For details, see Checking Whether the SSL Connection Is Correctly Configured.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

MariaDB->GaussDB(for MySQL)

Table 33 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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 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

Versions 10.0, 10.1, 10.2, 10.3, 10.4, and 10.5 are supported.

For details, see Supported Databases.

Destination database versions

Version 8.0 is supported.

For details, see Supported Databases.

Parameters

Performance parameters

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

For details, see Checking Whether the log_slave_updates Value of the Source Database Is Correctly Configured.

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

For details, see Checking Whether the binlog_row_image Value is FULL.

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.

For details, see Checking Whether the max_allowed_packet Value of the Destination Database Is too Small.

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.

For details, see Checking Whether the Source Database Contains Invalid sql_mode Values.

Incremental synchronization

Binlog status

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

For details, see Checking Whether the Source Database Binlog Is Enabled.

Binlog format

The source database binlog must be row-based.

For details, see Checking Whether the Source Database Binlog Is 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.

For details, see Checking Whether the Binlog Retention Period Is Set on the Source Database.

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.

For details, see Checking Whether the Source Database server_id Meets the Incremental Migration Requirements.

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.

For details, see Checking the Length of the Index Column in the Source Database.

Destination database

Storage space

The destination DB instance must have sufficient storage space.

For details, see Checking Whether the Destination Database Has 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.

For details, see Checking Whether the Source and Destination Database Character Sets Are Consistent.

Collation

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

For details, see Checking Whether the COLLATION_SERVER Values of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the Source and Destination Database Table Names Are Consistent in Case Sensitivity.

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.

For details, see Checking Whether the Values of group_concat_max_len Are Consistent.

InnoDB check mode

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

For details, see Checking Whether the innodb_strict_mode Values of the Source and Destination Databases Are the Same.

SQL mode

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

For details, see Checking Whether the sql_mode Values of the Source and Destination Databases Are the Same.

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.

For details, see Checking Database Mapping 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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

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

For details, see Checking Whether Referenced Tables Are Selected for Migration.

Encrypted table check

Whether the source database contains encrypted tables.

For details, see Source Encrypted Table Check.

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.

For details, see Checking Whether Destination Database Contains the Same Table Names As the Synchronization Objects.

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.

For details, see Checking the Synchronization Objects.

SSL

SSL configuration

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

For details, see Checking Whether the SSL Connection Is Correctly Configured.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.

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

Table 34 Pre-check items

Category

Check Item

Check Item Details

Solution to Failure

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.

For details, see Supported Databases.

Destination database versions

Version 8.0 is supported.

For details, see Supported Databases.

Synchronization version

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

For details, see Checking Whether the Migration Is from an Earlier Database Version to the Same or a Later 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.

For details, see Checking Whether GTID Is Enabled for the Source Database.

Performance parameters

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

For details, see Checking Whether the log_slave_updates Value of the Source Database Is Correctly Configured.

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

For details, see Checking Whether the binlog_row_image Value is FULL.

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.

For details, see Checking Whether the max_allowed_packet Value of the Destination Database Is too Small.

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.

For details, see Whether the max_allowed_packet Value of the Source Database Is Too Small.

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.

For details, see Checking Whether the Source Database Contains Invalid sql_mode Values.

Incremental synchronization

Binlog status

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

For details, see Checking Whether the Source Database Binlog Is Enabled.

Binlog format

The source database binlog must be row-based.

For details, see Checking Whether the Source Database Binlog Is 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.

For details, see Checking Whether the Binlog Retention Period Is Set on the Source Database.

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.

For details, see Checking Whether the Source Database server_id Meets the Incremental Migration Requirements.

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.

For details, see Checking the Length of the Index Column in the Source Database.

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.

For details, see Checking Whether the Source and Destination Database Character Sets Are Consistent.

Collation

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

For details, see Checking Whether the COLLATION_SERVER Values of the Source and Destination Databases Are the Same.

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.

For details, see Checking Whether the TIME_ZONE Values of the Source and Destination Databases Are the Same.

Case sensitive

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

For details, see Checking Whether the Source and Destination Database Table Names Are Consistent in Case Sensitivity.

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.

For details, see Checking Whether the Values of group_concat_max_len Are Consistent.

InnoDB check mode

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

For details, see Checking Whether the innodb_strict_mode Values of the Source and Destination Databases Are the Same.

SQL mode

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

For details, see Checking Whether the sql_mode Values of the Source and Destination Databases Are the Same.

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.

For details, see Checking Database Mapping 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.

For details, see Checking Whether the Source Database Tables Contain Primary Keys.

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

For details, see Checking Whether Referenced Tables Are Selected for Migration.

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.

For details, see Whether There Are Foreign Keys Containing Unsupported Reference Operations in the Source Database.

Encrypted table check

Whether the source database contains encrypted tables.

For details, see Source Encrypted Table Check.

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.

For details, see Checking Whether Destination Database Contains the Same Table Names As the Synchronization Objects.

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.

For details, see Checking the Synchronization Objects.

SSL

SSL configuration

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

For details, see Checking Whether the SSL Connection Is Correctly Configured.

Network conditions

Network conditions

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

For details, see Checking Whether the Destination Database Is Connected.

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

For details, see Checking Whether the Source Database Is Connected.