MariaDB 10 replication strange behaviour

mariadb

I have following MariaDB 10 replication setup.

Server A MariaDB 10 (master), Server B MariaDB 10 (master), Server C MariaDB 10 (slave/master), Server D MariaDB 10 (slave).

A and B are getting new data from different sources (Percona Server, AWS RDS) using Tungsten replicator and replicate this data to C. C replicates to D.

My steps:

  1. mysqldump from A and B
  2. import to C and configure multi-source replication
  3. mysqldump from C
  4. import to D configure replication

After a while A and B are getting new data, but this data is not replicating neither to C or D (from C).

If I go to A or B and create fake tables and insert fake data everything replicates up to D.

No errors in mysql error log, no errors in replication status.

What can be possible wrong?

Best Answer

Ensure you have --log-slave-updates and --log-bin enabled in the servers.

Normally, a slave does not write to its own binary log any updates that are received from a master server. This option causes the slave to write the updates performed by its SQL thread to its own binary log. For this option to have any effect, the slave must also be started with the --log-bin option to enable binary logging. Prior to MySQL 5.5, the server would not start when using the --log-slave-updates option without also starting the server with the --log-bin option, and would fail with an error; in MySQL 5.6, only a warning is generated. (Bug #44663) --log-slave-updates is used when you want to chain replication servers. For example, you might want to set up replication servers using this arrangement:

A -> B -> C

Here, A serves as the master for the slave B, and B serves as the master for the slave C. For this to work, B must be both a master and a slave. You must start both A and B with --log-bin to enable binary logging, and B with the --log-slave-updates option so that updates received from A are logged by B to its binary log.

Source: http://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html#option_mysqld_log-slave-updates