Skip to main content

Data Replication

NineData Data Replication helps you synchronize schema and data between two data sources by combining schema replication, full data replication, and incremental data replication.

Overview​

Use this page to create a standard data replication task. The available replication phases and supported capabilities depend on the selected source and target data sources, so review the support tables before you create the task.

Source DatabaseTarget DatabaseSchema Repl.Full Repl.Incre Repl.Schema Comp.Data Comp.Incre Comp.
MySQLMySQL✔️✔️✔️✔️✔️✔️
MySQLPolarDB MySQL-compatible✔️✔️✔️✔️✔️✔️
MySQLTDSQL-C MySQL (no datasource)✔️✔️✔️✔️✔️✔️
PolarDB MySQL-compatibleMySQL✔️✔️✔️✔️✔️✔️
PolarDB MySQL-compatiblePolarDB MySQL-compatible✔️✔️✔️✔️✔️✔️
PolarDB MySQL-compatibleTDSQL-C MySQL (no datasource)✔️✔️✔️✔️✔️✔️
TDSQL-C MySQLMySQL✔️✔️✔️✔️✔️✔️
TDSQL-C MySQLPolarDB MySQL-compatible✔️✔️✔️✔️✔️✔️
TDSQL-C MySQLTDSQL-C MySQL (no datasource)✔️✔️✔️✔️✔️✔️
MySQLSQL Server✔️✔️✔️-✔️-
PolarDB MySQL-compatibleSQL Server✔️✔️✔️-✔️-
TDSQL-C MySQLSQL Server✔️✔️✔️-✔️-
MySQLPolarDB PostgreSQL-compatible✔️✔️✔️-✔️✔️
MySQLPostgreSQL✔️✔️✔️-✔️✔️
MySQLTDSQL Centralized PostgreSQL✔️✔️✔️-✔️✔️
PolarDB MySQL-compatiblePolarDB PostgreSQL-compatible✔️✔️✔️-✔️✔️
PolarDB MySQL-compatiblePostgreSQL✔️✔️✔️-✔️✔️
PolarDB MySQL-compatibleTDSQL Centralized PostgreSQL✔️✔️✔️-✔️✔️
TDSQL-C MySQLPolarDB PostgreSQL-compatible✔️✔️✔️-✔️✔️
TDSQL-C MySQLPostgreSQL✔️✔️✔️-✔️✔️
TDSQL-C MySQLTDSQL Centralized PostgreSQL✔️✔️✔️-✔️✔️
MySQLOracle✔️✔️✔️-✔️✔️
PolarDB MySQL-compatibleOracle✔️✔️✔️-✔️✔️
TDSQL-C MySQLOracle✔️✔️✔️-✔️✔️
MySQLOceanBase Oracle✔️✔️✔️-✔️-
TDSQL-C MySQLOceanBase Oracle✔️✔️✔️-✔️-
MySQLOceanBase MySQL✔️✔️✔️-✔️-
PolarDB MySQL-compatibleOceanBase MySQL✔️✔️✔️-✔️-
TDSQL-C MySQLOceanBase MySQL✔️✔️✔️-✔️-
MySQLTDSQL Centralized MySQL (no datasource)✔️✔️✔️-✔️-
PolarDB MySQL-compatibleTDSQL Centralized MySQL (no datasource)✔️✔️✔️-✔️-
TDSQL-C MySQLTDSQL Centralized MySQL (no datasource)✔️✔️✔️-✔️-
MySQLDb2✔️✔️✔️-✔️-
PolarDB MySQL-compatibleDb2✔️✔️✔️-✔️-
TDSQL-C MySQLDb2✔️✔️✔️-✔️-
MySQLDoris✔️✔️✔️-✔️-
PolarDB MySQL-compatibleDoris✔️✔️✔️-✔️-
TDSQL-C MySQLDoris✔️✔️✔️-✔️-
MySQLSelectDB (no datasource)✔️✔️✔️-✔️-
PolarDB MySQL-compatibleSelectDB (no datasource)✔️✔️✔️-✔️-
TDSQL-C MySQLSelectDB (no datasource)✔️✔️✔️-✔️-
MySQLClickHouse✔️✔️✔️-✔️-
PolarDB MySQL-compatibleClickHouse✔️✔️✔️-✔️-
TDSQL-C MySQLClickHouse✔️✔️✔️-✔️-
MySQLElasticsearch✔️✔️✔️---
PolarDB MySQL-compatibleElasticsearch✔️✔️✔️---
TDSQL-C MySQLElasticsearch✔️✔️✔️---
MySQLKafka-✔️✔️---
PolarDB MySQL-compatibleKafka-✔️✔️---
TDSQL-C MySQLKafka-✔️✔️---
MySQLDameng✔️✔️✔️-✔️-
PolarDB MySQL-compatibleDameng✔️✔️✔️-✔️-
TDSQL-C MySQLDameng✔️✔️✔️-✔️-
MySQLDWS✔️✔️✔️-✔️-
PolarDB MySQL-compatibleDWS✔️✔️✔️-✔️-
TDSQL-C MySQLDWS✔️✔️✔️-✔️-
MySQLGreenplum✔️✔️✔️-✔️-
PolarDB MySQL-compatibleGreenplum✔️✔️✔️-✔️-
TDSQL-C MySQLGreenplum✔️✔️✔️-✔️-
MySQLRedshift-✔️✔️---
PolarDB MySQL-compatibleRedshift-✔️✔️---
TDSQL-C MySQLRedshift-✔️✔️---
MySQLStarRocks✔️✔️✔️-✔️-
PolarDB MySQL-compatibleStarRocks✔️✔️✔️-✔️-
TDSQL-C MySQLStarRocks✔️✔️✔️-✔️-
MySQLSingleStore-✔️✔️-✔️-
PolarDB MySQL-compatibleSingleStore-✔️✔️-✔️-
TDSQL-C MySQLSingleStore-✔️✔️-✔️-
MySQLTiDB✔️✔️✔️-✔️✔️
PolarDB MySQL-compatibleTiDB✔️✔️✔️-✔️✔️
TDSQL-C MySQLTiDB✔️✔️✔️-✔️✔️
MySQLHive✔️✔️--✔️-
PolarDB MySQL-compatibleHive✔️✔️--✔️-
TDSQL-C MySQLHive✔️✔️--✔️-
MySQLAnalyticDB PostgreSQL✔️✔️✔️---
PolarDB MySQL-compatibleAnalyticDB PostgreSQL✔️✔️✔️---
TDSQL-C MySQLAnalyticDB PostgreSQL✔️✔️✔️---
MySQLGaussDB Centralized MySQL✔️✔️✔️-✔️-
MySQLGaussDB Centralized Oracle✔️✔️✔️-✔️-
MySQLGaussDB Centralized PostgreSQL✔️✔️✔️-✔️-
PolarDB MySQL-compatibleGaussDB Centralized MySQL✔️✔️✔️-✔️-
PolarDB MySQL-compatibleGaussDB Centralized Oracle✔️✔️✔️-✔️-
PolarDB MySQL-compatibleGaussDB Centralized PostgreSQL✔️✔️✔️-✔️-
TDSQL-C MySQLGaussDB Centralized MySQL✔️✔️✔️-✔️-
TDSQL-C MySQLGaussDB Centralized Oracle✔️✔️✔️-✔️-
TDSQL-C MySQLGaussDB Centralized PostgreSQL✔️✔️✔️-✔️-
MySQLopenGauss MySQL✔️✔️✔️-✔️-
MySQLopenGauss Oracle✔️✔️✔️-✔️-
MySQLopenGauss PostgreSQL✔️✔️✔️-✔️-
PolarDB MySQL-compatibleopenGauss MySQL✔️✔️✔️-✔️-
PolarDB MySQL-compatibleopenGauss Oracle✔️✔️✔️-✔️-
PolarDB MySQL-compatibleopenGauss PostgreSQL✔️✔️✔️-✔️-
TDSQL-C MySQLopenGauss MySQL✔️✔️✔️-✔️-
TDSQL-C MySQLopenGauss Oracle✔️✔️✔️-✔️-
TDSQL-C MySQLopenGauss PostgreSQL✔️✔️✔️-✔️-
MySQLShardingJDBC-✔️✔️-✔️-
PolarDB MySQL-compatibleShardingJDBC-✔️✔️-✔️-
TDSQL-C MySQLShardingJDBC-✔️✔️-✔️-
MySQLDataHub✔️✔️✔️-✔️-
PolarDB MySQL-compatibleDataHub✔️✔️✔️-✔️-
TDSQL-C MySQLDataHub✔️✔️✔️-✔️-
MySQLKingbaseES PostgreSQL-compatible✔️✔️✔️-✔️✔️
PolarDB MySQL-compatibleKingbaseES PostgreSQL-compatible✔️✔️✔️-✔️✔️
TDSQL-C MySQLKingbaseES PostgreSQL-compatible✔️✔️✔️-✔️✔️
MySQLKingbaseES Oracle-compatible✔️✔️✔️-✔️-
PolarDB MySQL-compatibleKingbaseES Oracle-compatible✔️✔️✔️-✔️-
TDSQL-C MySQLKingbaseES Oracle-compatible✔️✔️✔️-✔️-
MySQLPolarDB Oracle-compatible✔️✔️✔️-✔️✔️
PolarDB MySQL-compatiblePolarDB Oracle-compatible✔️✔️✔️-✔️✔️
TDSQL-C MySQLPolarDB Oracle-compatible✔️✔️✔️-✔️✔️
MySQLPolarDB-X 2.0 Distributed✔️✔️✔️-✔️-
PolarDB MySQL-compatiblePolarDB-X 2.0 Distributed✔️✔️✔️-✔️-
TDSQL-C MySQLPolarDB-X 2.0 Distributed✔️✔️✔️-✔️-
MySQLPolarDB-X 2.0 Centralized✔️✔️✔️✔️✔️✔️
PolarDB MySQL-compatiblePolarDB-X 2.0 Centralized✔️✔️✔️✔️✔️✔️
TDSQL-C MySQLPolarDB-X 2.0 Centralized✔️✔️✔️✔️✔️✔️
MySQLVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
MySQLVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
PolarDB MySQL-compatibleVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
PolarDB MySQL-compatibleVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
TDSQL-C MySQLVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
TDSQL-C MySQLVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
SQL ServerMySQL✔️✔️✔️-✔️-
SQL ServerPolarDB MySQL-compatible✔️✔️✔️-✔️-
SQL ServerTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️-
SQL ServerSQL Server✔️✔️✔️✔️✔️-
SQL ServerPolarDB PostgreSQL-compatible✔️✔️✔️-✔️-
SQL ServerPostgreSQL✔️✔️✔️-✔️-
SQL ServerTDSQL Centralized PostgreSQL✔️✔️✔️-✔️-
SQL ServerOracle✔️✔️✔️-✔️-
SQL ServerOceanBase Oracle✔️✔️✔️-✔️-
SQL ServerOceanBase MySQL✔️✔️✔️-✔️-
SQL ServerTDSQL Centralized MySQL (no datasource)✔️✔️✔️-✔️-
SQL ServerDb2✔️✔️✔️-✔️-
SQL ServerDoris✔️✔️✔️-✔️-
SQL ServerSelectDB (no datasource)✔️✔️✔️-✔️-
SQL ServerClickHouse✔️✔️✔️-✔️-
SQL ServerKafka-✔️✔️---
SQL ServerDameng✔️✔️✔️-✔️-
SQL ServerDWS✔️✔️✔️-✔️-
SQL ServerGreenplum✔️✔️✔️-✔️-
SQL ServerStarRocks✔️✔️✔️-✔️-
SQL ServerTiDB✔️✔️✔️-✔️-
SQL ServerAnalyticDB PostgreSQL✔️✔️✔️-✔️-
SQL ServeropenGauss MySQL✔️✔️✔️-✔️-
SQL ServeropenGauss Oracle✔️✔️✔️-✔️-
SQL ServeropenGauss PostgreSQL✔️✔️✔️-✔️-
SQL ServerKingbaseES PostgreSQL-compatible✔️✔️✔️-✔️-
SQL ServerKingbaseES Oracle-compatible✔️✔️✔️-✔️-
SQL ServerPolarDB Oracle-compatible✔️✔️✔️-✔️-
SQL ServerAzure SQL Database✔️✔️✔️-✔️-
SQL ServerVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
SQL ServerVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleMySQL✔️✔️✔️-✔️✔️
PolarDB PostgreSQL-compatiblePolarDB MySQL-compatible✔️✔️✔️-✔️✔️
PolarDB PostgreSQL-compatibleTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️✔️
PostgreSQLMySQL✔️✔️✔️-✔️✔️
PostgreSQLPolarDB MySQL-compatible✔️✔️✔️-✔️✔️
PostgreSQLTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️✔️
TDSQL Centralized PostgreSQLMySQL✔️✔️✔️-✔️✔️
TDSQL Centralized PostgreSQLPolarDB MySQL-compatible✔️✔️✔️-✔️✔️
TDSQL Centralized PostgreSQLTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️✔️
PolarDB PostgreSQL-compatibleSQL Server✔️✔️✔️-✔️-
PostgreSQLSQL Server✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLSQL Server✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatiblePolarDB PostgreSQL-compatible✔️✔️✔️✔️✔️✔️
PolarDB PostgreSQL-compatiblePostgreSQL✔️✔️✔️✔️✔️✔️
PolarDB PostgreSQL-compatibleTDSQL Centralized PostgreSQL✔️✔️✔️✔️✔️✔️
PostgreSQLPolarDB PostgreSQL-compatible✔️✔️✔️✔️✔️✔️
PostgreSQLPostgreSQL✔️✔️✔️✔️✔️✔️
PostgreSQLTDSQL Centralized PostgreSQL✔️✔️✔️✔️✔️✔️
TDSQL Centralized PostgreSQLPolarDB PostgreSQL-compatible✔️✔️✔️✔️✔️✔️
TDSQL Centralized PostgreSQLPostgreSQL✔️✔️✔️✔️✔️✔️
TDSQL Centralized PostgreSQLTDSQL Centralized PostgreSQL✔️✔️✔️✔️✔️✔️
PolarDB PostgreSQL-compatibleOracle✔️✔️✔️-✔️✔️
PostgreSQLOracle✔️✔️✔️-✔️✔️
TDSQL Centralized PostgreSQLOracle✔️✔️✔️-✔️✔️
PolarDB PostgreSQL-compatibleOceanBase Oracle✔️✔️✔️-✔️✔️
PostgreSQLOceanBase Oracle✔️✔️✔️-✔️✔️
TDSQL Centralized PostgreSQLOceanBase Oracle✔️✔️✔️-✔️✔️
PolarDB PostgreSQL-compatibleOceanBase MySQL✔️✔️✔️-✔️-
PostgreSQLOceanBase MySQL✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLOceanBase MySQL✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleTDSQL Centralized MySQL (no datasource)✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleDb2✔️✔️✔️-✔️-
PostgreSQLDb2✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLDb2✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleDoris✔️✔️✔️-✔️-
PostgreSQLDoris✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLDoris✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleSelectDB (no datasource)✔️✔️✔️-✔️-
PostgreSQLSelectDB (no datasource)✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleClickHouse✔️✔️✔️-✔️-
PostgreSQLClickHouse✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLClickHouse✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleKafka-✔️✔️---
PostgreSQLKafka-✔️✔️---
PolarDB PostgreSQL-compatibleDameng✔️✔️✔️-✔️-
PostgreSQLDameng✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLDameng✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleDWS✔️✔️✔️-✔️-
PostgreSQLDWS✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleGreenplum✔️✔️✔️-✔️-
PostgreSQLGreenplum✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLGreenplum✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleStarRocks✔️✔️✔️-✔️-
PostgreSQLStarRocks✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLStarRocks✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleTiDB✔️✔️✔️-✔️✔️
PostgreSQLTiDB✔️✔️✔️-✔️✔️
TDSQL Centralized PostgreSQLTiDB✔️✔️✔️-✔️✔️
PostgreSQLAnalyticDB PostgreSQL✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleSybase-✔️✔️-✔️-
PostgreSQLSybase-✔️✔️-✔️-
PolarDB PostgreSQL-compatibleGaussDB Centralized MySQL✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleGaussDB Centralized Oracle✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleGaussDB Centralized PostgreSQL✔️✔️✔️-✔️-
PostgreSQLGaussDB Centralized MySQL✔️✔️✔️-✔️-
PostgreSQLGaussDB Centralized Oracle✔️✔️✔️-✔️-
PostgreSQLGaussDB Centralized PostgreSQL✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleopenGauss MySQL✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleopenGauss Oracle✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleopenGauss PostgreSQL✔️✔️✔️-✔️-
PostgreSQLopenGauss MySQL✔️✔️✔️-✔️-
PostgreSQLopenGauss Oracle✔️✔️✔️-✔️-
PostgreSQLopenGauss PostgreSQL✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLopenGauss MySQL✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLopenGauss Oracle✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLopenGauss PostgreSQL✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleKingbaseES PostgreSQL-compatible✔️✔️✔️-✔️-
PostgreSQLKingbaseES PostgreSQL-compatible✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLKingbaseES PostgreSQL-compatible✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleKingbaseES Oracle-compatible✔️✔️✔️-✔️-
PostgreSQLKingbaseES Oracle-compatible✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLKingbaseES Oracle-compatible✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatiblePolarDB Oracle-compatible✔️✔️✔️-✔️-
PostgreSQLPolarDB Oracle-compatible✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLPolarDB Oracle-compatible✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
PolarDB PostgreSQL-compatibleVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
PostgreSQLVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
PostgreSQLVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
TDSQL Centralized PostgreSQLVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
OracleMySQL✔️✔️✔️-✔️✔️
OraclePolarDB MySQL-compatible✔️✔️✔️-✔️✔️
OracleTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️✔️
OracleSQL Server✔️✔️✔️-✔️-
OraclePolarDB PostgreSQL-compatible✔️✔️✔️-✔️✔️
OraclePostgreSQL✔️✔️✔️-✔️✔️
OracleTDSQL Centralized PostgreSQL✔️✔️✔️-✔️✔️
OracleOracle✔️✔️✔️✔️✔️✔️
OracleOceanBase Oracle✔️✔️✔️-✔️✔️
OracleOceanBase MySQL✔️✔️✔️-✔️✔️
OracleTDSQL Centralized MySQL (no datasource)✔️✔️✔️-✔️-
OracleDb2✔️✔️✔️-✔️-
OracleDoris✔️✔️✔️-✔️-
OracleSelectDB (no datasource)✔️✔️✔️-✔️-
OracleClickHouse✔️✔️✔️-✔️-
OracleKafka-✔️✔️---
OracleDameng✔️✔️✔️-✔️-
OracleDWS✔️✔️✔️-✔️-
OracleGreenplum✔️✔️✔️-✔️-
OracleStarRocks✔️✔️✔️-✔️-
OracleTiDB✔️✔️✔️-✔️✔️
OracleAnalyticDB PostgreSQL✔️✔️✔️-✔️-
OracleGaussDB Centralized MySQL✔️✔️✔️-✔️✔️
OracleGaussDB Centralized Oracle✔️✔️✔️-✔️✔️
OracleGaussDB Centralized PostgreSQL✔️✔️✔️-✔️✔️
OracleopenGauss MySQL✔️✔️✔️-✔️-
OracleopenGauss Oracle✔️✔️✔️-✔️-
OracleopenGauss PostgreSQL✔️✔️✔️-✔️-
OracleDataHub✔️✔️✔️-✔️-
OracleKingbaseES PostgreSQL-compatible✔️✔️✔️-✔️✔️
OracleKingbaseES Oracle-compatible✔️✔️✔️-✔️-
OraclePolarDB Oracle-compatible✔️✔️✔️-✔️-
OraclePolarDB-X 2.0 Distributed✔️✔️✔️-✔️-
OraclePolarDB-X 2.0 Centralized✔️✔️✔️-✔️-
OracleVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
OracleVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
OracleGoldenDB✔️✔️✔️-✔️-
OceanBase OracleMySQL✔️✔️✔️-✔️-
OceanBase OraclePolarDB MySQL-compatible✔️✔️✔️-✔️-
OceanBase OracleTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️-
OceanBase OracleSQL Server✔️✔️✔️-✔️-
OceanBase OraclePolarDB PostgreSQL-compatible✔️✔️✔️-✔️✔️
OceanBase OraclePostgreSQL✔️✔️✔️-✔️✔️
OceanBase OracleOracle✔️✔️✔️-✔️✔️
OceanBase OracleOceanBase Oracle✔️✔️✔️✔️✔️✔️
OceanBase OracleOceanBase MySQL✔️✔️✔️-✔️✔️
OceanBase OracleDb2✔️✔️✔️-✔️-
OceanBase OracleDoris✔️✔️✔️-✔️-
OceanBase OracleClickHouse✔️✔️✔️-✔️-
OceanBase OracleKafka-✔️✔️---
OceanBase OracleDameng✔️✔️✔️-✔️-
OceanBase OracleGreenplum✔️✔️✔️-✔️-
OceanBase OracleStarRocks✔️✔️✔️-✔️-
OceanBase OracleTiDB✔️✔️✔️-✔️✔️
OceanBase OracleopenGauss MySQL✔️✔️✔️-✔️-
OceanBase OracleopenGauss Oracle✔️✔️✔️-✔️-
OceanBase OracleopenGauss PostgreSQL✔️✔️✔️-✔️-
OceanBase OracleKingbaseES PostgreSQL-compatible✔️✔️✔️-✔️-
OceanBase OracleKingbaseES Oracle-compatible✔️✔️✔️-✔️-
OceanBase OraclePolarDB Oracle-compatible✔️✔️✔️-✔️-
OceanBase MySQLMySQL✔️✔️✔️-✔️-
OceanBase MySQLPolarDB MySQL-compatible✔️✔️✔️-✔️-
OceanBase MySQLTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️-
OceanBase MySQLSQL Server✔️✔️✔️-✔️-
OceanBase MySQLPolarDB PostgreSQL-compatible✔️✔️✔️-✔️-
OceanBase MySQLPostgreSQL✔️✔️✔️-✔️-
OceanBase MySQLOracle✔️✔️✔️-✔️-
OceanBase MySQLOceanBase Oracle✔️✔️✔️-✔️-
OceanBase MySQLOceanBase MySQL✔️✔️✔️✔️✔️✔️
OceanBase MySQLDb2✔️✔️✔️-✔️-
OceanBase MySQLDoris✔️✔️✔️-✔️-
OceanBase MySQLClickHouse✔️✔️✔️-✔️-
OceanBase MySQLKafka-✔️✔️---
OceanBase MySQLDameng✔️✔️✔️-✔️-
OceanBase MySQLGreenplum✔️✔️✔️-✔️-
OceanBase MySQLStarRocks✔️✔️✔️-✔️-
OceanBase MySQLTiDB✔️✔️✔️-✔️-
OceanBase MySQLopenGauss MySQL✔️✔️✔️-✔️-
OceanBase MySQLopenGauss Oracle✔️✔️✔️-✔️-
OceanBase MySQLopenGauss PostgreSQL✔️✔️✔️-✔️-
OceanBase MySQLKingbaseES PostgreSQL-compatible✔️✔️✔️-✔️-
OceanBase MySQLKingbaseES Oracle-compatible✔️✔️✔️-✔️-
OceanBase MySQLPolarDB Oracle-compatible✔️✔️✔️-✔️-
OceanBase MySQLPolarDB-X 2.0 Distributed✔️✔️✔️-✔️-
TDSQL Centralized MySQLMySQL✔️✔️✔️-✔️-
TDSQL Centralized MySQLPolarDB MySQL-compatible✔️✔️✔️-✔️-
TDSQL Centralized MySQLTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️-
TDSQL Centralized MySQLSQL Server✔️✔️✔️-✔️-
TDSQL Centralized MySQLPolarDB PostgreSQL-compatible✔️✔️✔️-✔️-
TDSQL Centralized MySQLPostgreSQL✔️✔️✔️-✔️-
TDSQL Centralized MySQLOracle✔️✔️✔️-✔️-
TDSQL Centralized MySQLOceanBase MySQL✔️✔️✔️-✔️-
TDSQL Centralized MySQLTDSQL Centralized MySQL (no datasource)✔️✔️✔️✔️✔️-
TDSQL Centralized MySQLDb2✔️✔️✔️-✔️-
TDSQL Centralized MySQLDoris✔️✔️✔️-✔️-
TDSQL Centralized MySQLSelectDB (no datasource)✔️✔️✔️-✔️-
TDSQL Centralized MySQLClickHouse✔️✔️✔️-✔️-
TDSQL Centralized MySQLKafka-✔️✔️---
TDSQL Centralized MySQLDWS✔️✔️✔️---
TDSQL Centralized MySQLGreenplum✔️✔️✔️-✔️-
TDSQL Centralized MySQLStarRocks✔️✔️✔️-✔️-
TDSQL Centralized MySQLTiDB✔️✔️✔️-✔️-
TDSQL Centralized MySQLAnalyticDB PostgreSQL✔️✔️✔️---
TDSQL Centralized MySQLGaussDB Centralized MySQL✔️✔️✔️-✔️-
TDSQL Centralized MySQLGaussDB Centralized Oracle✔️✔️✔️-✔️-
TDSQL Centralized MySQLGaussDB Centralized PostgreSQL✔️✔️✔️-✔️-
TDSQL Centralized MySQLopenGauss MySQL✔️✔️✔️-✔️-
TDSQL Centralized MySQLopenGauss Oracle✔️✔️✔️-✔️-
TDSQL Centralized MySQLopenGauss PostgreSQL✔️✔️✔️-✔️-
TDSQL Centralized MySQLKingbaseES PostgreSQL-compatible✔️✔️✔️-✔️-
TDSQL Centralized MySQLKingbaseES Oracle-compatible✔️✔️✔️-✔️-
TDSQL Centralized MySQLPolarDB-X 2.0 Distributed✔️✔️✔️-✔️-
TDSQL Centralized MySQLPolarDB-X 2.0 Centralized✔️✔️✔️-✔️-
Db2MySQL✔️✔️✔️-✔️-
Db2PolarDB MySQL-compatible✔️✔️✔️-✔️-
Db2TDSQL-C MySQL (no datasource)✔️✔️✔️-✔️-
Db2SQL Server✔️✔️✔️-✔️-
Db2PolarDB PostgreSQL-compatible✔️✔️✔️-✔️-
Db2PostgreSQL✔️✔️✔️-✔️-
Db2TDSQL Centralized PostgreSQL✔️✔️✔️-✔️-
Db2Oracle✔️✔️✔️-✔️-
Db2OceanBase Oracle✔️✔️✔️-✔️-
Db2OceanBase MySQL✔️✔️✔️-✔️-
Db2TDSQL Centralized MySQL (no datasource)✔️✔️✔️-✔️-
Db2Db2✔️✔️✔️-✔️-
Db2Doris✔️✔️✔️-✔️-
Db2ClickHouse✔️✔️✔️-✔️-
Db2Kafka-✔️✔️---
Db2Dameng✔️✔️✔️-✔️-
Db2Greenplum✔️✔️✔️-✔️-
Db2StarRocks✔️✔️✔️-✔️-
Db2TiDB✔️✔️✔️-✔️-
Db2openGauss MySQL✔️✔️✔️-✔️-
Db2openGauss Oracle✔️✔️✔️-✔️-
Db2openGauss PostgreSQL✔️✔️✔️-✔️-
Db2KingbaseES PostgreSQL-compatible✔️✔️✔️-✔️-
Db2KingbaseES Oracle-compatible✔️✔️✔️-✔️-
Db2PolarDB Oracle-compatible✔️✔️✔️-✔️-
Db2GoldenDB✔️✔️✔️-✔️-
MongoDBMongoDB✔️✔️✔️✔️✔️-
RedisRedis-✔️✔️-✔️-
DorisMySQL✔️✔️--✔️-
DorisPolarDB MySQL-compatible✔️✔️--✔️-
DorisTDSQL-C MySQL (no datasource)✔️✔️--✔️-
DorisSQL Server✔️✔️--✔️-
DorisPolarDB PostgreSQL-compatible✔️✔️--✔️-
DorisPostgreSQL✔️✔️--✔️-
DorisTDSQL Centralized PostgreSQL✔️✔️--✔️-
DorisOracle✔️✔️--✔️-
DorisOceanBase Oracle✔️✔️--✔️-
DorisOceanBase MySQL✔️✔️--✔️-
DorisTDSQL Centralized MySQL (no datasource)✔️✔️--✔️-
DorisDb2✔️✔️--✔️-
DorisDoris✔️✔️--✔️-
DorisClickHouse✔️✔️--✔️-
DorisDameng✔️✔️--✔️-
DorisGreenplum✔️✔️--✔️-
DorisStarRocks✔️✔️--✔️-
DorisTiDB✔️✔️--✔️-
DorisopenGauss MySQL✔️✔️--✔️-
DorisopenGauss Oracle✔️✔️--✔️-
DorisopenGauss PostgreSQL✔️✔️--✔️-
DorisKingbaseES PostgreSQL-compatible✔️✔️--✔️-
DorisKingbaseES Oracle-compatible✔️✔️--✔️-
DorisPolarDB Oracle-compatible✔️✔️--✔️-
DorisVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
DorisVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
SelectDBMySQL✔️✔️--✔️-
SelectDBPolarDB MySQL-compatible✔️✔️--✔️-
SelectDBTDSQL-C MySQL (no datasource)✔️✔️--✔️-
SelectDBPolarDB PostgreSQL-compatible✔️✔️--✔️-
SelectDBPostgreSQL✔️✔️--✔️-
SelectDBTDSQL Centralized PostgreSQL✔️✔️--✔️-
SelectDBOracle✔️✔️--✔️-
SelectDBTDSQL Centralized MySQL (no datasource)✔️✔️--✔️-
SelectDBSelectDB (no datasource)✔️✔️--✔️-
SelectDBClickHouse✔️✔️--✔️-
SelectDBGreenplum✔️✔️✔️-✔️-
SelectDBStarRocks✔️✔️--✔️-
ClickHouseMySQL✔️✔️--✔️-
ClickHousePolarDB MySQL-compatible✔️✔️--✔️-
ClickHouseTDSQL-C MySQL (no datasource)✔️✔️--✔️-
ClickHouseSQL Server✔️✔️--✔️-
ClickHousePolarDB PostgreSQL-compatible✔️✔️--✔️-
ClickHousePostgreSQL✔️✔️--✔️-
ClickHouseTDSQL Centralized PostgreSQL✔️✔️--✔️-
ClickHouseOracle✔️✔️--✔️-
ClickHouseOceanBase Oracle✔️✔️--✔️-
ClickHouseOceanBase MySQL✔️✔️--✔️-
ClickHouseTDSQL Centralized MySQL (no datasource)✔️✔️--✔️-
ClickHouseDb2✔️✔️--✔️-
ClickHouseDoris✔️✔️--✔️-
ClickHouseClickHouse✔️✔️--✔️-
ClickHouseDameng✔️✔️--✔️-
ClickHouseGreenplum✔️✔️--✔️-
ClickHouseStarRocks✔️✔️--✔️-
ClickHouseTiDB✔️✔️--✔️-
ClickHouseopenGauss MySQL✔️✔️--✔️-
ClickHouseopenGauss Oracle✔️✔️--✔️-
ClickHouseopenGauss PostgreSQL✔️✔️--✔️-
ClickHouseKingbaseES PostgreSQL-compatible✔️✔️--✔️-
ClickHouseKingbaseES Oracle-compatible✔️✔️--✔️-
ClickHousePolarDB Oracle-compatible✔️✔️--✔️-
ClickHouseVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
ClickHouseVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
DamengMySQL✔️✔️✔️-✔️-
DamengPolarDB MySQL-compatible✔️✔️✔️-✔️-
DamengTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️-
DamengSQL Server✔️✔️✔️-✔️-
DamengPolarDB PostgreSQL-compatible✔️✔️✔️-✔️-
DamengPostgreSQL✔️✔️✔️-✔️-
DamengTDSQL Centralized PostgreSQL✔️✔️✔️-✔️-
DamengOracle✔️✔️✔️-✔️-
DamengOceanBase Oracle✔️✔️✔️-✔️-
DamengOceanBase MySQL✔️✔️✔️-✔️-
DamengDb2✔️✔️✔️-✔️-
DamengClickHouse✔️✔️✔️-✔️-
DamengDameng✔️✔️✔️✔️✔️✔️
DamengTiDB✔️✔️✔️-✔️-
DamengopenGauss MySQL✔️✔️✔️-✔️-
DamengopenGauss Oracle✔️✔️✔️-✔️-
DamengopenGauss PostgreSQL✔️✔️✔️-✔️-
DamengKingbaseES PostgreSQL-compatible✔️✔️✔️-✔️-
DamengKingbaseES Oracle-compatible✔️✔️✔️-✔️-
DamengPolarDB Oracle-compatible✔️✔️✔️-✔️-
DamengVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
DamengVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
DWS (no datasource)DWS✔️✔️✔️-✔️-
GreenplumMySQL✔️✔️--✔️-
GreenplumPolarDB MySQL-compatible✔️✔️--✔️-
GreenplumTDSQL-C MySQL (no datasource)✔️✔️--✔️-
GreenplumSQL Server✔️✔️--✔️-
GreenplumPolarDB PostgreSQL-compatible✔️✔️--✔️-
GreenplumPostgreSQL✔️✔️--✔️-
GreenplumTDSQL Centralized PostgreSQL✔️✔️--✔️-
GreenplumOracle✔️✔️--✔️-
GreenplumOceanBase Oracle✔️✔️--✔️-
GreenplumOceanBase MySQL✔️✔️--✔️-
GreenplumTDSQL Centralized MySQL (no datasource)✔️✔️--✔️-
GreenplumDb2✔️✔️--✔️-
GreenplumDoris✔️✔️--✔️-
GreenplumClickHouse✔️✔️--✔️-
GreenplumDameng✔️✔️--✔️-
GreenplumGreenplum✔️✔️--✔️-
GreenplumStarRocks✔️✔️--✔️-
GreenplumTiDB✔️✔️--✔️-
GreenplumPolarDB Oracle-compatible✔️✔️--✔️-
GreenplumVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
GreenplumVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
StarRocksMySQL✔️✔️--✔️-
StarRocksPolarDB MySQL-compatible✔️✔️--✔️-
StarRocksTDSQL-C MySQL (no datasource)✔️✔️--✔️-
StarRocksSQL Server✔️✔️--✔️-
StarRocksPolarDB PostgreSQL-compatible✔️✔️--✔️-
StarRocksPostgreSQL✔️✔️--✔️-
StarRocksTDSQL Centralized PostgreSQL✔️✔️--✔️-
StarRocksOracle✔️✔️--✔️-
StarRocksOceanBase Oracle✔️✔️--✔️-
StarRocksOceanBase MySQL✔️✔️--✔️-
StarRocksTDSQL Centralized MySQL (no datasource)✔️✔️--✔️-
StarRocksDb2✔️✔️--✔️-
StarRocksDoris✔️✔️--✔️-
StarRocksClickHouse✔️✔️--✔️-
StarRocksDameng✔️✔️--✔️-
StarRocksGreenplum✔️✔️--✔️-
StarRocksStarRocks✔️✔️--✔️-
StarRocksTiDB✔️✔️--✔️-
StarRocksopenGauss MySQL✔️✔️--✔️-
StarRocksopenGauss Oracle✔️✔️--✔️-
StarRocksopenGauss PostgreSQL✔️✔️--✔️-
StarRocksKingbaseES PostgreSQL-compatible✔️✔️--✔️-
StarRocksKingbaseES Oracle-compatible✔️✔️--✔️-
StarRocksPolarDB Oracle-compatible✔️✔️--✔️-
StarRocksVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
StarRocksVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
TiDBMySQL✔️✔️✔️-✔️✔️
TiDBPolarDB MySQL-compatible✔️✔️✔️-✔️✔️
TiDBTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️✔️
TiDBSQL Server✔️✔️✔️-✔️-
TiDBPolarDB PostgreSQL-compatible✔️✔️✔️-✔️✔️
TiDBPostgreSQL✔️✔️✔️-✔️✔️
TiDBTDSQL Centralized PostgreSQL✔️✔️✔️-✔️✔️
TiDBOracle✔️✔️✔️-✔️✔️
TiDBOceanBase Oracle✔️✔️✔️-✔️-
TiDBOceanBase MySQL✔️✔️✔️-✔️-
TiDBDoris✔️✔️✔️-✔️-
TiDBClickHouse✔️✔️✔️-✔️-
TiDBDameng✔️✔️✔️-✔️-
TiDBGreenplum✔️✔️✔️-✔️-
TiDBStarRocks✔️✔️✔️-✔️-
TiDBTiDB✔️✔️✔️✔️✔️✔️
TiDBopenGauss MySQL✔️✔️✔️-✔️-
TiDBopenGauss Oracle✔️✔️✔️-✔️-
TiDBopenGauss PostgreSQL✔️✔️✔️-✔️-
TiDBKingbaseES PostgreSQL-compatible✔️✔️✔️-✔️-
TiDBKingbaseES Oracle-compatible✔️✔️✔️-✔️-
TiDBPolarDB-X 2.0 Distributed✔️✔️✔️-✔️-
TiDBVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
TiDBVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
SybasePostgreSQL-✔️✔️-✔️-
SybaseTDSQL Centralized PostgreSQL-✔️✔️-✔️-
GaussDB Centralized MySQL (B/M compatible)MySQL✔️✔️✔️-✔️-
GaussDB Centralized MySQL (B/M compatible)PolarDB MySQL-compatible✔️✔️✔️-✔️-
GaussDB Centralized MySQL (B/M compatible)TDSQL-C MySQL (no datasource)✔️✔️✔️-✔️-
GaussDB Centralized Oracle-compatibleMySQL✔️✔️✔️-✔️-
GaussDB Centralized Oracle-compatiblePolarDB MySQL-compatible✔️✔️✔️-✔️-
GaussDB Centralized Oracle-compatibleTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️-
GaussDB Centralized PostgreSQL-compatibleMySQL✔️✔️✔️-✔️-
GaussDB Centralized PostgreSQL-compatiblePolarDB MySQL-compatible✔️✔️✔️-✔️-
GaussDB Centralized PostgreSQL-compatibleTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️-
GaussDB Centralized MySQL (B/M compatible)PostgreSQL✔️✔️✔️-✔️-
GaussDB Centralized Oracle-compatiblePostgreSQL✔️✔️✔️-✔️-
GaussDB Centralized PostgreSQL-compatiblePostgreSQL✔️✔️✔️-✔️-
GaussDB Centralized MySQL (B/M compatible)Oracle✔️✔️✔️-✔️✔️
GaussDB Centralized Oracle-compatibleOracle✔️✔️✔️-✔️✔️
GaussDB Centralized PostgreSQL-compatibleOracle✔️✔️✔️-✔️✔️
GaussDB Centralized MySQL (B/M compatible)Doris✔️✔️✔️-✔️-
GaussDB Centralized Oracle-compatibleDoris✔️✔️✔️-✔️-
GaussDB Centralized PostgreSQL-compatibleDoris✔️✔️✔️-✔️-
GaussDB Centralized MySQL (B/M compatible)SelectDB (no datasource)✔️✔️✔️-✔️-
GaussDB Centralized Oracle-compatibleSelectDB (no datasource)✔️✔️✔️-✔️-
GaussDB Centralized PostgreSQL-compatibleSelectDB (no datasource)✔️✔️✔️-✔️-
GaussDB Centralized MySQL (B/M compatible)Kafka-✔️✔️---
GaussDB Centralized Oracle-compatibleKafka-✔️✔️---
GaussDB Centralized PostgreSQL-compatibleKafka-✔️✔️---
GaussDB Centralized MySQL (B/M compatible)DWS✔️✔️✔️-✔️-
GaussDB Centralized Oracle-compatibleDWS✔️✔️✔️-✔️-
GaussDB Centralized PostgreSQL-compatibleDWS✔️✔️✔️-✔️-
GaussDB Centralized MySQL (B/M compatible)StarRocks✔️✔️✔️-✔️-
GaussDB Centralized Oracle-compatibleStarRocks✔️✔️✔️-✔️-
GaussDB Centralized PostgreSQL-compatibleStarRocks✔️✔️✔️-✔️-
GaussDB Centralized MySQL (B/M compatible)GaussDB Centralized MySQL✔️✔️✔️-✔️✔️
GaussDB Centralized MySQL (B/M compatible)GaussDB Centralized Oracle✔️✔️✔️-✔️✔️
GaussDB Centralized MySQL (B/M compatible)GaussDB Centralized PostgreSQL✔️✔️✔️-✔️✔️
GaussDB Centralized Oracle-compatibleGaussDB Centralized MySQL✔️✔️✔️-✔️✔️
GaussDB Centralized Oracle-compatibleGaussDB Centralized Oracle✔️✔️✔️-✔️✔️
GaussDB Centralized Oracle-compatibleGaussDB Centralized PostgreSQL✔️✔️✔️-✔️✔️
GaussDB Centralized PostgreSQL-compatibleGaussDB Centralized MySQL✔️✔️✔️-✔️✔️
GaussDB Centralized PostgreSQL-compatibleGaussDB Centralized Oracle✔️✔️✔️-✔️✔️
GaussDB Centralized PostgreSQL-compatibleGaussDB Centralized PostgreSQL✔️✔️✔️-✔️✔️
GaussDB Centralized MySQL (B/M compatible)openGauss MySQL✔️✔️✔️-✔️-
GaussDB Centralized MySQL (B/M compatible)openGauss Oracle✔️✔️✔️-✔️-
GaussDB Centralized MySQL (B/M compatible)openGauss PostgreSQL✔️✔️✔️-✔️-
GaussDB Centralized Oracle-compatibleopenGauss MySQL✔️✔️✔️-✔️-
GaussDB Centralized Oracle-compatibleopenGauss Oracle✔️✔️✔️-✔️-
GaussDB Centralized Oracle-compatibleopenGauss PostgreSQL✔️✔️✔️-✔️-
GaussDB Centralized PostgreSQL-compatibleopenGauss MySQL✔️✔️✔️-✔️-
GaussDB Centralized PostgreSQL-compatibleopenGauss Oracle✔️✔️✔️-✔️-
GaussDB Centralized PostgreSQL-compatibleopenGauss PostgreSQL✔️✔️✔️-✔️-
GaussDB Centralized MySQL (B/M compatible)DataHub✔️✔️✔️-✔️-
GaussDB Centralized Oracle-compatibleDataHub✔️✔️✔️-✔️-
GaussDB Centralized PostgreSQL-compatibleDataHub✔️✔️✔️-✔️-
openGauss MySQLMySQL✔️✔️✔️-✔️-
openGauss MySQLPolarDB MySQL-compatible✔️✔️✔️-✔️-
openGauss MySQLTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️-
openGauss OracleMySQL✔️✔️✔️-✔️-
openGauss OraclePolarDB MySQL-compatible✔️✔️✔️-✔️-
openGauss OracleTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️-
openGauss PostgreSQLMySQL✔️✔️✔️-✔️-
openGauss PostgreSQLPolarDB MySQL-compatible✔️✔️✔️-✔️-
openGauss PostgreSQLTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️-
openGauss MySQLSQL Server✔️✔️✔️-✔️-
openGauss OracleSQL Server✔️✔️✔️-✔️-
openGauss OracleOracle✔️✔️✔️-✔️-
openGauss PostgreSQLOracle✔️✔️✔️-✔️-
openGauss OracleOceanBase Oracle✔️✔️✔️-✔️-
openGauss PostgreSQLOceanBase Oracle✔️✔️✔️-✔️-
openGauss MySQLOceanBase MySQL✔️✔️✔️-✔️-
openGauss OracleOceanBase MySQL✔️✔️✔️-✔️-
openGauss PostgreSQLOceanBase MySQL✔️✔️✔️-✔️-
openGauss MySQLDb2✔️✔️✔️-✔️-
openGauss OracleDb2✔️✔️✔️-✔️-
openGauss PostgreSQLDb2✔️✔️✔️-✔️-
openGauss MySQLDoris✔️✔️✔️-✔️-
openGauss OracleDoris✔️✔️✔️-✔️-
openGauss PostgreSQLDoris✔️✔️✔️-✔️-
openGauss MySQLClickHouse✔️✔️✔️-✔️-
openGauss OracleClickHouse✔️✔️✔️-✔️-
openGauss PostgreSQLClickHouse✔️✔️✔️-✔️-
openGauss MySQLDameng✔️✔️✔️-✔️-
openGauss OracleDameng✔️✔️✔️-✔️-
openGauss PostgreSQLDameng✔️✔️✔️-✔️-
openGauss MySQLGreenplum✔️✔️✔️-✔️-
openGauss OracleGreenplum✔️✔️✔️-✔️-
openGauss PostgreSQLGreenplum✔️✔️✔️-✔️-
openGauss MySQLStarRocks✔️✔️✔️-✔️-
openGauss OracleStarRocks✔️✔️✔️-✔️-
openGauss PostgreSQLStarRocks✔️✔️✔️-✔️-
openGauss MySQLTiDB✔️✔️✔️-✔️-
openGauss OracleTiDB✔️✔️✔️-✔️-
openGauss PostgreSQLTiDB✔️✔️✔️-✔️-
openGauss MySQLopenGauss MySQL✔️✔️✔️✔️✔️-
openGauss MySQLopenGauss Oracle✔️✔️✔️✔️✔️-
openGauss MySQLopenGauss PostgreSQL✔️✔️✔️✔️✔️-
openGauss OracleopenGauss MySQL✔️✔️✔️✔️✔️-
openGauss OracleopenGauss Oracle✔️✔️✔️✔️✔️-
openGauss OracleopenGauss PostgreSQL✔️✔️✔️✔️✔️-
openGauss PostgreSQLopenGauss MySQL✔️✔️✔️✔️✔️-
openGauss PostgreSQLopenGauss Oracle✔️✔️✔️✔️✔️-
openGauss PostgreSQLopenGauss PostgreSQL✔️✔️✔️✔️✔️-
openGauss MySQLPolarDB Oracle-compatible✔️✔️✔️-✔️-
openGauss OraclePolarDB Oracle-compatible✔️✔️✔️-✔️-
openGauss PostgreSQLPolarDB Oracle-compatible✔️✔️✔️-✔️-
openGauss MySQLVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
openGauss OracleVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
openGauss PostgreSQLVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleMySQL✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatiblePolarDB MySQL-compatible✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleSQL Server✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatiblePolarDB PostgreSQL-compatible✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatiblePostgreSQL✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleTDSQL Centralized PostgreSQL✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleOracle✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleOceanBase Oracle✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleOceanBase MySQL✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleDoris✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleSelectDB (no datasource)✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleClickHouse✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleKafka✔️✔️✔️---
KingbaseES PostgreSQL-compatibleDameng✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleGreenplum✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleStarRocks✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleTiDB✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleopenGauss MySQL✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleopenGauss Oracle✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleopenGauss PostgreSQL✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleKingbaseES PostgreSQL-compatible✔️✔️✔️✔️✔️-
KingbaseES PostgreSQL-compatibleKingbaseES Oracle-compatible✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatiblePolarDB Oracle-compatible✔️✔️✔️-✔️-
KingbaseES PostgreSQL-compatibleVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleMySQL✔️✔️✔️-✔️-
KingbaseES Oracle-compatiblePolarDB MySQL-compatible✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleSQL Server✔️✔️✔️-✔️-
KingbaseES Oracle-compatiblePolarDB PostgreSQL-compatible✔️✔️✔️-✔️-
KingbaseES Oracle-compatiblePostgreSQL✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleTDSQL Centralized PostgreSQL✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleOracle✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleOceanBase Oracle✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleOceanBase MySQL✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleDb2✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleDoris✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleSelectDB (no datasource)✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleClickHouse✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleKafka✔️✔️✔️---
KingbaseES Oracle-compatibleDameng✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleGreenplum✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleStarRocks✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleTiDB✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleopenGauss MySQL✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleopenGauss Oracle✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleopenGauss PostgreSQL✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleKingbaseES PostgreSQL-compatible✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleKingbaseES Oracle-compatible✔️✔️✔️✔️✔️-
KingbaseES Oracle-compatiblePolarDB Oracle-compatible✔️✔️✔️-✔️-
KingbaseES Oracle-compatibleVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
PolarDB Oracle-compatibleMySQL✔️✔️✔️-✔️-
PolarDB Oracle-compatiblePolarDB MySQL-compatible✔️✔️✔️-✔️-
PolarDB Oracle-compatibleTDSQL-C MySQL (no datasource)✔️✔️✔️-✔️-
PolarDB Oracle-compatibleSQL Server✔️✔️✔️-✔️-
PolarDB Oracle-compatiblePolarDB PostgreSQL-compatible✔️✔️✔️-✔️-
PolarDB Oracle-compatiblePostgreSQL✔️✔️✔️-✔️-
PolarDB Oracle-compatibleOracle✔️✔️✔️-✔️-
PolarDB Oracle-compatibleOceanBase Oracle✔️✔️✔️-✔️-
PolarDB Oracle-compatibleOceanBase MySQL✔️✔️✔️-✔️-
PolarDB Oracle-compatibleDb2✔️✔️✔️-✔️-
PolarDB Oracle-compatibleDoris✔️✔️✔️-✔️-
PolarDB Oracle-compatibleClickHouse✔️✔️✔️-✔️-
PolarDB Oracle-compatibleDameng✔️✔️✔️-✔️-
PolarDB Oracle-compatibleGreenplum✔️✔️✔️-✔️-
PolarDB Oracle-compatibleStarRocks✔️✔️✔️-✔️-
PolarDB Oracle-compatibleTiDB✔️✔️✔️-✔️-
PolarDB Oracle-compatibleopenGauss MySQL✔️✔️✔️-✔️-
PolarDB Oracle-compatibleopenGauss Oracle✔️✔️✔️-✔️-
PolarDB Oracle-compatibleopenGauss PostgreSQL✔️✔️✔️-✔️-
PolarDB Oracle-compatiblePolarDB Oracle-compatible✔️✔️✔️✔️✔️✔️
PolarDB Oracle-compatibleVastbase G100 PostgreSQL-compatible✔️✔️✔️-✔️-
PolarDB Oracle-compatibleVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
PolarDB-X 2.0 DistributedPolarDB-X 1.0 Distributed✔️✔️✔️-✔️-
PolarDB-X 1.0 DistributedPolarDB-X 2.0 Centralized✔️✔️✔️---
PolarDB-X 2.0 CentralizedPolarDB-X 2.0 Centralized✔️✔️✔️✔️✔️✔️
Azure SQL DatabaseSQL Server✔️✔️✔️-✔️-
Azure SQL DatabasePolarDB PostgreSQL-compatible✔️✔️✔️-✔️-
Azure SQL DatabasePostgreSQL✔️✔️✔️-✔️-
Azure SQL DatabaseTDSQL Centralized PostgreSQL✔️✔️✔️-✔️-
Azure SQL DatabaseAzure SQL Database✔️✔️✔️✔️✔️-
Vastbase G100 OracleMySQL✔️✔️✔️-✔️-
Vastbase G100 OraclePolarDB MySQL-compatible✔️✔️✔️-✔️-
Vastbase G100 PostgreSQLMySQL✔️✔️✔️-✔️-
Vastbase G100 PostgreSQLPolarDB MySQL-compatible✔️✔️✔️-✔️-
Vastbase G100 OraclePolarDB PostgreSQL-compatible✔️✔️✔️-✔️-
Vastbase G100 OracleOceanBase Oracle✔️✔️✔️-✔️-
Vastbase G100 PostgreSQLOceanBase Oracle✔️✔️✔️-✔️-
Vastbase G100 OracleOceanBase MySQL✔️✔️✔️-✔️-
Vastbase G100 OracleDb2✔️✔️✔️-✔️-
Vastbase G100 OracleStarRocks✔️✔️✔️-✔️-
Vastbase G100 OracleTiDB✔️✔️✔️-✔️-
Vastbase G100 OraclePolarDB Oracle-compatible✔️✔️✔️-✔️-
Vastbase G100 OracleVastbase G100 Oracle-compatible✔️✔️✔️-✔️-
GoldenDBOracle✔️✔️✔️-✔️-
GoldenDBDb2✔️✔️✔️-✔️-
GoldenDBGoldenDB✔️✔️✔️-✔️-

A complete one-way data replication workflow can include the following phases:

  1. Schema replication: Synchronizes database and table structures from the source data source to the target data source.
  2. Full data replication: Synchronizes existing data from the source data source to the target data source.
  3. Incremental data replication: Synchronizes ongoing source-side data changes to the target database in real time.

After replication completes, verify data and schema compatibility on the target data source. If verification passes, switch application traffic or downstream workloads to the target data source.

Run these phases together or separately based on your business requirements. For example, run only schema replication, only full data replication, or only incremental data replication.

Bidirectional replication adds reverse incremental replication from the target data source back to the source data source.

  • When a relational database replicates to Kafka, the delivery format can be Canal JSON or Avro. Avro delivery requires a Confluent Schema Registry endpoint and, when applicable, its authentication credentials.
  • YashanDB can be used as a target for schema and full replication from relational sources such as MySQL, Oracle, PostgreSQL, and SQL Server. Incremental availability depends on the replication types displayed for the selected link. When YashanDB is the source, schema and full replication are currently supported, but incremental replication is not.
  • For Oracle-source incremental replication, the writer resolves conflicts between dependent rows and adjusts the write order, reducing write failures caused by dependencies such as foreign keys.
  • For SQL Server sources, incremental DDL replication can convert TRUNCATE TABLE.
  • Oracle-to-TiDB and TiDB-to-Oracle incremental DDL replication can convert COMMENT syntax.
  • PostgreSQL-to-GaussDB replication supports column type mapping.
  • A replication task that has reached a terminal state cannot be started again, preventing a terminated task from running again and causing inconsistent data.
  • Oracle-to-PolarDB Oracle schema and incremental replication support Materialized View Log objects.
  • When row-level logical merge by primary key is disabled, table-batch writing can group and write INSERT, UPDATE, and DELETE operations concurrently by operation type while preserving intermediate DML for downstream subscribers.
  • SQL Server metadata retrieval filters a broader set of system tables to avoid subscribing to system-table changes.
  • Incremental replication tasks that involve Kafka periodically check Kafka server connectivity. If the server is unavailable, use the error displayed in the replication task details to check the Kafka address, network, and authentication settings.
  • Data Replication prechecks check object-configuration conflicts in unfinished replication tasks, including replication loops and multiple tasks that replicate the same table.
  • After you create a bidirectional replication task, starting the forward task does not depend on the reverse task having started. If the precheck reports an object-configuration conflict, resolve the conflicting task as instructed before starting.
  • PostgreSQL incremental replication supports parsing and replicating COMMENT ON CONSTRAINT statements.
  • When GaussDB is the source, incremental replication supports CREATE and DROP DDL for non-table objects such as procedure, function, and sequence.
tip

Schema replication and incremental data replication cannot be selected together unless full data replication is also selected.

Before you begin​

  • Add the source and target data sources to NineData. For details, see Add a Data Source.

  • For bidirectional replication, keep the source and target database versions consistent when possible.

  • If the task does not include schema replication, make sure the target data source already contains the table structures to be replicated.

  • When MySQL is the source, enable Binlog and set the following Binlog parameters:

    • binlog_format=ROW

    • binlog_row_image=FULL

      tip

      If the source data source is a standby database, enable log_slave_updates so NineData can obtain the complete Binlog.

Restrictions​

  • Data replication applies only to user databases in the data source. System databases are not replicated. For example, MySQL system databases such as information_schema, mysql, performance_schema, and sys are not replicated.
  • The source account must have SELECT privileges for schema and full data replication, SHOW VIEW privileges for view replication, and REPLICATION CLIENT and REPLICATION SLAVE privileges for incremental replication. The target account must have DML and DDL privileges.
  • Before starting data synchronization, evaluate the performance of the source and target data sources. Run synchronization during off-peak hours when possible. Otherwise, full data initialization consumes read and write resources on both data sources and increases database load.
  • If the source data source contains views, functions, stored procedures, triggers, or events, the definer information of these objects is changed on the target data source to the account used by the current synchronization task to access the target data source.
  • Make sure every table in the synchronization objects has a primary key or unique constraint, and that column names are unique. Otherwise, duplicate rows may be synchronized.
  • If triggers exist in the source data source, NineData synchronizes the triggers only after incremental synchronization ends.

Procedure​

  1. Sign in to the NineData Console.

  2. In the left navigation pane, click Replication > Data Replication.

  3. On the Replication page, click Create Replication.

  4. On the Source & Target tab, configure the fields in the table, and click Next.

    Parameter
    Description
    NameEnter a name for the data synchronization task. To make the task easier to find and manage later, use a meaningful name. Up to 64 characters are supported.
    SourceThe data source that contains the objects to synchronize.
    Datahub ProjectSelect the target Datahub Project. Data from the source data source will be written to the specified Project.
    Target Object NameSelect the case conversion rule for object names after they are migrated from the source to the target.
    • Convert all to Lowercase: Regardless of the naming rule on the source, all target names are lowercase.
    • Consistent with Source: Keep the naming rule of the source.
    • Convert all to Uppercase: Regardless of the naming rule on the source, all target names are uppercase.
    Replication ModeSelect the replication mode.
    • Uni-directional: A unidirectional data replication task from the source data source to the target data source.
    • Bi-directional: A bidirectional incremental data replication task between the source and target data sources.
    TypeRequired when Replication Mode is Bi-directional.Select the replication type.
    • Schema: Synchronize only the database and table schemas of the source data source, without synchronizing data.
    • Full: Synchronize all objects and data from the source data source, namely full data replication. The switch on the right enables periodic full replication. For more information, see Periodic Full Replication.
    • Incremental: After full synchronization completes, perform incremental synchronization based on the logs of the source data source.The setting icon is used to configure incremental operation types. Clear the operation types to exclude. Cleared operation types will be ignored during incremental synchronization.
    Forward TypeRequired when Replication Mode is Bi-directional. Select the forward replication type.
    • Schema: Synchronize only the database and table schemas of the source data source, without synchronizing data.
    • Full: Synchronize all objects and data from the source data source, namely full data replication.
    • Incremental: After full synchronization completes, perform incremental synchronization based on the logs of the source data source.The setting icon is used to configure incremental operation types. Clear the operation types to exclude. Cleared operation types will be ignored during incremental synchronization.
    Incremental StartedRequired only when Type is Incremental.
    • From Started: Use the current replication task start time as the baseline for incremental replication.
    • Customized Time: Select the point in time from which incremental replication starts. Select a time zone based on the region of your business. If the configured time point is earlier than the current replication task start time and DDL operations occurred during that period, the replication task will fail.
    Forward Incremental StartedRequired only when Forward Type is Incremental.
    • From Started: Use the current replication task start time as the baseline for incremental replication.
    • Customized Time: Select the point in time from which incremental replication starts. Select a time zone based on the region of your business. If the configured time point is earlier than the current replication task start time and DDL operations occurred during that period, the replication task will fail.
    Reverse TypeThe replication type from the target data source to the source data source. This parameter is displayed only when Replication Mode is Bi-directional. Only Incremental is supported, and it is selected by default and cannot be disabled.
    SpecThe specification of the replication task. A larger specification provides a higher replication rate. Hover over the details icon to view the rate and configuration information of each specification. If you configure the data replication task before purchasing resources, you can select the required specification here. If you purchase resources before configuring the task, NineData selects the specification specified during purchase, and you cannot change it in the task configuration.
    If target table already exists (Required when Schema is selected)
    • Pre-Check Error and Stop Task: Stop the task when a table with the same name is detected during the precheck stage.
    • Skip and Continue Task: When a table with the same name is detected during the precheck stage, display a message and continue the task. During schema replication, ignore the table with the same name. If you also perform data replication, data is appended to the table with the same name and existing data is not overwritten.
    • Delete Objects and Rewrite: When a table with the same name is detected during the precheck stage, display a message and continue the task. During schema replication, delete the table with the same name in the target database and replicate the table schema again based on the source database. If you also perform data replication, data is written after schema replication completes.
    Target Table Exists Data (Required when Full is selected)
    • Pre-Check Error and Stop Task: Stop the task when data is detected in the target table during the precheck stage.
    • Ignore existing target data and append to it.: When data is detected in the target table during the precheck stage, ignore that data and append other data.
    • Clear target existing data before write: When data is detected in the target table during the precheck stage, delete that data and write it again.
    Incremental data conflict handling strategy for target table (Required when Incremental is selected)
    • Runtime error: During incremental replication, report an error when target data already exists and wait for manual intervention.
    • Do not update target data: During incremental replication, do not write data when target data already exists, and continue subsequent tasks.
    • Update target data: During incremental replication, overwrite the target data when target data already exists.
  5. On the Objects tab, configure the parameters in the table, and click Next.

    Parameter
    Description
    Replication ObjectsSelect the content to replicate. Select All Objects to replicate all content in the source database, or select Customized Object, select the content to replicate in the Source Object list, and click > to add it to the Target Object list on the right.
    BlacklistClick Add to add a blacklist record, and select the database or object to add to the blacklist. The selected content will not be replicated. This is used to exclude specific databases or objects when performing full-database replication for Customized Object or Full Instance.
    • Left drop-down list: Select the database name to add to the blacklist.
    • Right drop-down list: Select objects in the corresponding database. Select multiple objects if required. Leave it empty to add the entire database to the blacklist.
    To add multiple databases to the blacklist, click the Add button below to add another row.

    To create multiple replication tasks with the same replication objects, import a configuration file. Click Import Config, click Download Template to download the template, edit the file, and then click Upload to upload it and import the objects in bulk. For field descriptions and examples, see Import Replication Object Templates. The configuration file uses these fields:

    Parameter
    DescriptionExample
    source_table_nameThe exact source table name of the object to synchronize.example_tbl_name
    target_table_nameThe target table name that receives the synchronized object.example_tbl_name
    source_database_nameThe source database name of the object to synchronize.test_db
    target_database_nameThe target database name that receives the synchronized object.test_db_bak
    column_listThe list of columns to synchronize.["col1", "clo2", "col3"]
    extra_configurationA JSON string containing additional configuration. Use column_rules for column mappings and value rules: column_name is the source column, target_column_name is the target column, target_column_type is the target column type, and column_value is the column value. Use filter_condition for row-level filtering.{"extra_config": {"column_rules": [...]}}
    tip

    The following JSON represents the two example rows in the downloaded Excel template. When uploading the file, keep the Excel column names and enter the extra_configuration value as a JSON string. This code block is not a JSON file that you can upload directly.

    [
    {
    "source_table_name": "example_tbl_name",
    "target_table_name": "example_tbl_name",
    "source_database_name": "test_db",
    "target_database_name": "test_db_bak",
    "column_list": ["col1", "clo2", "col3"],
    "extra_configuration": {
    "extra_config": {
    "column_rules": [
    {
    "column_name": "example_column_name",
    "target_column_name": "example_target_column_name",
    "target_column_type": "int",
    "column_value": "current_timestamp()"
    },
    {
    "column_name": "example_column_name",
    "target_column_name": "example_target_column_name",
    "target_column_type": "int"
    }
    ],
    "filter_condition": "example_condition_expression"
    }
    }
    },
    {
    "source_table_name": "example_order_tbl",
    "target_table_name": "example_order_tbl",
    "source_database_name": "test_db",
    "target_database_name": "test_db_bak",
    "column_list": ["col1", "clo2", "col3"],
    "extra_configuration": {
    "extra_config": {
    "column_rules": [
    {
    "column_name": "example_column_name",
    "target_column_name": "example_target_column_name",
    "target_column_type": "int",
    "column_value": "current_timestamp()"
    },
    {
    "column_name": "example_column_name",
    "target_column_name": "example_target_column_name",
    "target_column_type": "int"
    }
    ],
    "filter_condition": "example_condition_expression"
    }
    }
    }
    ]
  6. On the Mapping tab, configure the mapping that matches the selected replication type, then click Save and Pre-Check. If source or target metadata changes while you configure mappings, click Refresh Metadata to refresh the metadata.

    • Includes Schema: Configure the table name after synchronization to the target data source.

    • Does not include Schema: NineData selects the database with the same name in the target data source by default. If no such database exists, select the target database manually. The table names and column names in the target database must match the synchronization objects. If they do not match, map the table names and column names manually.

    Other available actions:

    • Click Mapping & Filtering to customize the column names after synchronization to the target data source.
    • On the Mapping & Filtering page, enter a comparison expression in the text box below Data Filter as the filtering condition. Only data that meets the filtering conditions is synchronized to the target data source. For example, if the filtering condition is set to emp_no>=10005, data whose emp_no column value is less than 10005 is not synchronized to the target data source.
    • Click the replace_tablename icon to the right of "Target Table" to search for a table name and replace it with the target name.
    • Enter a table name in the Search Table text box to quickly locate the target table.
    • Click Batch Configuration to define common rules in batches, such as table name and column name case conversion, prefix or suffix addition, and replacement. Use this option to apply mapping configuration to many tables and columns at the same time.
  1. On the Pre-check tab, wait for NineData to complete the precheck. After the precheck passes, click Launch.

    • Select Enable data consistency comparison to start a data consistency comparison task based on the source data source after synchronization completes. Based on the selected Type, Enable data consistency comparison starts at these times:

      • Schema: Starts after schema replication completes.
      • Schema+Full: Starts after full replication completes.
      • Full: Starts after full replication completes.
      • Schema+Full+Incremental, Incremental: Starts when incremental data is consistent with the source data source for the first time and Delay is 0 seconds. Click View Details to view synchronization delay on the Details page. sync_delay
    • If the precheck fails, click Details in the Actions column for the failed check item, review the cause, fix the issue, and then click Check Again to run the precheck again until it passes.

    • Items with Warning in Result can be fixed or ignored if required.

  2. On the Launch page, the Launch Successfully message appears, indicating that the synchronization task has started. Then perform these actions:

    • Click View Details to view the execution status of each stage of the synchronization task.
    • Click Back to list to return to the Replication task list page.

Modify incremental synchronization positions​

For a task whose replication type includes Incremental and whose task details provide position management, you can view and modify synchronization positions. The available position types and input format depend on the data source and replication link. Follow the options displayed for the current task. If a position is shown as - or no position type is available for selection, the current task has no position available for modification.

This feature is intended for specific operations and maintenance scenarios where you need to specify a new log-read position or synchronization-write position for an incremental task. The read position controls where the task continues reading from the source, while the write position controls where it continues processing synchronized writes. After you submit the change, the task pauses and restarts so that the new position can take effect.

  1. In the replication task list, click the Task ID of the target task to open its details.

  2. On the Incremental tab, click Synchronous site management to view the current read site and write site.

  3. Click modify site. Under site type, select the read site or write site to adjust, and then enter the value for Adjustment point according to the position type displayed for the task.

  4. Confirm the value and scope of impact, and click Verify and submit. The task enters a pause and relaunch process. After the task resumes running, open Synchronous site management again to confirm that the position has been updated.

danger

Modifying the synchronization point will adjust the point of log reading or synchronization writing, which may cause data loss, so operate with caution! Modifying either position may cause data loss or inconsistency between the source and target. Perform this operation only in an authorized test environment or during a maintenance window with a backup and rollback plan. A task whose incremental replication has finished cannot have its position reset.

Result​

  1. Sign in to the NineData Console.

  2. In the navigation menu, select Replication > Data Replication.

  3. On the Replication page, click the Task ID of the target synchronization task. The task details page shows the following information.

    result

    Number
    Function
    Description
    1Sync DelayThe synchronization delay between the source and target data sources. 0 seconds means the target has caught up with the source. Switch traffic based on your migration plan.
    2Configure AlertsWhen the task fails, NineData notifies the selected channel through the configured alert.
    3More
    • Pause: Pause the task. Only tasks with Running status are selectable.
    • Duplicate: Create a new replication task with the same configuration as the current task.
    • Terminate: Terminate tasks that are incomplete or still listening (that is, in incremental synchronization). After a task is terminated, it cannot be restarted, so proceed with caution. If the replication objects include triggers or events, the dialog displays termination options for the applicable object type:
      • Migrate triggers and terminate or Migrate events and terminate: Migrate the applicable objects to the target data source before terminating the task.
      • Do not migrate triggers; terminate immediately or Do not migrate events; terminate immediately: Terminate the task immediately without migrating the applicable objects.
    • Delete: Delete the task. Once deleted, it cannot be recovered, so proceed with caution.
    4Structure Replication (displayed in scenarios involving structure replication)Displays the progress and detailed information of structure replication.
    • Select Log to view the execution logs of structure replication.
    • Select the refresh to view the latest information.
    • Select View DDL in the Actions column for the target object in the list to view SQL replay.
    5Full Replication (displayed in scenarios involving full replication)Displays the progress and detailed information of full replication.
    • Select Monitor to view various monitoring indicators during full replication. During full replication, select Flow Control Settings on the monitoring page to limit the rate of writing to the target data source per second. The unit is rows/second.
    • Select Log to view the execution logs of full replication.
    • Select the refresh to view the latest information.
    6Incremental Replication (displayed in scenarios involving incremental replication)Displays incremental replication indicators.
    • Select View Threads to view the operations currently being executed by the current replication task, including:
      • Thread ID: Replication tasks are executed in multiple threads, and this shows the current thread number.
      • Execute SQL: Details of the SQL statement currently being executed by the current thread.
      • Response Time: The response time of the current thread. If this value increases, it indicates that the current thread may be stuck for some reason.
      • Event Time: The timestamp when the current thread was started.
      • Status: The status of the current thread.
    • Select Flow Control Settings to limit the rate of writing to the target data source per second. The unit is rows/second.
    • Select Log to view the execution logs of incremental replication.
    • Select the refresh to view the latest information.
    7Modify ObjectDisplays the modification records of synchronization objects.
    • Select Modify Objects to configure the synchronization objects.
    • Select the refresh to view the latest information.
    8Data ComparisonDisplays the comparison results between the source and target data sources. If data comparison is not enabled, select Enable Comparison on the page to enable it.
    • Select Re-compare to rerun the comparison for the current source and target data sources.
    • Select Stop to stop the comparison task immediately after it starts.
    • Select Log to view the execution logs of consistency comparison.
    • Select Monitor (displayed only in data comparison) to view the trend chart of RPS (records per second) comparison. Select Details to view earlier records.
    • Select the details in the Actions column in the comparison list (displayed under the Data tab only when inconsistencies are found) to view details of the comparison between the source and target data sources.
    • Select the sql in the Actions column in the comparison list (displayed only when inconsistencies are found): Generate change SQL. Copy this SQL to the target data source and run it to fix the mismatch.
    9ExpandDisplays detailed information of the current replication task. Common actions:
    • Export table configuration: Export the current task's database and table configuration for quick import when creating another replication task with the same objects.
    • Alert Rules: Configure alerts for the current task.

Next steps​

Introduction to data replication

Import Replication Object Templates