Skip to main content

Aurora MySQL Replication Compatibility

NineData Data Replication supports Aurora MySQL as a source for structure replication, full replication, and incremental replication to Aurora MySQL or OceanBase MySQL. In this article, the MySQL-compatible source in the test reports is referred to as Aurora MySQL. The actual support scope depends on the task type, source and target versions, and precheck results in the current console.

Supported paths

SourceTargetStructure replicationFull replicationIncremental replication
Aurora MySQLAurora MySQLSupportedSupportedSupported
Aurora MySQLOceanBase MySQLSupportedSupportedSupported

Object coverage

Tables and constraints

Object or scenarioAurora MySQL → Aurora MySQLAurora MySQL → OceanBase MySQL
Regular tables, including built-in and complex data typesSupportedSupported
Partitioned tablesSupportedSupported
Single-column integer, string, or time primary keysSupportedSupported
Composite primary keysSupportedSupported
Single-column or composite unique keysSupportedSupported
Single-column or composite nullable unique keysSupportedSupported
Tables with regular indexes or no indexesSupportedSupported
Tables with no primary key and no unique keySupportedSupported
Tables with both a primary key and a unique keySupportedSupported
CHECK constraintsSupportedSupported
Foreign-key dependencies and updates to foreign-key columns in parent and child tablesSupportedSupported

Other objects

Object typeAurora MySQL → Aurora MySQLAurora MySQL → OceanBase MySQL
VIEWSupportedSupported
EVENT (one-time and recurring events)SupportedNot supported
TRIGGERSupportedNot supported
FUNCTIONSupportedSupported
PROCEDURESupportedNot supported

Object names and mappings

Object name or mapping scenarioAurora MySQL → Aurora MySQLAurora MySQL → OceanBase MySQL
Table or column names containing keywordsSupportedSupported
Table or column names containing Chinese charactersSupportedSupported
Table or column names containing special charactersSupportedSupported
Case-sensitive object names, such as Aa_tableSupportedSupported
Database name mappingSupportedSupported
Table name mappingSupportedSupported
Column name mappingSupportedSupported

Data type coverage

The following data types and the tested length, precision, fractional-seconds precision, character-set, collation, UNSIGNED, and ZEROFILL variants are supported.

Type categoryCoverageAurora MySQL → Aurora MySQLAurora MySQL → OceanBase MySQL
NumericTINYINT, SMALLINT, MEDIUMINT, INT, INTEGER, BIGINT, DECIMAL, DEC, NUMERIC, FIXED, FLOAT, DOUBLE, DOUBLE PRECISION, REAL, BIT, BOOLEAN, and SERIALSupportedSupported
String and binaryCHAR, VARCHAR, CHARACTER VARYING, BINARY, VARBINARY, TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, and JSONSupportedSupported
Date and timeDATE, DATETIME, TIME, TIMESTAMP, and YEARSupportedSupported
SpatialGEOMETRY, POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, and GEOMETRYCOLLECTIONSupportedSupported

Chinese characters, special characters, and emoji in replicated content are supported.

DML support

DML operationAurora MySQL → Aurora MySQLAurora MySQL → OceanBase MySQL
INSERTSupportedSupported
UPDATESupportedSupported
DELETESupportedSupported

Incremental DML is supported for numeric, string, date and time, and spatial data types.

DDL support

Aurora MySQL to OceanBase MySQL

DDL operation or scenarioSupport
CREATE TABLE, DROP TABLE, and ALTER TABLESupported
TRUNCATE TABLE and RENAME TABLESupported
DDL and DML executed in an interleaved sequenceSupported
CREATE VIEW, DROP VIEW, and ALTER VIEWSupported
CREATE FUNCTION and DROP FUNCTIONSupported
CREATE EVENT and DROP EVENTNot supported
CREATE TRIGGER, DROP TRIGGER, and ALTER TRIGGERNot supported
CREATE PROCEDURE and DROP PROCEDURENot supported

Aurora MySQL to Aurora MySQL

DDL operation or scenarioSupport
CREATE TABLE, DROP TABLE, and ALTER TABLESupported
TRUNCATE TABLE and RENAME TABLESupported
DDL and DML executed in an interleaved sequenceSupported
CREATE VIEW, DROP VIEW, and ALTER VIEWSupported
CREATE EVENT and DROP EVENTSupported
CREATE TRIGGER, DROP TRIGGER, and ALTER TRIGGERSupported
CREATE FUNCTION and DROP FUNCTIONSupported
CREATE PROCEDURE and DROP PROCEDURESupported

The table above lists the DDL support scope for Aurora MySQL to Aurora MySQL. Enable DDL replication in the task and pass the prechecks before you start replication.

Recommendations

  • Add the source and target data sources to NineData and run the prechecks before creating a task.
  • If the target is OceanBase MySQL, exclude or manually convert EVENT, TRIGGER, and PROCEDURE objects before starting the task because incremental replication for these objects is not supported.
  • Handle DDL that is not listed in the table manually on the target, and confirm object mappings and dependencies before execution.
  • For incremental replication, enable Binlog on the source, set binlog_format to ROW, and set binlog_row_image to FULL. If the source is a standby database, enable log_slave_updates for the standby architecture.