A replication channel requires two MySQL servers acting as replication servers (one each for the master and slave). For example, this means that in the case of a replication setup with two replication channels (to provide an extra channel for redundancy), there will be a total of four replication nodes, two per cluster.
Replication of a MySQL Cluster as described in this section and
those following is dependent on row-based replication. This means
that the replication master MySQL server must be started with
--binlog-format=ROW
or
--binlog-format=MIXED
, as described
in Section 17.6.6, “Starting MySQL Cluster Replication (Single Replication Channel)”. For
general information about row-based replication, see
Section 16.1.2, “Replication Formats”.
If you attempt to use MySQL Cluster Replication with
--binlog-format=STATEMENT
,
replication fails to work properly because the
ndb_binlog_index
table on the master and the
epoch
column of the
ndb_apply_status
table on the slave are not
updated (see
Section 17.6.4, “MySQL Cluster Replication Schema and Tables”). Instead,
only updates on the MySQL server acting as the replication
master propagate to the slave, and no updates from any other SQL
nodes on the master cluster are replicated.
In all MySQL Cluster NDB 6.x releases, the default value for the
--binlog-format
option is
MIXED
.
Each MySQL server used for replication in either cluster must be
uniquely identified among all the MySQL replication servers
participating in either cluster (you cannot have replication
servers on both the master and slave clusters sharing the same
ID). This can be done by starting each SQL node using the
--server-id=
option, where id
id
is a unique integer.
Although it is not strictly necessary, we will assume for purposes
of this discussion that all MySQL installations are the same
version.
In any event, both MySQL servers involved in replication must be compatible with one another with respect to both the version of the replication protocol used and the SQL feature sets which they support; the simplest and easiest way to assure that this is the case is to use the same MySQL version for all servers involved. Note that in many cases it is not possible to replicate to a slave running a version of MySQL with a lower version number than that of the master — see Section 16.4.2, “Replication Compatibility Between MySQL Versions”, for details.
We assume that the slave server or cluster is dedicated to replication of the master, and that no other data is being stored on it.
It is possible to replicate a MySQL Cluster using statement-based replication. However, in this case, the following restrictions apply:
All updates to data rows on the cluster acting as the master must be directed to a single MySQL server.
It is not possible to replicate a cluster using multiple simultaneous MySQL replication processes.
Only changes made at the SQL level are replicated.
These are in addition to the other limitations of statement-based replication as opposed to row-based replication; see Section 16.1.2.1, “Comparison of Statement-Based and Row-Based Replication”, for more specific information concerning the differences between the two replication formats.
User Comments
Add your own comment.