This section outlines the procedure for starting MySQL Cluster replication using a single replication channel.
Start the MySQL replication master server by issuing this command:
shellM
>mysqld --ndbcluster --server-id=
id
\--log-bin --binlog-format=ROW &
In the previous statement, id
is
this server's unique ID (see
Section 17.6.2, “MySQL Cluster Replication — Assumptions and General Requirements”). This
starts the server's mysqld process with
binary logging enabled using the proper logging format.
You can also start the master with
--binlog-format=MIXED
, in
which case row-based replication is used automatically when
replicating between clusters.
Start the MySQL replication slave server as shown here:
shellS
>mysqld --ndbcluster --server-id=
id
&
In the previous statement, id
is
the slave server's unique ID. It is not necessary to enable
logging on the replication slave.
You should use the --skip-slave-start
option with this command or else you should include
skip-slave-start
in the slave server's
my.cnf
file, unless you want
replication to begin immediately. With the use of this
option, the start of replication is delayed until the
appropriate START SLAVE
statement has been issued, as explained in Step 4 below.
It is necessary to synchronize the slave server with the master server's replication binlog. If binary logging has not previously been running on the master, run the following statement on the slave:
mysqlS
>CHANGE MASTER TO
->MASTER_LOG_FILE='',
->MASTER_LOG_POS=4;
This instructs the slave to begin reading the master's binary
log from the log's starting point. Otherwise — that is,
if you are loading data from the master using a backup —
see Section 17.6.8, “Implementing Failover with MySQL Cluster Replication”, for
information on how to obtain the correct values to use for
MASTER_LOG_FILE
and
MASTER_LOG_POS
in such cases.
Finally, you must instruct the slave to begin applying replication by issuing this command from the mysql client on the replication slave:
mysqlS
>START SLAVE;
This also initiates the transmission of replication data from the master to the slave.
It is also possible to use two replication channels, in a manner simliar to the procedure described in the next section; the differences between this and using a single replication channel are covered in Section 17.6.7, “Using Two Replication Channels for MySQL Cluster Replication”.
Beginning with MySQL Cluster NDB 6.2.3, it is possible to improve
cluster replication performance by enabling batched
updates. This can be accomplished by starting slave
mysqld processes with the
--slave-allow-batching
option. Normally, updates
are applied as soon as they are received. However, the use of
batching causes updates to be applied in 32 KB batches, which can
result in higher throughput and less CPU usage, particularly where
individual updates are relatively small.
Slave batching works on a per-epoch basis; updates belonging to more than one transaction can be sent as part of the same batch.
All outstanding updates are applied when the end of an epoch is reached, even if the updates total less than 32 KB.
Batching can be turned on and off at runtime. To activate it at runtime, you can use either of these two statements:
SET GLOBAL slave_allow_batching = 1; SET GLOBAL slave_allow_batching = ON;
If a particular batch causes problems (such as a statement whose effects do not appear to be replicated correctly), slave batching can be deactivated using either of the following statements:
SET GLOBAL slave_allow_batching = 0; SET GLOBAL slave_allow_batching = OFF;
You can check whether slave batching is currently being used by
means of an appropriate SHOW
VARIABLES
statement, like this one:
mysql> SHOW VARIABLES LIKE 'slave%';
+---------------------------+-------+
| Variable_name | Value |
+---------------------------+-------+
| slave_allow_batching | ON |
| slave_compressed_protocol | OFF |
| slave_load_tmpdir | /tmp |
| slave_net_timeout | 3600 |
| slave_skip_errors | OFF |
| slave_transaction_retries | 10 |
+---------------------------+-------+
6 rows in set (0.00 sec)
User Comments
Add your own comment.