OSS Group :: Admin :: Настройка Master-Master репликации в MySQL |
Быстрый поиск по WikiНавигация по сайтуНа эту страницу ссылаются: |
Настройка Master-Master репликации в MySQLИсходные данные
СУБД на обоих хостах запущены и работают. ТребуетсяНастроить репликацию базы replica на хосте mysql1 на хост mysql2 в режиме master-master. Порядок действийНа хосте mysql1В файле конфигурации MySQL (
server-id=1 log-bin=/log/bin.log binlog-do-db=replica binlog-ignore-db=mysql binlog-ignore-db=test Перезапускаем демона. #service mysqld restart В консоли MySQL создаём на master-хосте №1 пользователя с полномочиями на репликацию: $mysql -uroot -p mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'slave'; mysql> FLUSH PRIVILEGES; mysql> USE replica; mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS; +------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------+----------+--------------+------------------+ | bin.000002 | 98 | replica | mysql,test | +------------+----------+--------------+------------------+ Запоминаем параметры File и Position. Далее создаём дамп реплицируемой базы: $mysqldump -uroot -p replica > replica.dump И переносим этот дамп на master-хост №2. Внимание. Блокировка таблиц будет снята, если выйти из консоли MySQL. Для создания дампа базы и переноса его на master-хост №2 следует использовать другую пользовательскую сессию. На хосте mysql2Создаём базу replica и наполняем её из дампа с master-хоста №1: $mysqladmin -uroot -p create replica $mysql -uroot -p replica < replica.dump В файле конфигурации MySQL (
server-id=2 master-host=mysql1 master-user=slave_user master-password=slave master-connect-retry=60 replicate-do-db=replica relay-log=/log/slave-relay-bin relay-log-index=/log/slave-relay-bin.index auto_increment_increment=2 auto_increment_offset=2 Перезапускаем демона. #service mysqld restart Затем запускаем процесс репликации в консоли MySQL (используя параметры File и Position с master-хоста №1): $mysql -uroot -p mysql> SLAVE STOP; mysql> CHANGE MASTER TO -> MASTER_HOST='mysql1', -> MASTER_USER='slave_user', -> MASTER_PASSWORD='slave', -> MASTER_LOG_FILE='bin.000002', -> MASTER_LOG_POS=98; mysql> START SLAVE; mysql> SHOW SLAVE STATUS\G Убеждаемся в том, что параметры Slave_IO_Running и Slave_SQL_Running установлены в Yes. На данном этапе, фактически была настроена Master-Slave репликация базы replica с хоста mysql1 на хост mysql2. Далее, в файл конфигурации MySQL ( log-bin=/log/bin.log binlog-do-db=replica Перезапускаем демона. #service mysqld restart В консоли MySQL создаём на master-хосте №2 пользователя с полномочиями на репликацию: $mysql -uroot -p replica mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'slave'; mysql> FLUSH PRIVILEGES; mysql> SHOW MASTER STATUS; +------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------+----------+--------------+------------------+ | bin.000006 | 98 | replica | mysql,test | +------------+----------+--------------+------------------+ Запоминаем параметры File и Position. Возвращаемся к хосту mysql1В консоли MySQL разблокируем ранее блокированные таблицы: mysql> UNLOCK TABLES; В файл конфигурации MySQL ( master-host=mysql2 master-user=slave_user master-password=slave master-connect-retry=60 replicate-do-db=replica relay-log=/log/slave-relay-bin relay-log-index=/log/slave-relay-bin.index auto_increment_increment=2 auto_increment_offset=1 Перезапускаем демона. #service mysqld restart Затем запускаем процесс репликации в консоли MySQL (используя параметры File и Position с master-хоста №2): $mysql -uroot -p mysql> SLAVE STOP; mysql> CHANGE MASTER TO -> MASTER_HOST='mysql2', -> MASTER_USER='slave_user', -> MASTER_PASSWORD='slave', -> MASTER_LOG_FILE='bin.000006', -> MASTER_LOG_POS=98; mysql> START SLAVE; mysql> SHOW SLAVE STATUS\G Убеждаемся в том, что параметры Slave_IO_Running и Slave_SQL_Running установлены в Yes. Краткое резюмеВ принципе репликация работает. Каких-то проблем в процессе работы не замечено. Дополнительные источники информации
Дата создания: 2007-10-08 16:22:26 (Фетисов Ф. А. (faf)) Wiki::Admin Оглавление Карта раздела Изменения за сутки Изменения за неделю Изменения за месяц |
© 2006-2024 OSS Group. All rights reserved. | Техническая поддержка: Открытые Информационные Технологии и Системы
|