30 декабря 2010

Как работает репликация в MySQL

Master-сервер журналирует все запросы, которые предполагают изменения в реплицируемой базе данных, в так называемый бинарный лог. Бинарный лог - это файл, который по-умолчанию расположен в каталоге, в котором MySQL хранит базы данных. Префикс имени файла и каталог его размещения настраиваются с помощью опции log-bin в конфигурационном файле.

В бинарный лог попадают не только запросы на изменение данных в таблицах, но и такие, как CREATE, DROP, ALTER, TRUNCATE и .т.д. Таким образом создание, удаление, модификация таблиц, триггеров и хранимых процедур так же журналируются.
В момент добавления, содержимое бинарного лога отправляется slave-серверу, который просто выполняет очередной запрос (INSERT, UPDATE, ALTER и т.д.) у себя в окружении в соответствующей базе данных.

Одновременно одна база данных может быть подчененной (slave) только для одной master. Таким образом, чтобы получить MASTER-MASTER репликацию, нужно настроить обе как master и slave друг для друга.

Комментариев нет: