This document collects the frequently asked questions (FAQs) about TiDB Data Migration (DM).
Currently, DM only supports decoding the standard version of MySQL or MariaDB binlog. It has not been tested for Alibaba Cloud RDS or other cloud databases. If you are confirmed that its binlog is in standard format, then it is supported.
Currently, DM does not support it and only supports the regular expressions of the Golang standard library. See regular expressions supported by Golang via re2-syntax.
DM will attempt to split a single statement containing multiple DDL change operations into multiple statements containing only one DDL operation, but might not cover all cases. It is recommended to include only one DDL operation in a statement executed upstream, or verify it in the test environment. If it is not supported, you can file an issue to the DM repository.
When you encounter a DDL statement unsupported by TiDB, you need to manually handle it using dmctl (skipping the DDL statement or replacing the DDL statement with a specified DDL statement). For details, see Skip or replace abnormal SQL statements.
Currently, TiDB is not compatible with all the DDL statements that MySQL supports. See MySQL Compatibility.
You need to reset the entire data replication task in the following cases:
RESET MASTERis accidentally executed in the upstream database.
Generally, at this time, the relay unit exits with an error and cannot be automatically restored gracefully. You need to manually restore the data replication and the steps are as follows:
stop-task command to stop all the replication tasks that are currently running.
Use Ansible to stop the entire DM cluster.
Manually clean up the relay log directory of the DM-worker corresponding to the MySQL master whose binlog is reset.
Clean up downstream replicated data.
Use Ansible to start the entire DM cluster.
Restart data replication with the new task name, or set