MySQL master-slave server

MySQL master-slave server

Привет,

Днес ми се наложи да направя промяна в един MySQL cluster, като трябваше да включа нов междинен master/slave сървър :

[master]->[master/slave]->slave

За тази цел смених master_host-а на “slave” сървъра от “master” на “master/slave” и промених binlog-а и позицията.

Да, но се натъкнах на следният проблем:
 master/slave сървъра продължаваше да взима актуални данни от master-a, но сам по себеси не обновяваше своята master позиция, и така slave сървъра изостана от master-a.

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000002 | 120 | | | |

+------------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

От документацията на MySQL разбрах, че този проблем се оправя с опцията :

log-slave-updates

която трябва да бъде добавена в my.cnf на сървъра играещ ролята на master/slave в секция [mysqld].

След рестарт на mysql демона, позицията взе да се променя и репликацията към slave тръгна.

mysql> show master status ;

+------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000003 | 7582729 | | | |

+------------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

Това е!!