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)
Това е!!