The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Пример настройки master-master репликации в MySQL
Шаг 1. Устанавливаем MySQL на два сервера:
   Master 1/Slave 2 ip: 192.168.16.4
   Master 2/Slave 1 ip : 192.168.16.5 

Шаг 2. Содержимое my.cnf сервера Master 1,  являющегося ведущим по умолчанию:

   [mysqld]
   datadir=/var/lib/mysql
   socket=/var/lib/mysql/mysql.sock
   old_passwords=1

   log-bin
   binlog-do-db=<database name>  # input the database which should be  replicated
   binlog-ignore-db=mysql            # input the database that should be ignored for replication
   binlog-ignore-db=test

   server-id=1

   [mysql.server]
   user=mysql
   basedir=/var/lib


   [mysqld_safe]
   err-log=/var/log/mysqld.log
   pid-file=/var/run/mysqld/mysqld.pid


Шаг 3. На сервере Master 1, создаем аккакнт для slave сервера (затем перезапускаем mysql):

   mysql> grant replication slave on *.* to 'replication'@192.168.10.5 \
identified by 'slave';


Шаг 4. Содержимое my.cnf сервера Master 2,  являющегося ведомым по умолчанию (slave):

   [mysqld]
   datadir=/var/lib/mysql
   socket=/var/lib/mysql/mysql.sock
   old_passwords=1

   server-id=2

   master-host = 192.168.16.4
   master-user = replication
   master-password = slave
   master-port = 3306

   [mysql.server]
   user=mysql
   basedir=/var/lib

   [mysqld_safe]
   err-log=/var/log/mysqld.log
   pid-file=/var/run/mysqld/mysqld.pid


Шаг 5. Активируем ведомый сервер:
   mysql> start slave;
   mysql> show slave status\G;

В отображенных параметрах поля Slave_IO_Running и  Slave_SQL_Running должны содержать "YES".


Шаг 6. На сервере Master 1 проверяем статус бинарного лога:

mysql> show master status;
+------------------------+----------+--------------+------------------+
| File                   | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------------+----------+--------------+------------------+
|MysqlMYSQL01-bin.000008 |      410 | adam         |                  |
+------------------------+----------+--------------+------------------+
1 row in set (0.00 sec)


Сценарий master-slave реализован, переходим к настройке master-master.

Шаг 7. На сервере Master2/Slave 1 редактируем my.cnf:

    [mysqld]
   datadir=/var/lib/mysql
   socket=/var/lib/mysql/mysql.sock
   # Default to using old password format for compatibility with mysql 3.x
   # clients (those using the mysqlclient10 compatibility package).
   old_passwords=1
   server-id=2

   master-host = 192.168.16.4
   master-user = replication
   master-password = slave
   master-port = 3306

   log-bin                     #information for becoming master added
   binlog-do-db=adam

   [mysql.server]
   user=mysql
   basedir=/var/lib

   [mysqld_safe]
   err-log=/var/log/mysqld.log
   pid-file=/var/run/mysqld/mysqld.pid

 
Шаг 8. Создаем slave аккаунт на Master 2 для Master 1:

   mysql> grant replication slave on *.* to 'replication'@192.168.16.4 identified by 'slave2';

 
Шаг 9.  Редактируем my.cnf на сервере Master 1, определив, что он является slave для Master 2:

   [mysqld]
   datadir=/var/lib/mysql
   socket=/var/lib/mysql/mysql.sock

   # Default to using old password format for compatibility with mysql 3.x
   # clients (those using the mysqlclient10 compatibility package).
   old_passwords=1


   log-bin
   binlog-do-db=adam
   binlog-ignore-db=mysql
   binlog-ignore-db=test

   server-id=1
   #information for becoming slave.
   master-host = 192.168.16.5
   master-user = replication
   master-password = slave2
   master-port = 3306

   [mysql.server]user=mysqlbasedir=/var/lib 

 
Шаг 10. Перезапускаем оба MySQL сервера. Для Master 1 выполняем

   mysql> start slave;

Для Master 2: 

   mysql > show master status;

Для Master 1:

mysql> show slave status\G;

В отображенных параметрах поля Slave_IO_Running и  Slave_SQL_Running должны содержать "YES".
 
07.10.2006 , Источник: http://www.howtoforge.com/mysql_mas...
Раздел:    Корень / Программисту и web-разработчику / SQL и базы данных / MySQL специфика / Оптимизация и администрирование MySQL

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, StSphinx, 08:34, 10/10/2006 [ответить] [смотреть все]
  • +/
    >Шаг 2. Содержимое my.cnf сервера Master 1,  >являющегося верущим по умолчанию:

    Каким является? Поправьте плиз....

     
  • 1.2, Logka, 12:36, 10/10/2006 [ответить] [смотреть все]
  • +/
    Ведущим.
    И как работает эта схема на загруженных серверах?
    Никто не пробовал таким образом держать 3 и больше серверов ? Или не страдать фигней и строить кластер?
     
     
  • 2.4, amber46, 17:50, 11/10/2006 [^] [ответить] [смотреть все]
  • +/
    Насколько я понял из доки - кластер не рекомендуется строить на разнесенных (не в локалке) серверах.
    но как жу тогда быть если все же надо иметь три и более синхронизированных mysql сервера?
    или все таки кластер может нормально работать на разнесенных мускулах?
    есть у кого то здесь опыт построения похожих задач?
     
  • 1.3, Vitaly, 20:19, 10/10/2006 [ответить] [смотреть все]
  • +/
    настроил-неплохо работает. для двух серверов подходит отлично, для трёх уже есть смысл строить кластер
     
  • 1.5, гостья, 00:14, 14/10/2006 [ответить] [смотреть все]
  • +/
    про индексы не сказали - сделать их непохожими

    >три и более синхронизированных
    погуглите (нет под рукой) - видел хороший пример
    на 5 серверов

     
  • 1.6, andr, 09:37, 15/10/2006 [ответить] [смотреть все]  
  • +/
    Ну и как это чудо поведет себя при наличии таблиц с авто-икрементом ?
    На на mysql 5.0 есть такое дело как auto_increment_increment и auto_increment_offset, про которые здесь ни какого упоминания. А вот на 4.x я так и неразобрался как решается эта проблема (есть предположение, что она не решается). Может подскажет кто-нибудь ?
    MySQL-кластер же _имхо_ не является подходящем решением для больших проектов до тех пор пока не не реализуют cluster-on-disk
     
     
  • 2.8, alexey13, 05:16, 27/10/2006 [^] [ответить] [смотреть все]  
  • +/
    "MySQL-кластер же _имхо_ не является подходящем решением для больших проектов до тех пор пока не не реализуют cluster-on-disk"
    Вроде ж в 5.1 уже есть ? Индексы правда in-memory...
     
  • 1.7, denis, 14:50, 20/10/2006 [ответить] [смотреть все]  
  • +/
    Mysql просто такого не умеет по нормальному.
    postgres + pgcluster = multi-master and synchronous replication system
     
     
  • 2.9, mgyk, 23:31, 06/11/2006 [^] [ответить] [смотреть все]  
  • +/
    Вот большай и серьезная дока на эту тему.
    http://www.onlamp.com/pub/a/onlamp/2006/04/20/advanced-mysql-replication.html
     
     
  • 3.12, Mikle Heavy, 15:23, 10/05/2007 [^] [ответить] [смотреть все]  
  • +/
    В журнале PHPInside (номер не помню) есть перевод этой статьи.

    www.phpinside.ru

     
  • 2.10, b2d, 13:13, 20/11/2006 [^] [ответить] [смотреть все]  
  • +/
    >Mysql просто такого не умеет по нормальному.
    >postgres + pgcluster = multi-master and synchronous replication system


    слушай можешь сбросить конфиги на pgcluster && postgress... а то у нас грабли все время какието вываливаються ... нормально постгресс работает только в сингл моде.
    сенкс заранее

     
  • 1.11, Sergey, 06:44, 01/02/2007 [ответить] [смотреть все]  
  • +/
    Подскажите, в чем может быть проблема, репликация master-slave работает, после 7-10 шагов репликация перестает работать, позиции логов увеличиваются.
     
     
  • 2.14, Аноним, 01:23, 07/11/2008 [^] [ответить] [смотреть все]  
  • +/
    SHOW SLAVE STATUS смотрите на слейве скорее всего - на мастере выполняется крив... весь текст скрыт [показать]
     
     
  • 3.16, Александр, 02:29, 16/12/2009 [^] [ответить] [смотреть все]  
  • +/
    >SHOW SLAVE STATUS смотрите на слейве. скорее всего - на мастере выполняется
    >кривой запрос.
    >SLAVE STOP ;SET SKIP COUNTER=1 ; SLAVE  START и так пока
    >не починится.

    И что, так каждый раз лезть в консоль/гуи и слейв подымать, когда на мастере кривой запрос не выполнился?
    А слейв как-то сам не может такие запросы игнорить (или мастер такие запросы не писать в бинлог)? Один фиг такие запросы данные не меняют, просто СУБД ругается.

     
  • 1.13, php_prog, 10:55, 01/03/2008 [ответить] [смотреть все]  
  • +/
    а чем master-slave хуже ... или это просто для общей информации?
    __________________
    http://php-prog.net/
     
     
  • 2.15, Аноним, 01:24, 07/11/2008 [^] [ответить] [смотреть все]  
  • +/
    он не хуже он для других целей master-slave - запись возможна ТОЛЬКО на master... весь текст скрыт [показать]
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList