Search code examples
mysqlmariadbreplicationmaster-slave

Master position not updating on slave-master server


I have 1 master-slave replication and at the same time the slave is master for a MariaDB cluster which will be replacing the actual two DB servers. everything looks fine but the master position on the slave hasn't updated since the cluster was set up the last month.

Slave is doing ok writing from the Master server but the cluster has not been updated ever since.In fact no errors can be observed but noticed the cluster is just the same it was set up since the beginning.

I know that cluster not wirtting new data ha to do with the mater position on the slave.

So the question would be why the master position on the slave is not updating?

On my MASTER

mysql> show master status\G;

*************************** 1. row ***************************

File: mysql-bin.000775

Position: 6593494

Binlog_Do_DB:

Binlog_Ignore_DB: mysql,performance_schema,phpmyadmin,information_schema

1 row in set (0.00 sec)

On my SLAVE:

MariaDB [(none)]> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: master_IP

Master_User: replication

Master_Port: 3306

Connect_Retry: 10

Master_Log_File: mysql-bin.000775

Read_Master_Log_Pos: 4192372

Relay_Log_File: slave-relay-bin.002921

Relay_Log_Pos: 2315832

Relay_Master_Log_File: mysql-bin.000775

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Also on the SLAVE

MariaDB [(none)]> show master status\G;

*************************** 1. row ***************************

File: mysql-replication.000003

Position: 342

Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)

On the CLUSTER

MariaDB [none]> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: slave_IP

Master_User: replica

Master_Port: 3306

Connect_Retry: 10

Master_Log_File: mysql-replication.000003

Read_Master_Log_Pos: 342

Relay_Log_File: cluster-relay-bin.000004

Relay_Log_Pos: 645

Relay_Master_Log_File: mysql-replication.000003

Slave_IO_Running: Yes

Slave_SQL_Running: Yes


Solution

  • A machine will not replicate incoming events to downstream replicas unless you enable log_slave_updates on it.

    Normally, a slave does not write any updates that are received from a master server to its own binary log. This option causes the slave to write the updates performed by its SQL thread to its own binary log.

    https://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html#option_mysqld_log-slave-updates

    (MySQL docs cited, but accurate for MariaDB as well.)

    Unrelated, but Binlog_Ignore_Db is usually unnecessary and potentially problematic.