Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Разработка и сопровождение сайтов (http://forum.sape.ru/forumdisplay.php?f=29)
-   -   Репликация в MySQL (http://forum.sape.ru/showthread.php?t=5360)

Kashey 20.10.2007 22:00

Репликация в MySQL
 
Прет, никто не имел опыта в настройки репликации mysql
Надоело постоянно дампы туда сюда гонять.
Все думаю - как автоматизировать задачу...

Jooz 20.10.2007 22:57

Ну так в чем проблема? Информации в Интернет гора:
Если лень искать то вот для начала.
Цитата:

Как установить репликацию

Нижеследующее представляет собой быстрое описание того, как установить полную поддержку репликации на работающем сервере MySQL. Здесь считается, что Вы хотите копировать все Ваши базы данных и не конфигурировали репликацию ранее. Сервер на некоторое время придется завершить для выполнения работ.
  1. Удостоверьтесь, что Вы имеете свежую MySQL на главной и всех подчиненных машинах. Используйте версию 3.23.29 или выше. Предыдущие выпуски использовали различный двоичный формат файла регистрации и имели ошибки, которые были исправлены в более новых выпусках. Пожалуйста, не сообщайте об ошибках, пока не проверите это, проблема присутствует в последнем выпуске.
  2. Установите специального пользователя replication на главной системе с привилегией FILE и разрешением соединяться от имени всех подчиненных систем. Если пользователь только делает репликацию (что очень рекомендуется!), Вы не должны предоставлять ему дополнительные привилегии. Например, чтобы создать пользователя с именем repl, который может обращаться к Вашему главному компьютеру с любого другого компьютера, Вы могли бы использовать эту команду: GRANT FILE ON *.* TO repl@"%" IDENTIFIED BY '<password>';
  3. Завершите сервер MySQL на главной и подчиненных системах: mysqladmin -u root -p<password> shutdown
  4. Скопируйте все данные с главного сервера. Самое простое, что тут можно предложить, (на системах Unix), это использовать команду tar для изготовления архива всего каталога с данными. Точное расположение этого каталога данных зависит от Вашей установки. tar -cvf /tmp/mysql-snapshot.tar /path/to/data-dir
    Windows-пользователям рекомендуется использовать для этих целей WinZip или что-то подобное, впрочем, версии tar есть под всеми известными мне ОС. Windows тут не исключение.
  5. В файле my.cnf на главном сервере добавьте строки log-bin и server-id=unique number в секцию [mysqld]. Очень важно, что идентификаторы подчиненных отличаются от идентификатора главной системы. [mysqld]
    log-bin
    server-id=1
  6. Перезапустите сервер MySQL на главной системе.
  7. На подчиненных машинах в файл my.cnf надлежит дописать: master-host=<hostname of the master>
    master-user=<replication user name>
    master-password=<replication user password>
    master-port=<TCP/IP port for master>
    server-id=<some unique number between 2 and 2^32-1>
    Значения в <> следует заменить на соответствующие Вашей системе. server-id должен быть свой для каждой машины, участвующей в репликации. Если Вы не определяете идентификатор сервера, он будет установлен в 1, если Вы не определили master-host, иначе он будет установлен в значение 2. Обратите внимание, что в случае вычеркивания идентификатора server-id главный сервер откажется от подключений от всех подчиненных машин, а они не смогут связаться с ним.
  8. Копируйте сохраненные данные в каталог данных на Вашем подчиненном сервере. Удостоверитесь, что привилегии на файлах и каталогах правильны. Пользователь, от имени которого выполняется MySQL должен иметь право читать и писать эти файлы.
  9. Перезапустите подчиненную систему (или системы, если их несколько).
После того, как Вы сделали вышеупомянутое, подчиненный должен соединиться с главным сервером и получить все обновления, которые были произведены с момента резервирования данных.
Если Вы забыли установить идентификатор (server-id) для подчиненного, Вы получите следующую ошибку в файле регистрации ошибок:
Warning: one should set server_id to a non-0 value if master_host
is set. The server will not act as a slave.
Если Вы забыли это сделать для главного сервера, подчиненный связаться с ним не сможет.
Если подчиненный не способен копировать данные (неважно по какой причине), Вы найдете сообщения об ошибках в файле регистрации ошибок на подчиненном.
Если подчиненный копировал хоть что-то, Вы найдете файл master.info в том же самом каталоге, где и файл регистрации ошибок. Файл master.info используется подчиненным, чтобы следить, что из двоичного файла регистрации главного сервера он уже обработал. Не удаляйте и не правьте файл, если Вы не знаете точно, что и зачем Вы делаете. Даже если знаете, лучше пользуйтесь командой CHANGE MASTER TO.


Часовой пояс GMT +3, время: 02:18.

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.