Настройка репликации MySQL

Урок 221 из 267
Автор: Роберт Басыров
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
3 из 5
Дата изменения: 23.11.2019
Просмотров: 11513
Ограничения по редакциям: Старт, Стандарт, Малый бизнес, Бизнес

Как настроить

Репликация MySQL используется для решения следующих задач:

  1. Увеличение производительности СУБД за счёт подключения к ней серверов при возрастающей нагрузке. Выделяется один сервер преимущественно для модификации данных (master) и остальные для чтения данных (slaves).Это особенно эффективно для веб-приложений, у которых большая часть запросов к СУБД - запросы на чтение.
  2. Онлайн бэкап - данные передаются в режиме онлайн на резервные slave-сервера. При отказе основного сервера на одном из резервных slave серверов имеется "свежая" копия данных.
  3. Эффективное резервное копировании: бэкап делается с резервного сервера без прерывания /замедления работы основного сервера СУБД. Для осуществления целостного бинарного бэкапа СУБД (в особенности InnoDB) можно остановить на необходимое время резервный сервер, выполнить бэкап и запустить резервный сервер снова.
  4. Обеспечение высокой доступности: при выходе из строя одного из серверов СУБД система продолжает обрабатывать запросы.
  5. Примечание: Подробнее о примерах использования репликации MySQL читайте в официальной документации.

Надежность репликации

Вечная проблема: либо производительность либо надёжность. Для обеспечения максимальной надежности репликации рекомендуется установить следующие параметры MySQL:

innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
sync_relay_log = 1
sync_relay_log_info = 1

Примечание: Установка именно таких параметров может привести к общему снижению производительности системы.

Для повышения производительности можно использовать такие параметры (чревато потерей данных нескольких транзакций в момент аварии на базе данных):

innodb_flush_log_at_trx_commit  = 2
sync_binlog = 0

Динамический hostname

Если у настраиваемого сервера динамический IP-адрес/hostname, рекомендуется явно задать параметры: relay-log, relay-log-index.

Привилегии

Для работы репликации учетные записи основного и резервных master/slave-серверов должны иметь, кроме стандартных, также привилегии: SUPER, REPLICATION CLIENT, REPLICATION SLAVE.

Учетные записи

Временные зоны

Если сервера СУБД кластера расположены в разных дата-центрах, необходимо настроить на них единую временную зону.

Настройка репликации в административном интерфейсе

При добавлении резервного slave-сервера Подключение к сайту дополнительных серверов баз данных позволяет снизить нагрузку на основную базу данных. В этом случае чтение данных происходит из дополнительных (slave) баз данных, а запись - в основную.

Подробнее ...
СУБД мастер настройки репликации проверяет все необходимые параметры Мастер добавления новой slave базы данных . После успешного добавления slave-сервера отображается его статус Статус сервера баз данных .

Администрирование репликации

Репликация после настройки работает надежно и требует минимального администрирования. Тем не менее, рекомендуется периодически проверять её состояние утилитами мониторинга операционной системы (nagios, zabbix, monit, linux-ha).

В маловероятном случае возникновения ошибки на slave-сервере переинициализируйте его - заново залейте данные с основного сервера. Для этого нужно его Прекратить использовать, а затем Начать использовать в разделе Репликация (Настройки > Веб-кластер > Репликация).

Резервное копирование

Можно свободно останавливать slave-сервера, в т.ч. для осуществления логического и целостного бинарного резервного копирования средствами MySQL и операционной системы. При этом не прерывается работа основного сервера СУБД.


Курсы разработаны в компании «1С-Битрикс»
Спасибо, мы рады что смогли помочь Вам. Ниже Вы можете оставить свой отзыв или пожелание :)
Нам жаль это слышать… Но мы постараемся быть лучше! Поясните, пожалуйста, свой выбор:

Мы благодарны Вам за помощь в улучшении документации.

Мы стараемся сделать документацию понятнее и доступнее,
и Ваше мнение важно для нас