Зеркалирование баз данных MySQL

Специальное предложение: Покупайте решения Handy Backup со скидкой до 30%

Зеркалированием баз данных MySQL называется процесс синхронизации двух или более серверов системы управления базами данных (СУБД) MySQL.

Small Windows LogoПопробовать бесплатно

Версия 8.5.3 от 5 марта 2024. 116 MB
30-дневный полнофункциональный пробный период

Модификация данных на одном из серверов при зеркалировании приводит к автоматическому изменению соответствующих данных на всех серверах, считающихся зеркалами. Эта операция может быть выполнена как в реальном времени, так и асинхронно, в виде отдельной задачи:

  • Зеркалирование в реальном времени выполняется в кластерах MySQL. Устойчивые кластеры могут быть построены с использованием относительно дешёвых компьютеров, не имеющих общего дискового пространства или памяти (так называемая архитектура без разделения ресурсов). Логически все операции в кластере распределяются между тремя типами узлов: хранения, обработки запросов и управления. Узлы хранения используют для распределения хранимых данных алгоритм NDB (Network DataBase), автоматически учитывающий и зеркалирующий все изменения рабочих БД кластера.
  • Асинхронное зеркалирование используется в задачах репликации БД MySQL, если их конфигурационная топология не подразумевает использования подчинённых узлов (master-master replication). Репликация не подразумевает непрерывности сетевой коммутации между узлами, что позволяет физически разнести узлы в пространстве на любое необходимое расстояние.

Вне зависимости от того, какой метод предпочтительнее в каждом конкретном случае, необходимо чётко проводить разницу между синхронизацией и резервным копированием данных (бэкапом). Зеркалирование баз данных MySQL повышает стабильность и доступность ваших приложений, но не защищает ваши данные от проблем среды и ошибок пользователей. Например, уничтожение базы данных на одном из узлов при зеркалировании приведёт к необратимому уничтожению копий этой базы данных на всех других серверах-зеркалах. Идея бэкапа, напротив, предполагает, что вы храните в неприкосновенности определённое количество резервных копий данных, не участвующих в работе сервера СУБД, и в нужный момент можете восстановить эти данные с любой сохранённой точки.

Внимание! Для работы с MySQL версии 8.1 и более поздних релизов необходимо использовать Handy Backup с поддержкой 64-битной архитектуры.

Физическая синхронизация MySQL

Масштабные приложения, использующие множество серверов, могут быть созданы таким способом, что каждый сервер MySQL будет работать с выделенным набором таблиц, недоступных другим серверам (до некоторой степени это напоминает принцип разбиения баз данных, database harding). Базы данных, используемые этими приложениями, могут занимать десятки и сотни гигабайт, что делает логическую синхронизацию (т.е. синхронизацию, основанную на использовании стандартных механизмов интерфейса базы данных) слишком долгим и ресурсоёмким процессом. В этой ситуации следует использовать "холодное" (физическое) зеркалирование БД:

  1. Отключите все сервисы MySQL, которые вы собираетесь синхронизировать.
  2. Подождите, пока СУБД сохранит все данные из памяти на жёсткий диск.
  3. Отзеркалируйте все необходимые папки стандартными методами для синхронизации файловой системы, с побайтовым сравнением результатов.
  4. Перезапустите все сервисы.

Этот сценарий, скомбинированный с репликацией БД MySQL, может быть выполнен без остановки сервера. Вы должны запустить две копии MySQL, по одной на каждый узел, в конфигурации "Master-to-Master". Чтобы выполнить зеркалирование и синхронизацию, остановите один из серверов, зеркалируйте и перезапустите. Второй сервер будет синхронизирован с ним автоматически.

Установка репликации требует от вас правильной предварительной настройки и синхронизации серверов MySQL до выполнения соответствующих команд MySQL. Программное обеспечение Handy Backup может помочь вам в этой операции; чтобы узнать больше, пожалуйста, прочтите по ссылке статью о репликации MySQL.

Комбинация зеркалирования и резервного копирования

Важно всегда помнить, что простое зеркалированиене спасёт ваши данные от возможных потерь. Все ошибочные операции с одной из зеркалированных БД неизбежно будут выполнены и на остальных зеркалах этой БД. Поэтому мы рекомендуем сочетать зеркалирование с резервным копированием (бэкапом) во всех случаях, когда это возможно – это позволит вам взять лучшее от обоих подходов и воспользоваться как возрастанием эффективности, так и гарантированным обеспечением надёжности хранения ваших данных MySQL.

Чтобы узнать больше о зеркалировании и резервном копировании при помощи решений Handy Backup, обратитесь, пожалуйста, к статье о бэкапе MySQL.

Смотрите также

С помощью нашего программного обеспечения вы сможете быстро и эффективно создавать резервные копии баз данных MySQL, производить восстановление данных, синхронизацию и репликацию БД.

Кто использует наше решение для резервного копирования?