Создание кластеров MySQL
Создание кластеров MySQL – это технология, позволяющая распределить базу данных MySQL на множество независимых узлов, чтобы до критического минимума уменьшить вероятность любых локальных сбоев и ошибок. Создание кластеров позволяет почти неограниченно масштабировать ваши приложения или сайты, основанные на системе управления базами данных (СУБД) MySQL, распределяя их работу горизонтально между относительно несложными и недорогими аппаратными средствами.
Цель создания кластера MySQL
Создание кластеров позволяет почти неограниченно масштабировать ваши приложения или сайты, основанные на системе управления базами данных (СУБД) MySQL, распределяя их работу горизонтально между относительно несложными и недорогими аппаратными средствами.
Средства создания MySQL кластеров
Кластеры создаются средствами СУБД Cluster MySQL. Эта работа требует некоторой квалификации. Создание кластеров доступно, начиная с версии СУБД MySQL 5.0. Чтобы создать кластер, необходимо выделить три группы физических или виртуальных узлов (серверов MySQL): для хранения, для обработки запросов и для управления.
Рекомендация. Для обеспечения максимальной доступности кластера MySQL, в каждую группу должно входить не менее 3 узлов.
Создание кластеров MySQL и резервное копирование
Необходимо чётко понимать, что кластерирование БД MySQL не устраняет нужды в бэкапе (резервном копировании) БД MySQL. Кластеры хороши для повышения доступности и производительности, но не способны напрямую противостоять таким угрозам, как человеческие ошибки, вирусы или проблемы MySQL. Если ваше приложение включает оператор DROP DATABASE, не существует пути для восстановления удалённого содержимого БД – неважно, сколько узлов хранения имеет при этом ваш кластер. Чтобы узнать больше о бэкапе MySQL, пожалуйста, прочтите соответствующую статью.
Следующая важная вещь, которую следует знать о резервном копировании MySQL, заключается в том, что некоторые реализации СУБД MySQL плохо работают с конкурирующими процессами чтения и записи. Это значит, что при активной работе вашей СУБД на запись резервное копирование может производиться в течение слишком длительного времени. Обычно эта проблема преодолевается с помощью репликации MySQL, после которой один из компьютеров (master) работает на запись, а связанный с ним компьютер для доступа к данным (slave) – на чтение. Так же имейте в виду, что для работы с MySQL версии 8.1 и более поздних релизов необходимо использовать Handy Backup с поддержкой 64-битной архитектуры.
Однако столь же прекрасные результаты даёт комбинация кластерирования и бэкапа. Кластеры MySQL используют систему хранения данных Network DataBase (NDB), являющуюся загружаемым в память приложением для распределённого хранения и доступа. Каждая запись, попадающая в NDB, автоматически копируется в узлы хранения. Система автоматически распределяет данные между различными узлами, поэтому в сильно загруженных записью данных сценариях работы одни узлы могут тотчас же начинать работать на бэкап, в то время как другие продолжают принимать данные. Эта схема обычно чуть медленнее, чем схема доступа, основанная на репликации баз данных, но значительно быстрее прямого доступа к единственному серверу MySQL. Чтобы найти инструкции по созданию кластеров MySQL, пожалуйста, обратитесь к официальному руководству по MySQL.
Преимущества и недостатки MySQL кластеризации
Кратко просуммируем все преимущества подхода к организации баз данных на основе кластеров MySQL:
- Создание кластеров MySQL – надёжный подход к увеличению доступности данных.
- Механизм хранения данных Network DataBase (NDB), используемый в Cluster MySQL, даёт прекрасные результаты по скорости и оптимизации работы.
- Механизмы распределения нагрузки ввода-вывода эффективно оптимизируют работу сетевых приложений и приложений с большими потоками входящих данных.
- Кластер поддерживает практически бесконечные возможности горизонтального масштабирования, что позволяет избежать проблем с "узкими местами" системы (процессор, скорость обмена с диском, объём памяти и т.п.).
И недостатки такого подхода:
- Создание кластеров требует синхронной репликации узлов, что обычно требует их расположения в общем физическом пространстве и наличия широкополосной связи между ними.
- Механизм хранения данных Network DataBase (NDB) требует огромного количества оперативной памяти. Рекомендуется, чтобы каждый узел хранения имел так много памяти, как только возможно.
- Кластеры MySQL относительно трудны в установке и администрировании.
Версия 8.5.8 от 31 октября 2024. 118 MB
30-дневный полнофункциональный пробный период