MySQL 5.7 Reference Manual Including MySQL NDB Cluster 7.5 and NDB Cluster 7.6

16.1.4 MySQL Multi-Source Replication

MySQL multi-source replication enables a replication slave to receive transactions from multiple immediate masters in parallel. In a multi-source replication topology, a slave creates a replication channel for each master that it should receive transactions from. For more information on how replication channels function, see Section 16.2.3, “Replication Channels”.

You might choose to implement multi-source replication to achieve goals like these:

Multi-source replication does not implement any conflict detection or resolution when applying transactions, and those tasks are left to the application if required.

Note

Each channel on a multi-source replication slave must replicate from a different master. You cannot set up multiple replication channels from a single slave to a single master. This is because the server IDs of replication slaves must be unique in a replication topology. The master distinguishes slaves only by their server IDs, not by the names of the replication channels, so it cannot recognize different replication channels from the same slave.

A rmulti-source replication slave can also be set up as a multi-threaded replication slave, by setting the slave_parallel_workers system variable to a value greater than 0. When you do this on a multi-source replication slave, each channel on the slave has the specified number of applier threads, plus a coordinator thread to manage them. You cannot configure the number of applier threads for individual channels.

This section provides tutorials on how to configure masters and slaves for multi-source replication, how to start, stop and reset multi-source slaves, and how to monitor multi-source replication.