MySQL репликация master-master

mysql-export-importВ данной статье мы рассмотрим как настроить репликацию двух серверов MySQL в режиме master-master. Данная конфигурация позволит Вам повысить надежность ваших серверов БД и следовательно надежность хранения Ваших данных. В статье будет рассматриваться пример настройки в ситеме FreeBSD, но это не помешает Вам использовать данные рекомендации на какой либо другой системе т.к. они стандартны. Единственное что нужно будет Вам учесть это расположение конфигурационных файлов MySQL сервера и команды для работы с самим серверов MySQL в системе. Так же предпологается что Вы хотите настроить репликацию на «чистых» серверах которые еще не имеют пользовательских баз данных.

Для настройки синхронизации Вам потребуется на всех конфигурируемых серверах доступ к MySQL с привилегиями root.

Используемые нами серверы имеют следующие ip адреса :

srv1 : 10.10.0.1

srv2: 10.10.0.2

Настройка первого сервера

На первом сервере MySQL в конфигурационном файле my.cnf необходимо внести следующие изменения

После внесения изменений в конфигурационный файл необходимо перезагрузить MySQL.

Через консоль управления mysql создаем нового пользователя для управления репликацией.

Проверяем состояние бинарного журнала выполнив следующую команду в консоле mysql

На втором сервере

По аналогии на втором сервере производим настройки MySQL в файле my.cnf

После внесения изменений в конфигурационный файл необходимо перезагрузить MySQL.

Через консоль управления mysql создаем нового пользователя для управления репликацией.

Проверяем состояние бинарного журнала выполнив следующую команду в консоле mysql

Выполнив вышеописанные действия мы подготовили оба сервера к процессу репликации. Для запуска самого процесса репликации нам нужно выполнить следующие команды в консоли управления mysql.

На втором сервере

Опишим более подробно параметры данной команды :

MASTER_HOST — ip адрес master сервера

MASTER_USER — имя пользователя для репликации

MASTER_PASSORD — пароль пользователя

MASTER_LOG_FILE — имя бинарного журнала

( из результата вывода команды show master status на master сервере)

MASTER_LOG_POS — позиция в бинарном журнале

( из результата вывода команды show master status на master сервере)

На первом сервере

После завершения данных необходимо убедится что репликация работает. Для этого на обоих серверах запустите следующую поманду show slave status\G

Для того чтобы убедится работает наша конфигурация или нет мы должны проверить параметр Slave_SQL_Running_State если в нем не выводятся какие либо сообщения об ошибках значит процесс репликации работает нормально.

Так же в качестве проверки Вы можете на одном из серверов создать новую БД и проверить создалась ли она на втором сервере.