Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for MySQL®
  • Начало работы
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
    • Общие вопросы
    • Вопросы о MySQL
    • Подключение
    • Проблемы с чтением/записью в кластер
    • Проблемы с производительностью
    • Изменение кластера
    • Мониторинг и логи
    • Миграция/перенос
    • Настройки параметров MySQL
    • Все вопросы на одной странице
  • Обучающие курсы

В этой статье:

  • Общие вопросы
  • Вопросы о MySQL®
  • Подключение
  • Проблемы с чтением/записью в кластер
  • Проблемы с производительностью
  • Изменение кластера
  • Мониторинг и логи
  • Миграция/перенос
  • Настройки параметров MySQL®
  1. Вопросы и ответы
  2. Все вопросы на одной странице

Вопросы и ответы про Managed Service for MySQL®®

Статья создана
Yandex Cloud
Улучшена
Обновлена 21 апреля 2025 г.
  • Общие вопросы
  • Вопросы о MySQL®
  • Подключение
  • Проблемы с чтением/записью в кластер
  • Проблемы с производительностью
  • Изменение кластера
  • Мониторинг и логи
  • Миграция/перенос
  • Настройки параметров MySQL®

Общие вопросыОбщие вопросы

  • Что такое Managed Service for MySQL®?

  • Какую часть работы по управлению и сопровождению баз данных берет на себя Managed Service for MySQL®?

  • Для каких задач стоит использовать Managed Service for MySQL®, а для каких — виртуальные машины с базами данных?

  • Что такое хост базы данных и кластер базы данных?

  • Как начать работу с Managed Service for MySQL®?

  • Сколько хостов БД может содержать кластер?

  • Как получить доступ к запущенному хосту базы данных?

  • Сколько кластеров можно создать в рамках одного облака?

  • Как происходит обслуживание кластеров БД?

  • Какую версию MySQL® использует Managed Service for MySQL®?

  • Что происходит, когда выпускается новая версия СУБД?

  • Что происходит, когда версия СУБД становится неподдерживаемой (deprecated)?

  • Как рассчитывается стоимость потребления для хоста базы данных?

  • Как изменить вычислительные ресурсы и объем хранилища для кластера БД?

  • Включено ли резервное копирование хостов БД по умолчанию?

  • Когда выполняется резервное копирование? Доступен ли кластер БД во время резервного копирования?

  • Можно ли изменить срок хранения автоматических резервных копий?

  • За какими метриками и процессами можно следить с помощью мониторинга?

  • Я могу получить логи моей работы в сервисах?

Вопросы о MySQL®Вопросы о MySQL®

  • Какие версии MySQL® поддерживает Managed Service for MySQL®?

  • Включено ли резервное копирование кластеров БД по умолчанию?

  • Шифруется ли соединение с кластером БД MySQL®?

  • Что такое реплика для чтения в MySQL®?

  • Какие ограничения накладываются на кластеры БД MySQL®?

  • Почему кластер работает медленно, хотя вычислительные ресурсы использованы не до предела?

ПодключениеПодключение

  • Как подключиться к кластеру?

  • Почему не получается подключиться из интернета?

  • Почему не получается подключиться из Yandex Cloud?

  • Почему не получается подключиться к многохостовому кластеру?

  • Можно ли подключиться к хостам кластера по SSH или получить на хостах права суперпользователя?

  • Что делать, если при получении SSL-сертификата через PowerShell возникает ошибка проверки отзыва?

  • Почему может быть превышен лимит соединений?

Проблемы с чтением/записью в кластерПроблемы с чтением/записью в кластер

  • Почему не работает запись в кластер?

  • Почему отстает реплика?

  • Почему размер кластера значительно больше объема данных в нем?

  • Что делать при возникновении любой ошибки приложения?

Проблемы с производительностьюПроблемы с производительностью

  • Как выяснить причину снижения производительности в пиках нагрузки?

  • Как выяснить причину общего снижения производительности?

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

  • Как выяснить причину утилизации ресурса CPU?

  • Как выяснить причину утилизации ресурса IO?

  • Как выяснить причину утилизации ресурса сети?

  • Как выяснить причины блокировок?

  • Как оптимизировать проблемные запросы?

Изменение кластераИзменение кластера

  • Можно ли управлять кластером с помощью команд SQL?

  • Как уменьшить размер диска?

  • Как увеличить размера диска?

  • Как изменить тип диска?

  • Почему не добавляется/не удаляется хост?

  • Как переключить мастер (manual failover)?

  • Как перезагрузить хост?

Мониторинг и логиМониторинг и логи

  • Как посмотреть графики кластера и хостов?

  • Как посмотреть логи?

  • Как посмотреть текущие запросы?

  • Какая еще диагностика доступна?

  • Как настроить алерты?

  • Как настроить алерт, который срабатывает при заполнении определенного процента дискового пространства?

Миграция/переносМиграция/перенос

  • Как перенести данные в кластер?

  • Как перенести кластер в другой каталог или облако?

Настройки параметров MySQL®Настройки параметров MySQL®

  • Как задать часовой пояс (time zone)?

  • Как установить режим SQL (sql_mode)?

  • Какое значение установить для innodb_buffer_pool_size?

  • Как отключить строгий режим Innodb?

  • Как изменить набор символов и правила их сравнения (CHARACTER SET, COLLATE)?

  • Как настроить другие параметры?

Общие вопросыОбщие вопросы

Что такое Managed Service for MySQL®?Что такое Managed Service for MySQL®?

Managed Service for MySQL® — это сервис, который помогает вам создавать, эксплуатировать и масштабировать базы данных MySQL® в облачной инфраструктуре.

С Managed Service for MySQL® вы можете:

  • создавать базы данных с необходимыми параметрами производительности;
  • масштабировать вычислительные мощности и выделенный объем хранилища для баз данных по мере необходимости;
  • получать журналы работы баз данных.

Managed Service for MySQL® берет на себя трудоемкие задачи администрирования инфраструктуры MySQL®:

  • предоставляет мониторинг потребляемых ресурсов;
  • автоматически создает резервные копии баз данных;
  • обеспечивает отказоустойчивость за счет автоматического переключения на резервные реплики;
  • своевременно обновляет программное обеспечение СУБД.

Вы взаимодействуете с кластером БД в Managed Service for MySQL® как с обычной базой данных в вашей локальной инфраструктуре. Благодаря этому вы можете управлять внутренними настройками БД в соответствии с требованиями вашего приложения.

Какую часть работы по управлению и сопровождению баз данных берет на себя Managed Service for MySQL®?Какую часть работы по управлению и сопровождению баз данных берет на себя Managed Service for MySQL®?

При создании кластеров Managed Service for MySQL® выделяет ресурсы, устанавливает СУБД и создает базы данных.

Для созданных и запущенных баз данных Managed Service for MySQL® автоматически создает резервные копии, а также устанавливает исправления и обновления СУБД.

Также Managed Service for MySQL® обеспечивает репликацию данных между хостами БД (как внутри, так и между зонами доступности) и автоматически переключает нагрузку на резервную реплику в случае аварии.

Для каких задач стоит использовать Managed Service for MySQL®, а для каких — виртуальные машины с базами данных?Для каких задач стоит использовать Managed Service for MySQL®, а для каких — виртуальные машины с базами данных?

Yandex Cloud предлагает два варианта работы с базами данных:

  • Managed Service for MySQL® позволяет вам эксплуатировать шаблонные базы данных, не заботясь об администрировании.
  • Виртуальные машины Yandex Compute Cloud позволяют вам создавать и настраивать собственные базы данных. Такой подход позволяет использовать любые СУБД, подключаться к базам данных по SSH и так далее.

Что такое хост базы данных и кластер базы данных?Что такое хост базы данных и кластер базы данных?

Хост БД — это изолированная среда базы данных в облачной инфраструктуре с выделенными вычислительными ресурсами и зарезервированным объемом хранилища данных.

Кластер БД — это один или более хостов БД, между которыми можно настроить репликацию.

Как начать работу с Managed Service for MySQL®?Как начать работу с Managed Service for MySQL®?

Managed Service for MySQL® доступен всем зарегистрированным пользователям Yandex Cloud.

Чтобы создать кластер базы данных в Managed Service for MySQL®, необходимо определиться с его характеристиками:

  • Класс хостов (характеристики производительности — процессоры, память и т. п.).
  • Объем хранилища (резервируется в полном объеме при создании кластера).
  • Сеть, к которой будет подключен ваш кластер.
  • Количество хостов для кластера и зона доступности для каждого хоста вы можете выбрать зону доступности.

Подробные инструкции см. в разделе Начало работы.

Сколько хостов БД может содержать кластер?Сколько хостов БД может содержать кластер?

Минимальное количество хостов зависит от типа используемого хранилища:

  • Минимум три хоста — для следующих дисков:

    • локальные SSD-диски (local-ssd);
    • нереплицируемые SSD-диски (network-ssd-nonreplicated).
  • Минимум один хост — для следующих дисков:

    • сетевые HDD-диски (network-hdd);
    • сетевые SSD-диски (network-ssd);
    • сверхбыстрые сетевые SSD-диски с тремя репликами (network-ssd-io-m3).

Максимальное количество хостов в кластере ограничено установленными лимитами.

Подробнее см. в разделе Квоты и лимиты.

Как получить доступ к запущенному хосту базы данных?Как получить доступ к запущенному хосту базы данных?

Вы можете подключаться к базам данных Managed Service for MySQL® способами, стандартными для СУБД.

Подробнее о подключении к кластерам.

Сколько кластеров можно создать в рамках одного облака?Сколько кластеров можно создать в рамках одного облака?

Технические и организационные ограничения MDB приведены в разделе Квоты и лимиты.

Как происходит обслуживание кластеров БД?Как происходит обслуживание кластеров БД?

Под обслуживанием в Managed Service for MySQL® понимается:

  • автоматическая установка обновлений и исправлений СУБД для хостов БД (в т. ч. для выключенных кластеров);
  • изменение класса хостов и объема хранилища;
  • другие сервисные работы Managed Service for MySQL®.

Подробнее см. в разделе Техническое обслуживание.

Какую версию MySQL® использует Managed Service for MySQL®?Какую версию MySQL® использует Managed Service for MySQL®?

Managed Service for MySQL® поддерживает MySQL® 5.7 и MySQL® 8.

Что происходит, когда выпускается новая версия СУБД?Что происходит, когда выпускается новая версия СУБД?

Программное обеспечение баз данных обновляется при выходе новых минорных версий. Владельцы затронутых кластеров БД получают предварительное оповещение о сроках проведения работ и доступности баз данных.

Что происходит, когда версия СУБД становится неподдерживаемой (deprecated)?Что происходит, когда версия СУБД становится неподдерживаемой (deprecated)?

Через месяц после того, как версия СУБД становится неподдерживаемой, Managed Service for MySQL® автоматически оповещает владельцев кластеров БД, созданных с этой версией, по электронной почте.

Создание новых хостов с СУБД неподдерживаемых версий становится невозможным. Через 7 дней после оповещения для минорных версий и через 1 месяц для мажорных версий проводится автоматическое обновление кластеров БД до следующей поддерживаемой версии. Обновление неподдерживаемых мажорных версий происходит даже если у вас отключено автоматическое обновление.

Как рассчитывается стоимость потребления для хоста базы данных?Как рассчитывается стоимость потребления для хоста базы данных?

В Managed Service for MySQL® стоимость потребления рассчитывается исходя из следующих параметров:

  • Выбранный класс хостов.
  • Объем хранилища, зарезервированного для хоста БД.
  • Объем резервных копий кластера БД. Объем резервных копий, равный объему хранилища, не тарифицируется. Хранение резервных копий сверх этого объема оплачивается по тарифам.
  • Количество часов работы хоста БД. Неполные часы округляются до целого значения. Стоимость часа работы для каждого класса хостов приведена в разделе Правила тарификации.

Как изменить вычислительные ресурсы и объем хранилища для кластера БД?Как изменить вычислительные ресурсы и объем хранилища для кластера БД?

Вы можете изменять вычислительные ресурсы и объем хранилища в консоли управления — просто выберите другой класс хостов для нужного кластера.

Характеристики кластера изменяются в течение 30 минут. В этот период также могут быть включены другие сервисные работы по кластеру, например, установка обновлений.

Включено ли резервное копирование хостов БД по умолчанию?Включено ли резервное копирование хостов БД по умолчанию?

Да, по умолчанию резервное копирование включено. Для MySQL® выполняется полное резервное копирование один раз в сутки, и сохраняются все журналы транзакций кластера БД. Это позволяет восстановить состояние кластера на любой момент времени в пределах периода хранения резервных копий, за исключением последних 30 секунд.

По умолчанию резервные копии хранятся 7 дней.

Когда выполняется резервное копирование? Доступен ли кластер БД во время резервного копирования?Когда выполняется резервное копирование? Доступен ли кластер БД во время резервного копирования?

Окно резервного копирования — это интервал времени, в течение которого выполняется ежедневное полное резервное копирование кластера БД. Окно резервного копирования — 01:00−05:00 по московскому времени.

Во время окна резервного копирования кластеры остаются полностью доступными.

Можно ли изменить срок хранения автоматических резервных копий?Можно ли изменить срок хранения автоматических резервных копий?

При создании или изменении кластера можно задать срок хранения автоматических резервных копий.

За какими метриками и процессами можно следить с помощью мониторинга?За какими метриками и процессами можно следить с помощью мониторинга?

Для всех типов СУБД можно отслеживать:

  • загрузку процессора, памяти, сети, дисков в абсолютных величинах;
  • загрузку памяти, сети, дисков в процентах от установленных лимитов для класса хостов соответствующего кластера;
  • объем данных кластера БД и остаток свободного места в хранилище данных.

Для всех хостов БД можно отслеживать метрики, специфические для типа соответствующей СУБД. Например для MySQL® можно отслеживать:

  • среднее время выполнения запроса;
  • количество запросов в секунду;
  • количество ошибок в журналах и т. д.

Мониторинг можно осуществлять с минимальной гранулярностью в 5 секунд.

Соответствует ли сервис требованиям Федерального закона Российской Федерации № 152-ФЗ О персональных данных?Соответствует ли сервис требованиям Федерального закона Российской Федерации № 152-ФЗ О персональных данных?

Да, вы можете ознакомиться с полным заключением по результатам аудита системы защиты.

Я могу получить логи моей работы в сервисах?Я могу получить логи моей работы в сервисах?

Да, вы можете запросить информацию о работе с вашими ресурсами из логов сервисов Yandex Cloud. Подробнее читайте в разделе Запросы данных.

Вопросы о MySQL®Вопросы о MySQL®

Какие версии MySQL® поддерживает Managed Service for MySQL®?Какие версии MySQL® поддерживает Managed Service for MySQL®?

Managed Service for MySQL® поддерживает MySQL® 5.7 и MySQL® 8.

Включено ли резервное копирование кластеров БД по умолчанию?Включено ли резервное копирование кластеров БД по умолчанию?

Да, по умолчанию резервное копирование включено. Для кластеров MySQL® выполняется полное резервное копирование один раз в сутки, и сохраняются все журналы транзакций кластера БД. Это позволяет восстановить состояние кластера на любой момент времени в пределах периода хранения резервных копий, за исключением последних 30 секунд.

Шифруется ли соединение с кластером БД MySQL®?Шифруется ли соединение с кластером БД MySQL®?

Соединение между кластером БД и приложением всегда шифруется с использованием SSL. Отключить шифрование соединений с кластером нельзя.

Что такое реплика для чтения в MySQL®?Что такое реплика для чтения в MySQL®?

Реплика для чтения — это доступный только для чтения хост в кластере БД MySQL®, данные на котором синхронизируются с хостом-мастером (если в кластере работает более 1 хоста). Вы можете использовать реплику для чтения для снижения нагрузки на мастер в базах данных с большим объемом запросов на чтение.

Какие ограничения накладываются на кластеры БД MySQL®?Какие ограничения накладываются на кластеры БД MySQL®?

Подробнее об ограничениях Managed Service for MySQL® см. раздел Квоты и лимиты. В разделе Классы хостов приведены характеристики кластеров, которые можно создать с помощью Managed Service for MySQL®.

Почему кластер работает медленно, хотя вычислительные ресурсы использованы не до предела?Почему кластер работает медленно, хотя вычислительные ресурсы использованы не до предела?

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

Максимальные IOPS и bandwidth прирастают на фиксированную величину при увеличении размера хранилища на определенный шаг. Шаг и прирост зависят от типа дисков:

Тип дисков Шаг, ГБ Прирост макс. IOPS (чтение/запись) Прирост макс. bandwidth (чтение/запись), МБ/с
network-hdd 256 300/300 30/30
network-ssd 32 1000/1000 15/15
network-ssd-nonreplicated, network-ssd-io-m3 93 28000/5600 110/82

Чтобы увеличить максимальные значения IOPS и bandwidth и снизить вероятность троттлинга, расширьте размер хранилища при изменении кластера.

Если вы используете хранилище с типом диска network-hdd, рассмотрите возможность перехода на network-ssd или network-ssd-nonreplicated путем восстановления кластера из резервной копии.

ПодключениеПодключение

Как подключиться к кластеру?Как подключиться к кластеру?

Посмотрите примеры подключения в документации или на странице кластера в консоли управления (нажмите кнопку Подключиться на панели сверху).

Хосты MySQL® с публичным доступом поддерживают только соединения с SSL-сертификатом.

Существуют также особые FQDN, указывающие на текущий мастер и наименее отстающую реплику кластера.

Почему не получается подключиться из интернета?Почему не получается подключиться из интернета?

Проверьте, имеет ли хост публичный доступ. Для этого в консоли управления:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. Нажмите на имя нужного кластера, затем выберите вкладку Хосты.
  3. Посмотрите значение в столбце Публичный доступ у нужного хоста.

MySQL®-хосты с публичным доступом поддерживают только соединения с SSL-сертификатом.

Дополнительно:

  • Если публичный доступ в вашем кластере настроен только для некоторых хостов, автоматическая смена мастера может привести к тому, что вы не сможете подключиться к мастеру из интернета.
  • Если вы используете особые FQDN, проверьте в списке хостов, что текущий мастер или реплика имеют публичный доступ.
  • Если вы используете Группы безопасности, проверьте их настройки.

Почему не получается подключиться из Yandex Cloud?Почему не получается подключиться из Yandex Cloud?

Проверьте, что вы подключаетесь с виртуальной машины Yandex Cloud, расположенной в той же виртуальной сети, что и кластер MySQL®.

Для этого в консоли управления:

  1. Перейдите на страницу каталога, выберите сервис Managed Service for MySQL и нажмите на имя нужного кластера.
  2. Проверьте значение параметра Облачная сеть и перейдите по ссылке названия сети, чтобы посмотреть ее подсети.
  3. Убедитесь, что виртуальная машина расположена в одной из подсетей той же сети.

Дополнительно:

  • Если вы подключаетесь к хосту с публичным доступом, то соединение возможно только с SSL-сертификатом.
  • Если вы используете особые FQDN, проверьте в списке хостов, что текущий мастер или реплика имеют публичный доступ.
  • Если вы используете Группы безопасности, проверьте их настройки.

Почему не получается подключиться к многохостовому кластеру?Почему не получается подключиться к многохостовому кластеру?

Если публичный доступ в вашем кластере настроен только для некоторых хостов, автоматическая смена мастера может привести к тому, что вы не сможете подключиться к мастеру из интернета.

Проверьте, имеет ли хост публичный доступ. Для этого в консоли управления:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. Нажмите на имя нужного кластера, затем выберите вкладку Хосты.
  3. Посмотрите значение в столбце Публичный доступ у нужного хоста.

Дополнительно:

  • Если вы используете особые FQDN, проверьте в списке хостов, что текущий мастер или реплика имеют публичный доступ.

  • Если после добавления хоста к нему невозможно подключиться, убедитесь, что группа безопасности кластера настроена корректно для подсети, в которую помещен хост.

Можно ли подключиться к хостам кластера по SSH или получить на хостах права суперпользователя?Можно ли подключиться к хостам кластера по SSH или получить на хостах права суперпользователя?

Подключиться к хостам через SSH не получится. Это сделано в целях безопасности и отказоустойчивости пользовательских кластеров, так как прямые изменения внутри хоста могут привести к его полной неработоспособности.

Что делать, если при получении SSL-сертификата через PowerShell возникает ошибка проверки отзыва?Что делать, если при получении SSL-сертификата через PowerShell возникает ошибка проверки отзыва?

Полный текст ошибки:

curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012)
The revocation function was unable to check revocation for the certificate

Это означает, что при подключении к веб-сайту не удалось проверить, есть ли его сертификат в списке отозванных.

Чтобы исправить ошибку:

  • убедитесь, что проверку не блокируют настройки корпоративной сети;

  • выполните команду с параметром --ssl-no-revoke.

    mkdir $HOME\.mysql; curl.exe --ssl-no-revoke -o $HOME\.mysql\root.crt https://storage.yandexcloud.net/cloud-certs/CA.pem
    

Почему может быть превышен лимит соединений?Почему может быть превышен лимит соединений?

Максимальное количество одновременных подключений к хосту кластера Managed Service for MySQL® задается параметром max_connections и по умолчанию равно величине <количество_МБ_RAM_на_одном_хосте> ÷ 32, но не менее 100.

Например, для хоста класса s1.micro (2 vCPU, 8 ГБ) значение параметра max_connections по умолчанию равно 8192 ÷ 32 = 256.

Вы можете изменить значение Max connections в настройках кластера.

Проблемы с чтением/записью в кластерПроблемы с чтением/записью в кластер

Почему не работает запись в кластер?Почему не работает запись в кластер?

  1. Если хранилище баз данных заполнится на 95%, кластер перейдет в режим Только чтение. Проверьте свободное место в хранилище и при необходимости увеличьте его размер. Чтобы проверить свободное место:
    1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
    2. Нажмите на имя нужного кластера и перейдите на вкладку Мониторинг.
    3. Проверьте график Disk usage.
  2. Убедитесь, что запись производится в хост, который является мастером, а не репликой.

Почему отстает реплика?Почему отстает реплика?

  1. Проверьте, установлено ли параметру slave_rows_search_algorithms значение INDEX_SCAN,HASH_SCAN.
  2. Вместо выполнения операции ALTER TABLE над объемными таблицами рекомендуется использовать утилиту pt-online-schema-change из пакета Percona Toolkit — это обеспечит отсутствие блокировок.
  3. Если отставание сохраняется, включите параллельную репликацию. Для этого настройте параметры:
    slave_parallel_type=LOGICAL_CLOCK
    slave_parallel_workers=8
    
  4. Выполните на реплике команду SHOW SLAVE STATUS;. Если значение параметра Executed_Gtid_Set долго не меняется, убедитесь, что во всех таблицах присутствуют индексы.
  5. Если данные пишутся в БД непрерывно и при этом объем оперативной памяти на хосте 8 ГБ или больше, рекомендуется увеличить значение параметра innodb_log_file_size до 1-2 ГБ (изменение параметра происходит с рестартом сервера).

Почему размер кластера значительно больше объема данных в нем?Почему размер кластера значительно больше объема данных в нем?

Это происходит в силу особенностей хранения данных самой СУБД MySQL®, а не сервиса Managed Service for MySQL® в Yandex Cloud. Факторы, влияющие на занимаемое место в хранилище:

  • фрагментация;
  • коэффициент заполнения индекса (fill factor);
  • хранение старых версий строк (rollback segment);
  • упаковка типов.

Чтобы узнать фактический объем таблиц в базе, обратитесь к системной таблице INNODB_SYS_TABLESPACES. Подробнее см. в статье Finding MySQL Table Size on Disk.

Что делать при возникновении любой ошибки приложения?Что делать при возникновении любой ошибки приложения?

  1. Проверьте, есть ли свободное место на диске, где располагается кластер:
    1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
    2. Нажмите на имя нужного кластера и перейдите на вкладку Мониторинг.
    3. Проверьте график Disk usage.
  2. Проверьте графики мониторинга хостов:
    1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
    2. Нажмите на имя нужного кластера, затем выберите вкладку Хосты.
    3. Перейдите на страницу Мониторинги.
    4. Найдите проблемный ресурс: график будет приближаться к границе или выйдет за нее.
    5. Выберите другие хосты из выпадающего списка и проверьте их тоже.
  3. Проверьте наличие свободных ресурсов на виртуальной машине или сервере, где запущено приложение, подключаемое к БД.

Проблемы с производительностьюПроблемы с производительностью

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

Просмотрите лог медленных запросов:

  1. В настройках кластера MySQL® установите значение Long query time больше нуля.
  2. В консоли управления на странице кластера выберите вкладку Логи.
  3. В левом верхнем углу выберите из выпадающего списка MYSQL_SLOW_QUERY.

Как выяснить причину общего снижения производительности?Как выяснить причину общего снижения производительности?

Проверьте графики мониторинга хостов:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. Нажмите на имя нужного кластера, затем выберите вкладку Хосты.
  3. Перейдите на страницу Мониторинги:
    • Рекомендуется увеличить класс хостов:
      • При стабильно высоком значении Steal графика CPU usage.
      • При стабильно низком значении Free графика Memory usage.
    • При высоком значении iowait графика CPU usage возможно превышение лимитов IOPS дискового хранилища. Рекомендуется увеличить значение как минимум до следующего порога блока размещения или использовать более быстрые диски. Подробнее о лимитах и производительности дисков см. в документации Yandex Compute Cloud.

Почему отстает реплика?Почему отстает реплика?

  1. Проверьте, установлено ли параметру slave_rows_search_algorithms значение INDEX_SCAN,HASH_SCAN.
  2. Вместо выполнения операции ALTER TABLE над объемными таблицами рекомендуется использовать утилиту pt-online-schema-change из пакета Percona Toolkit — это обеспечит отсутствие блокировок.
  3. Если отставание сохраняется, включите параллельную репликацию. Для этого настройте параметры:
    slave_parallel_type=LOGICAL_CLOCK
    slave_parallel_workers=8
    
  4. Выполните на реплике команду SHOW SLAVE STATUS;. Если значение параметра Executed_Gtid_Set долго не меняется, убедитесь, что во всех таблицах присутствуют индексы.
  5. Если данные пишутся в БД непрерывно и при этом объем оперативной памяти на хосте 8 ГБ или больше, рекомендуется увеличить значение параметра innodb_log_file_size до 1-2 ГБ (изменение параметра происходит с рестартом сервера).

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

Проверьте графики мониторинга хостов:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. Нажмите на имя нужного кластера, затем выберите вкладку Хосты.
  3. Перейдите на страницу Мониторинги.
  4. Найдите проблемный ресурс: график будет приближаться к границе или выйдет за нее.
  5. Выберите другие хосты из выпадающего списка и проверьте их тоже.

Если по графикам ресурсы кластера не перегружены, воспользуйтесь рекомендациями из разделов Причины блокировок и Оптимизация запросов.

Как выяснить причину утилизации ресурса CPU?Как выяснить причину утилизации ресурса CPU?

Информацию о потреблении ресурса CPU можно получить с помощью системных представлений. Для доступа к ним потребуется административная привилегия PROCESS уровня кластера.

  1. Выдайте пользователю привилегию PROCESS, выполнив команду CLI:

    yc managed-mysql user update \
        --global-permissions PROCESS <имя_пользователя> \
        --cluster-id <идентификатор_кластера>
    
  2. Получите список запросов в базу с наибольшим временем выполнения с помощью запроса:

    SELECT * FROM sys.statement_analysis LIMIT 10;
    

Обратите внимание на запросы с высокими значениями rows_examined, rows_sorted или флагом full_scan — с большой вероятностью именно они потребляют ресурсы CPU. Подробнее см. в документации MySQL®.

Как выяснить причину утилизации ресурса IO?Как выяснить причину утилизации ресурса IO?

Приблизительную информацию о потреблении ресурса IO потоками в MySQL® можно получить с помощью системных представлений. Для доступа к ним потребуется административная привилегия PROCESS уровня кластера.

  1. Выдайте пользователю привилегию PROCESS, выполнив команду CLI:

    yc managed-mysql user update \
        --global-permissions PROCESS <имя_пользователя> \
        --cluster-id <идентификатор_кластера>
    
  2. Получите список потоков с помощью запроса:

    SELECT   t.name             AS thread_name,
             t.processlist_user AS user,
             t.processlist_info AS query,
             t.processlist_time AS time,
             io.bytes           AS bytes
    FROM     performance_schema.threads t
    JOIN
             (
                      SELECT   thread_id,
                               sum(number_of_bytes) AS bytes
                      FROM     performance_schema.events_waits_history_long
                      WHERE    object_type='FILE'
                      GROUP BY thread_id) io
    ON       t.thread_id = io.thread_id
    ORDER BY io.bytes DESC;
    

Как правило, выше в таблице находятся потоки, обслуживающие буферный пул и репликацию. Такое состояние является нормой.

Как выяснить причину утилизации ресурса сети?Как выяснить причину утилизации ресурса сети?

Повышенную нагрузку на сеть могут вызывать: SELECT, возвращающий большое число записей, INSERT больших объемов данных или UPDATE, изменяющий множество строк. В случае записи изменения будут реплицироваться на хосты-реплики, что вызовет дополнительный трафик.

Приблизительную информацию о потреблении ресурса сети потоками в MySQL® можно получить с помощью системных представлений. Для доступа к ним потребуется административная привилегия PROCESS уровня кластера.

  1. Выдайте пользователю привилегию PROCESS, выполнив команду CLI:

    yc managed-mysql user update \
        --global-permissions PROCESS <имя_пользователя> \
        --cluster-id <идентификатор_кластера>
    
  2. Получите список потоков с помощью запроса:

    SELECT   t.name                       AS thread_name,
             t.processlist_user           AS user,
             t.processlist_info           AS query,
             t.processlist_time           AS time,
             net.bytes/t.processlist_time AS avg_bytes,
             net.bytes                    AS total_bytes
    FROM     performance_schema.threads t
    JOIN
             (
                      SELECT   thread_id,
                               Sum(variable_value) bytes
                      FROM     performance_schema.status_by_thread
                      WHERE    variable_name IN ('Bytes_sent',
                                                 'Bytes_received')
                      GROUP BY thread_id ) net
    ON       t.thread_id = net.thread_id
    WHERE    t.processlist_time IS NOT NULL
    ORDER BY net.bytes DESC;
    

    Этот запрос возвращает статистику с момента запуска потоков, поэтому долгоживущие соединения (например, репликация) будут в нем выше.

Как выяснить причины блокировок?Как выяснить причины блокировок?

Если ресурсы кластера не перегружены, но запросы все равно выполняются долго, запросите информацию об ожиданиях блокировок с помощью системных представлений. Для доступа к ним потребуется административная привилегия PROCESS уровня кластера.

  1. Выдайте пользователю привилегию PROCESS, выполнив команду CLI:

    yc managed-mysql user update \
        --global-permissions PROCESS <имя_пользователя> \
        --cluster-id <идентификатор_кластера>
    
  2. Для просмотра блокировок уровня таблиц выполните запрос:

    SELECT * FROM sys.schema_table_lock_waits
    
  3. Для просмотра блокировок уровня отдельных строк выполните запрос:

    SELECT * FROM sys.innodb_lock_waits
    

Подробнее см. в документации MySQL®.

Как оптимизировать проблемные запросы?Как оптимизировать проблемные запросы?

Обратитесь к официальной документации MySQL®:

  • Использование операции EXPLAIN.
  • Оптимизация запросов.
  • Оптимизация таблиц.

Изменение кластераИзменение кластера

Можно ли управлять кластером с помощью команд SQL?Можно ли управлять кластером с помощью команд SQL?

Существуют ограничения на управление кластером с помощью команд SQL. Подробнее см. в разделе Ограничения для команд SQL.

Как уменьшить размер диска?Как уменьшить размер диска?

Уменьшить размер хранилища кластера невозможно.

Вы можете создать новый кластер с хранилищем меньшего размера и перенести в него данные.

Как увеличить размера диска?Как увеличить размера диска?

Увеличение размера недоступно для хранилища на нереплицируемых SSD-дисках: воспользуйтесь инструкцией в разделе Изменение кластера.

Чтобы увеличить размер хранилища на нереплицируемых SSD-дисках, восстановите кластер из резервной копии и задайте нужный размер.

Тип диска можно проверить в консоли управления. Для этого на странице кластера в блоке Ресурсы найдите параметр Хранилище.

Как изменить тип диска?Как изменить тип диска?

Чтобы изменить тип диска, восстановите кластер из резервной копии.

Почему не добавляется/не удаляется хост?Почему не добавляется/не удаляется хост?

Количество хостов в кластерах ограничено квотами. Перед добавлением хоста проверьте используемые ресурсы: откройте страницу Квоты и найдите блок Managed Databases.

Удалить хост можно при условии, что он не является единственным хостом в кластере. Чтобы заменить единственный хост, сначала создайте новый хост, затем удалите старый.

В кластерах с локальным типом диска настроена отказоустойчивая конфигурация из 3 хостов. Меньшее количество хостов недопустимо.

Как переключить мастер (manual failover)?Как переключить мастер (manual failover)?

В отказоустойчивом кластере из нескольких хостов вы можете переключить роль мастера с текущего хоста-мастера на хост-реплику. После этой операции текущий хост-мастер станет хостом-репликой для нового мастера.

Консоль управления
CLI
  1. Перейдите на страницу кластера и выберите вкладку Хосты.
  2. Нажмите Переключить мастер.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы переключить мастер:

  1. Посмотрите описание команды CLI для переключения мастера:

    yc managed-mysql cluster start-failover --help
    
  2. Выполните команду yc managed-mysql cluster start-failover.

Как перезагрузить хост?Как перезагрузить хост?

Перезагрузить отдельный хост кластера невозможно. Для перезагрузки хостов остановите и запустите кластер.

Мониторинг и логиМониторинг и логи

Как посмотреть графики кластера и хостов?Как посмотреть графики кластера и хостов?

В консоли управления перейдите на страницу кластера. Чтобы просмотреть графики кластера, перейдите в раздел Мониторинг. Для графиков отдельных хостов перейдите в раздел Хосты → Мониторинги.

Чтобы посмотреть графики в сервисе Yandex Monitoring, на главной странице выберите сервисный дашборд Managed Service for MySQL. Для просмотра отдельных метрик перейдите в раздел Метрики и задайте параметру service значение Managed Service for MySQL.

Как посмотреть логи?Как посмотреть логи?

Консоль управления
CLI
  1. Перейдите на страницу кластера и выберите вкладку Логи.
  2. В верхней части страницы выберите один из доступных логов:
    • MYSQL_ERROR — основной лог MySQL®, содержит сообщения об ошибках. Включен всегда.
    • MYSQL_SLOW_QUERY — информация о медленных запросах. Включен, если параметр long_query_time больше 0.
    • MYSQL_AUDIT — информация о подключениях к базе данных.
    • MYSQL_GENERAL — полный список всех запросов. Рекомендуется включать только для отладки кластеров в среде разработки.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Посмотрите описание команды CLI для просмотра логов:

    yc managed-mysql cluster list-logs --help
    
  2. Выполните команду yc managed-mysql cluster cluster list-logs.

Как долго хранятся логи?Как долго хранятся логи?

Логи кластера хранятся 30 дней.

Как посмотреть текущие запросы?Как посмотреть текущие запросы?

Чтобы посмотреть запросы текущего пользователя, выполните запрос:

SHOW PROCESSLIST;

Подробное описание результата см. в документации MySQL®.

Какая еще диагностика доступна?Какая еще диагностика доступна?

Пользователь с привилегией PROCESS уровня кластера может выполнять запросы:

  • SHOW FULL PROCESSLIST;
  • SHOW ENGINE INNODB STATUS;
  • SELECT из системных схем performance_schema и sys.

Чтобы выдать привилегию PROCESS, выполните команду CLI:

yc managed-mysql user update \
    --global-permissions PROCESS <имя_пользователя> \
    --cluster-id <идентификатор_кластера>

Как настроить алерты?Как настроить алерты?

Используйте сервис Yandex Monitoring, инструкция по настройке в разделе Создание алерта.

При выборе метрики задайте параметру service значение Managed Service for MySQL.

Как настроить алерт, который срабатывает при заполнении определенного процента дискового пространства?Как настроить алерт, который срабатывает при заполнении определенного процента дискового пространства?

Создайте алерт с метрикой disk.used_bytes в сервисе Yandex Monitoring. Метрика показывает размер использованного дискового пространства в кластере Managed Service for MySQL®.

Для disk.used_bytes используются пороги для оповещения. Их рекомендуемые значения:

  • Alarm — 90% дискового пространства.
  • Warning — 80% дискового пространства.

Значения порогов задаются только в байтах. Например, рекомендуемые значения для диска размером в 100 ГБ:

  • Alarm — 96636764160 байтов (90%).
  • Warning — 85899345920 байтов (80%).

Миграция/переносМиграция/перенос

Как перенести данные в кластер?Как перенести данные в кластер?

Воспользуйтесь инструкцией в разделе Миграция данных из стороннего кластера MySQL®.

Как перенести кластер в другой каталог или облако?Как перенести кластер в другой каталог или облако?

Чтобы перенести кластер:

  • В другой каталог — восстановите кластер из резервной копии. При задании параметров нового кластера укажите нужный каталог.
  • В другое облако — воспользуйтесь инструкцией в разделе Миграция данных из стороннего кластера MySQL®.

Настройки параметров MySQL®Настройки параметров MySQL®

Как задать часовой пояс (time zone)?Как задать часовой пояс (time zone)?

Часовой пояс задается в виде смещения от UTC. Например, для Москвы: '+03:00'. Названия часовых поясов не поддерживаются.

Подробнее см. в документации MySQL®.

Как установить режим SQL (sql_mode)?Как установить режим SQL (sql_mode)?

Воспользуйтесь инструкцией в разделе Управление базами данных.

Какое значение установить для innodb_buffer_pool_size?Какое значение установить для innodb_buffer_pool_size?

Рекомендуемые границы для параметра:

  • Минимум — 25% от объема RAM на хосте.
  • Максимум — 75% от объема RAM на хосте при условии, что остается не менее 1–1,6 ГБ свободной памяти для выполнения запросов, мониторинга и системных процессов.

Как отключить строгий режим Innodb?Как отключить строгий режим Innodb?

По умолчанию строгий режим Innodb включен. Если отключать режим средствами MySQL®, возникнет ошибка:

Mysql query error: (1227) Access denied; you need (at least one of) the SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s) for this operation (400)

Чтобы отключить строгий режим, измените значение параметра innodb_strict_mode с помощью интерфейсов Yandex Cloud. Также убедитесь, что в вашей конфигурации не осталось команды, отключающей строгий режим, например $connection–>queryExecute("SET innodb_strict_mode=0");.

Как изменить набор символов и правила их сравнения (CHARACTER SET, COLLATE)?Как изменить набор символов и правила их сравнения (CHARACTER SET, COLLATE)?

Воспользуйтесь инструкцией в разделе Управление базами данных.

Как настроить другие параметры?Как настроить другие параметры?

Настройки MySQL®, доступные для изменения, перечислены в документации. Изменить их значения можно в одном из доступных интерфейсов: консоль управления, CLI, API или Terraform. Для этого воспользуйтесь инструкцией в разделе Изменение кластера.

Была ли статья полезна?

Предыдущая
Настройки параметров MySQL
Следующая
Обучающие курсы
Проект Яндекса
© 2025 ООО «Яндекс.Облако»