Введение
Alauda Database for MySQL — это решение для высокодоступных баз данных, основанное на технологии MySQL Group Replication и работающее в Kubernetes. Оно обеспечивает автоматизированное развертывание и управление кластерами MySQL Group Replication.
Основные возможности
- Высокая доступность: Архитектура кластера основана на MySQL 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 будут перезапускать сначала вторичные участники, а основной участник — последним. Этот процесс может вызвать кратковременные прерывания соединений, требующие реализации повторных попыток на уровне приложений.