Master Slave Chat Room

Master Slave Chat Room



🛑 👉🏻👉🏻👉🏻 INFORMATION AVAILABLE CLICK HERE👈🏻👈🏻👈🏻

































Используешь Telegram? Подпишись на канал автора →
Home » Linux » CentOS » Percona Mysql server master - slave репликация
Zerox Обновлено: 01.05.2020 CentOS, Linux 17 комментариев 3,461 Просмотры
В данной статье хочу затронуть актуальную тему эксплуатации популярного сервера баз данных. Я расскажу, как настроить репликацию master - slave на примере Mysql сервера Percona. Это не пример настройки отказоустойчивой системы. Создается именно актуальная копия базы данных для различных нужд (бэкап, тестирование, тяжелые выборки и т.д.).
За основу я возьму 2 виртуальные машины на базе Centos 8. Если у вас их еще нет, можете воспользоваться моими статьями на тему установки и базовой настройки Centos 8. Ниже небольшая таблица, чтобы дальше было проще ориентироваться в статье.
Начнем настройку репликации с установки Mysql сервера на обе виртуальные машины. Ниже приведу краткий список действий, чтобы сразу было понятно, что мы будем делать.
Настройка master-slave репликации mysql.
Подключаем репозиторий и устанавливаем необходимые пакеты.
Покажу на примере, как загрузить из дампа базу данных, для которой настроим репликацию.
Подробно расскажу и покажу, как настроить репликацию загруженной базы.
Приведу пример, как можно убедиться, что репликация работает.
Установить percona mysql server не представляет никакой сложности, так как есть репозиторий с готовыми пакетами под все популярные системы, в том числе под centos. Подключаем этот репозиторий. Действия выполняем одновременно на обоих серверах.
Отключаем стандартный модуль mysql и активируем репозиторий перконы.
Устанавливаем Percona Mysql Server на Centos 8. Заодно поставим xstrabackup и другие утилиты, которые нам могут понадобиться в процессе эксплуатации.
После установки запускаем mysql сервер и добавляем в автозагрузку.
Во время установки был автоматически сгенерирован временный пароль root. Посмотреть его можно в логе /var/log/mysqld.log.
Используя этот пароль, выполним начальную настройку сервера, удалив все лишнее и указав свой пароль. Имейте ввиду, что по умолчанию установлен Password Validation Plugin, который не позволит вам создать простой пароль. Он должен удовлетворять следующим требованиям:
Убедитесь, что вы запомнили свой новый пароль и можете подключаться, используя его.
Серверы Mysql установили на обоих виртуальных машинах. Двигаемся дальше.
Загрузим теперь на оба наших сервера дампы базы данных, которую он будет обслуживать. Если вы начинаете новую базу с нуля, то просто создайте ее на обоих серверах. Я же загружу из архива, сделанного с помощью mysqldump, базу своего сайта.
Теперь создадим на мастере учетную запись, от имени которой будет работать репликация. Напоминаю, что 10.20.1.29 - ip адрес для slave сервера.
У нас все готово для настройки непосредственно репликации. Но перед тем, как ее начать, убедитесь, что у вас настроен или отключен firewalld. В общем случае на мастере разрешите подключаться к серверу по tcp порту 3306, на котором работает mysql сервер.
Теперь запускаем репликацию. Для этого идем на мастер и смотрим master log position в консоли mysql.
Переходим на slave и выполняем в консоли mysql.
Суть ее в том, что в версии Mysql 8 поменялся плагин для аутентификации с mysql_native_password на caching_sha2_password. Теперь для корректной работы репликации необходимо настраивать подключение с использованием tls сертификатов. Если инфраструктура закрытая и данные передаются не через интернет, то этим можно пренебречь. К примеру, я всегда настраиваю vpn тоннель, если репликация работает через интернет.
Самый простой способ исправить ошибку, это зашифровать пароль пользователя предыдущим плагином. Делается это так.
После этого вернитесь на slave, остановите репликацию, обновите информацию с мастера и запустите заново. Ошибки быть не должно.
Проверьте теперь статус репликации. Признаком того, что все в порядке, будет отсутствие ошибок и информация в следующих строках.
Если репликация идет нормально, slave будет идти за master. Номер лога Master_Log_File и позиция Exec_Master_Log_Pos будут расти. Если значение Slave_IO_State пусто или Connecting to master, а Seconds_Behind_Master равно NULL, репликация не началась.
Дальше можете проверять работу репликации. Так как у нас настроена репликация всей информации, можете создать на мастере новую базу данных и добавить в нее какие-то значения.
Теперь идем на реплику и проверяем, получила ли она изменения.
Все в порядке, репликация работает. Можно настроить ее мониторинг. Для бэкапа данных с реплики рекомендую использовать percona xtrabackup.
Нет. Описанный мной способ подходит для настройки репликации во всех популярных версиях серверов mysql.
Никакой разницы нет, будет ли у вас один slave сервер или несколько. Добавление следующих серверов происходит точно так же, как и первого. Настраиваете slave сервер, заливаете дамп баз и запускаете репликацию.
Ничего особенного делать не надо. Если связь с мастером прервалась и репликация остановилась, достаточно восстановить связь и запустить заново репликацию. Slave сервер подтянет все изменения с мастера.
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!
Вот так относительно просто настраивается обычная master - slave репликация mysql. Подобным же образом настраивается и master-master репликация, но на практике она очень нестабильно работает. Я пробовал в свое время, но в итоге отказался, так как надоело ее чинить и исправлять ошибки. Для полноценного кластера с мультизаписью лучше использовать какие-то специализированные решения типа Percona XtraDB Cluster.
Кстати, он же может заменить и текущую конфигурацию, если сделать его из двух нод и писать только в одну. Разрешив ему работать при выходе из строя реплики, получится примерно то же самое, что и в статье. Но смысла в этом особо нет, так как предложенная мной конфигурация настраивается проще и быстрее. Плюс, это типовое решение для любого mysql сервера.
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.
GRANT replication slave ON . TO 'repl'@'10.20.1.29'; Поправьте на:
GRANT replication slave ON *.* TO 'repl'@'10.20.1.29';
Zerox а maxscale настраивать не приходилось? Или другой балансер с контролем состояния binlog итд
Добрый день, а группы репликации не надежнее делать single primary или multi primary?
Поясните, о чем вы. Я не знаком с группами репликации.
О.. собрался делать репликацию на нашем сайте и наткнулся на статью Владимира. Вова спасибо большое за статью!!
А не делали мультимастер на мускуле с мускуль роутером?
Делал просто мастер - мастер без роутера, но мне не понравилось. Не помню уже подробностей, но постоянно лазил руками чинить репликацию, которая периодически переставала работать. Решение показалось ненадежным.
Если просто мультимастер, то с огромным количеством проблем столкнетесь.
Посмотрите в сторону Percona, только рассматривайте все, а не 2 базы, полнофункциональный мультимастер кластер с арбитратором и балансером, в случае с Percona я бы рекомендовал MySQL Proxy, только с полнофункциональной настройкой, с контролем консистентности, в этом случае запись будет идти на арбитратор и им же раскидываться на мастера, которые будут писать на слейвы, 8-я версия мускуля искоропки пишет в 60 потоков бинлог у меня(сеть между нодами 20 Гб/с), чтение со слейвов.
За счет многопоточности отставание составляет не более 0.03 мс. Это при удалении или добавлении до млн записей.
А что будет, если арбитратор упадет?
И ещё сразу вопрос, что будет если я на одном из слэйве удалю какую нибудь строку, добавлю новую, либо изменю какую нибудь. Другими словами что будет когда с моей стороны будут производиться какие то изменения которых нет на мастере. База проигнорирует это, или спустя какое то время вернёт обратно исходное состояние, тем самым как бы удалив мои изменения
Это не знаю, не проверял. Никогда не было идей так делать :)
Андрей Запись должна идти на мастер, у мускуля, машки - асинхронная репликация, слейвы только для чтения.
У меня кластер мастер + 2 слейва (чтение) + слейв (финансовые отчеты) + слеййв для бэкапов
Если я правильно понимаю работу слейва, который следует за мастером по бинлогу, изменения на слейве так и останутся. Никаких проверок целостности при такой работе не происходит. Слейв просто повторяет все операции за мастером. Если задним числом что-то поменяь на слейве, то там так и останутся измененные данные.
Добрый день, очень интересная статья, подскажите пожалуйста, каково основное назначение master-slave, создано ли это понятие для горизонтального масштабирования база данных? Например у меня настроено, один мастер и 5 слэйвов. На мастере создал таблицу и вставил туда 100 000 000 строк. Все они продублировались спустя какое-то то время на всех слэйвах. Дальше я начинаю делать селект по таблице с каким то сложным фильтром, как будет базе данных делать, будет ли она как то распределять нагрузку на слэйвы, будет ли так сказать волшебство из коробки? :)
Никакой магии и распределения нагрузки в описанной настройке нет. Это просто актуальная копия базы для чтения.
Для магии нужен кластер с соответствующим функционалом.
Для такого Вам нужен шардинг, я бы посмотрел в сторону Тарантула, для создания кэша и синхронизации
Ваш адрес email не будет опубликован.
Подписка на новые комментарии:

Не отправлять уведомлений
Отправить уведомление только при ответе на мой комментарий
Отправить уведомление при появлении любого комментария
Дешевые дедики от Selectel, есть посуточная оплата. Использую сам.

Пользователи Твиттера узнают новости первыми.
Внимание! Этот профиль может содержать материалы деликатного характера
Вы видите это предупреждение, поскольку в твитах этого пользователя встречаются потенциально оскорбительные выражения или изображения деликатного характера. Хотите продолжить просмотр?

Master /Slave Chat Rooms Job | English (UK) | Freelancer
Настройка master - slave репликации mysql | serveradmin.ru
MASTERS SLAVES AVENUE (@master 777slave) | Твиттер
Полезно - Как настроить MySQL Master -Slave репликацию
Видеозаписи Sam Slave | ВКонтакте
Ts Dc Eros
Hairy Girl Cams
Dominican Prostitute Video
Master Slave Chat Room

Report Page