|
1 | 1 | --- |
2 | 2 | title: Compatibility Catalog of TiDB Data Migration |
3 | | -summary: This document describes the compatibility between DM of different versions and upstream/downstream databases. |
| 3 | +summary: This document describes the compatibility of TiDB Data Migration (DM) with upstream and downstream databases. |
4 | 4 | --- |
5 | 5 |
|
6 | 6 | # Compatibility Catalog of TiDB Data Migration |
7 | 7 |
|
8 | 8 | DM supports migrating data from different sources to TiDB clusters. Based on the data source type, DM has four compatibility levels: |
9 | 9 |
|
10 | | -- **Generally available (GA)**: The application scenario has been verified and passed the GA test. |
11 | | -- **Experimental**: Although the application scenario has been verified, the test does not cover all scenarios or involves only a limited number of users. The application scenario might encounter problems occasionally. |
12 | | -- **Not tested**: DM is expected to be always compatible with MySQL during iteration. However, due to resource constraints, not all MySQL forks are tested with DM. Therefore, the *not tested* source or target is technically compatible with DM, but is not fully tested, which means you need to verify its compatibility before you use. |
13 | | -- **Incompatible**: DM is proved to be incompatible with the data source and the application is not recommended for use in production environments. |
| 10 | +- **Generally available (GA)**: The application scenario has been verified and passed GA testing. |
| 11 | +- **Experimental**: Common application scenarios have been verified, but coverage is limited or involves only a small number of users. Occasional issues are possible, so you need to verify compatibility in your specific scenario. |
| 12 | +- **Not tested**: DM aims to be compatible with the MySQL protocol and binlog. However, not all MySQL forks or versions are included in the DM test matrix. If a fork or version uses MySQL-compatible protocols and binlog formats, it is expected to work, but you must verify compatibility in your own environment before use. |
| 13 | +- **Incompatible**: DM has known blocking issues, so production use is not recommended. |
14 | 14 |
|
15 | 15 | ## Data sources |
16 | 16 |
|
17 | | -|Data source|Compatibility level|Remarks| |
18 | | -|-|-|-| |
19 | | -|MySQL ≤ 5.5|Not tested|| |
20 | | -|MySQL 5.6|GA|| |
21 | | -|MySQL 5.7|GA|| |
22 | | -|MySQL 8.0|GA|Does not support binlog transaction compression [Transaction_payload_event](https://dev.mysql.com/doc/refman/8.0/en/binary-log-transaction-compression.html)| |
23 | | -|MariaDB < 10.1.2|Incompatible|Incompatible with binlog of the time type| |
24 | | -|MariaDB 10.1.2 ~ 10.5.10|Experimental|| |
25 | | -|MariaDB > 10.5.10|Incompatible|Permission errors reported in the check procedure| |
| 17 | +| Data source | Compatibility level | Note | |
| 18 | +| - | - | - | |
| 19 | +| MySQL ≤ 5.5 | Not tested | | |
| 20 | +| MySQL 5.6 | GA | | |
| 21 | +| MySQL 5.7 | GA | | |
| 22 | +| MySQL 8.0 | GA | Does not support binlog transaction compression [Transaction_payload_event](https://dev.mysql.com/doc/refman/8.0/en/binary-log-transaction-compression.html). | |
| 23 | +| MariaDB < 10.1.2 | Incompatible | Incompatible with binlog of the time type. | |
| 24 | +| MariaDB 10.1.2 ~ 10.5.10 | Experimental | | |
| 25 | +| MariaDB > 10.5.10 | Not tested | Expected to work in most cases after bypassing the [precheck](/dm/dm-precheck.md). See [MariaDB notes](#mariadb-notes). | |
| 26 | + |
| 27 | +### Incompatibility with foreign key CASCADE operations |
| 28 | + |
| 29 | +- DM creates foreign key **constraints** on the target, but they are not enforced while applying transactions because DM sets the session variable [`foreign_key_checks=OFF`](/system-variables.md#foreign_key_checks). |
| 30 | +- DM does **not** support `ON DELETE CASCADE` or `ON UPDATE CASCADE` behavior by default, and enabling `foreign_key_checks` via a DM task session variable is not recommended. If your workload relies on cascades, **do not assume** that cascade effects will be replicated. |
| 31 | + |
| 32 | +### MariaDB notes |
| 33 | + |
| 34 | +- For MariaDB **10.5.11 and later**, the DM **precheck fails** due to privilege name changes (for example, `BINLOG MONITOR`, `REPLICATION SLAVE ADMIN`, `REPLICATION MASTER ADMIN`). The error appears as `[code=26005] fail to check synchronization configuration` in the replication privilege, dump privilege, and dump connection number checkers. |
| 35 | +- You can **bypass the precheck** by adding `ignore-checking-items: ["all"]` in the DM task. See [DM precheck](/dm/dm-precheck.md) for details. |
26 | 36 |
|
27 | 37 | ## Target databases |
28 | 38 |
|
29 | 39 | > **Warning:** |
30 | 40 | > |
31 | | -> DM v5.3.0 is not recommended. If you have enabled GTID replication but do not enable relay log in DM v5.3.0, data replication fails with low probability. |
32 | | -
|
33 | | -|Target database|Compatibility level|DM version| |
34 | | -|-|-|-| |
35 | | -|TiDB 8.x|GA|≥ 5.3.1| |
36 | | -|TiDB 7.x|GA|≥ 5.3.1| |
37 | | -|TiDB 6.x|GA|≥ 5.3.1| |
38 | | -|TiDB 5.4|GA|≥ 5.3.1| |
39 | | -|TiDB 5.3|GA|≥ 5.3.1| |
40 | | -|TiDB 5.2|GA|≥ 2.0.7, recommended: 5.4| |
41 | | -|TiDB 5.1|GA|≥ 2.0.4, recommended: 5.4| |
42 | | -|TiDB 5.0|GA|≥ 2.0.4, recommended: 5.4| |
43 | | -|TiDB 4.x|GA|≥ 2.0.1, recommended: 2.0.7| |
44 | | -|TiDB 3.x|GA|≥ 2.0.1, recommended: 2.0.7| |
45 | | -|MySQL|Experimental|| |
46 | | -|MariaDB|Experimental|| |
| 41 | +> DM v5.3.0 is not recommended. Enabling GTID replication without relay log in DM v5.3.0 might cause data replication to fail, although the probability is low. |
| 42 | +
|
| 43 | +| Target database | Compatibility level | DM version | |
| 44 | +| - | - | - | |
| 45 | +| TiDB 8.x | GA | ≥ 5.3.1 | |
| 46 | +| TiDB 7.x | GA | ≥ 5.3.1 | |
| 47 | +| TiDB 6.x | GA | ≥ 5.3.1 | |
| 48 | +| TiDB 5.4 | GA | ≥ 5.3.1 | |
| 49 | +| TiDB 5.3 | GA | ≥ 5.3.1 | |
| 50 | +| TiDB 5.2 | GA | ≥ 2.0.7, recommended: 5.4 | |
| 51 | +| TiDB 5.1 | GA | ≥ 2.0.4, recommended: 5.4 | |
| 52 | +| TiDB 5.0 | GA | ≥ 2.0.4, recommended: 5.4 | |
| 53 | +| TiDB 4.x | GA | ≥ 2.0.1, recommended: 2.0.7 | |
| 54 | +| TiDB 3.x | GA | ≥ 2.0.1, recommended: 2.0.7 | |
| 55 | +| MySQL | Experimental | | |
| 56 | +| MariaDB | Experimental | | |
0 commit comments