Введение
Alauda Database for MySQL — это решение для высокодоступных баз данных, основанное на технологии MySQL Group Replication и работающие в Kubernetes. Оно обеспечивает автоматизированное развертывание и управление кластерами MySQL Group Replication.
Основные возможности
- Высокая доступность: архитектура кластера на базе MySQL Group Replication, реализующая автоматическую синхронизацию данных между несколькими узлами и самовосстановление при сбоях, с автоматическим переключением при отказе основного узла, что снижает риски прерывания сервиса.
- Согласованность данных: распределённая аутентификация на основе технологии group replication, обеспечивающая согласованность данных.
- Автоматизированное управление: реализация полного жизненного цикла управления развертыванием кластера, обновлением конфигураций, резервным копированием и восстановлением через Operator, что системно снижает операционные затраты.
- Эластичное масштабирование: поддержка онлайн-добавления и удаления узлов, автоматическая глобальная синхронизация состояния транзакций, адаптация к динамическим изменениям нагрузки.
- Разделение чтения и записи: поддержка разделения чтения и записи через MySQL Router.
Ограничения по использованию
- Количество участников группы: максимальное число участников группы репликации MySQL — 9. Рекомендуется не менее 3 участников для обеспечения высокой доступности.
- Движок InnoDB: опирается на движок хранения InnoDB; рекомендуется настроить
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"для отключения неподдерживаемых движков хранения. - Явный первичный ключ: каждая таблица для репликации должна иметь определённый первичный ключ или эквивалент первичного ключа, где эквивалентами считаются уникальные ключи с ограничением NOT NULL. Для поддержки таблиц без явно заданных первичных ключей настройте
sql_generate_invisible_primary_key: ON. - Качество сети: предназначено для развертывания в кластерах, где серверные инстансы расположены очень близко друг к другу, обеспечивая низкую сетевую задержку. Высокая задержка сети может привести к задержкам репликации или даже к её сбоям.
- Ограничения уровня изоляции: рекомендуется использовать уровень изоляции READ COMMITTED; уровень SERIALIZABLE не поддерживается.
- Ограничения внешних ключей: каскадные внешние ключи не рекомендуются в режиме multi-master.
- Взаимные блокировки в multi-master: в режиме multi-master могут возникать взаимные блокировки при использовании операторов
SELECT .. FOR UPDATE, так как блокировки не разделяются между участниками. - Конфликты при одновременных DDL и DML: в режиме multi-master операции DDL и DML могут вызывать конфликты; рекомендуется избегать одновременного выполнения DDL и DML.
- Ограничения размера транзакций: необходимо, чтобы размер транзакции находился в пределах group_replication_transaction_size_limit (по умолчанию около 143 МБ) и могла быть завершена в течение периода group_replication_member_expel_timeout (по умолчанию 5 с).
- Ограничения гетерогенной архитектуры: из-за ограничений плагина MySQL Clone гетерогенные сценарии в настоящее время не поддерживаются.
- Ограничения при поэтапном обновлении: MySQL Pods будут перезапускать сначала вторичные участники, а основной участник — последним. Этот процесс может вызвать кратковременные прерывания соединения, требующие реализации повторных попыток на уровне приложения.