Вопросы и ответы про Managed Service for MySQL®®
Общие вопросы
-
Что происходит, когда версия СУБД становится неподдерживаемой (deprecated)?
-
Как рассчитывается стоимость потребления для хоста базы данных?
-
Как изменить вычислительные ресурсы и объем хранилища для кластера БД?
-
Когда выполняется резервное копирование? Доступен ли кластер БД во время резервного копирования?
-
Можно ли изменить срок хранения автоматических резервных копий?
-
За какими метриками и процессами можно следить с помощью мониторинга?
Вопросы о MySQL®
-
Какие версии MySQL® поддерживает Managed Service for MySQL®?
-
Включено ли резервное копирование кластеров БД по умолчанию?
-
Почему кластер работает медленно, хотя вычислительные ресурсы использованы не до предела?
Подключение
-
Почему не получается подключиться к многохостовому кластеру?
-
Можно ли подключиться к хостам кластера по SSH или получить на хостах права суперпользователя?
-
Что делать, если при получении SSL-сертификата через PowerShell возникает ошибка проверки отзыва?
Проблемы с чтением/записью в кластер
Проблемы с производительностью
Изменение кластера
Мониторинг и логи
Миграция/перенос
Настройки параметров 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®, а для каких — виртуальные машины с базами данных?
Yandex Cloud предлагает два варианта работы с базами данных:
- Managed Service for MySQL® позволяет вам эксплуатировать шаблонные базы данных, не заботясь об администрировании.
- Виртуальные машины Yandex Compute Cloud позволяют вам создавать и настраивать собственные базы данных. Такой подход позволяет использовать любые СУБД, подключаться к базам данных по SSH и так далее.
Что такое хост базы данных и кластер базы данных?
Хост БД — это изолированная среда базы данных в облачной инфраструктуре с выделенными вычислительными ресурсами и зарезервированным объемом хранилища данных.
Кластер БД — это один или более хостов БД, между которыми можно настроить репликацию.
Как начать работу с Managed Service for MySQL®?
Managed Service for MySQL® доступен всем зарегистрированным пользователям Yandex Cloud.
Чтобы создать кластер базы данных в Managed Service for MySQL®, необходимо определиться с его характеристиками:
- Класс хостов (характеристики производительности — процессоры, память и т. п.).
- Объем хранилища (резервируется в полном объеме при создании кластера).
- Сеть, к которой будет подключен ваш кластер.
- Количество хостов для кластера и зона доступности для каждого хоста вы можете выбрать зону доступности.
Подробные инструкции см. в разделе Начало работы.
Сколько хостов БД может содержать кластер?
Минимальное количество хостов зависит от типа используемого хранилища:
- при использовании хранилища на нереплицируемых SSD-дисках (
ssd-network-nonreplicated
) или на локальных SSD-дисках (local-ssd
) — не менее 3; - при использовании хранилища на сетевых SSD-дисках (
network-ssd
) или на сетевых HDD-дисках (network-hdd
) допускается создание кластера из одного хоста.
Максимальное количество хостов в кластере ограничено только запрошенными вычислительными ресурсами и объемом хранилища для кластера.
Подробнее см. в разделе Квоты и лимиты.
Как получить доступ к запущенному хосту базы данных?
Вы можете подключаться к базам данных Managed Service for MySQL® способами, стандартными для СУБД.
Подробнее о подключении к кластерам.
Сколько кластеров можно создать в рамках одного облака?
Технические и организационные ограничения MDB приведены в разделе Квоты и лимиты.
Как происходит обслуживание кластеров БД?
Под обслуживанием в Managed Service for MySQL® понимается:
- автоматическая установка обновлений и исправлений СУБД для хостов БД (в т. ч. для выключенных кластеров);
- изменение класса хостов и объема хранилища;
- другие сервисные работы Managed Service for MySQL®.
Подробнее см. в разделе Техническое обслуживание.
Какую версию MySQL® использует Managed Service for MySQL®?
Managed Service for MySQL® поддерживает MySQL® 5.7 и MySQL® 8.
Что происходит, когда выпускается новая версия СУБД?
Программное обеспечение баз данных обновляется при выходе новых минорных версий. Владельцы затронутых кластеров БД получают предварительное оповещение о сроках проведения работ и доступности баз данных.
Что происходит, когда версия СУБД становится неподдерживаемой (deprecated)?
Через месяц после того, как версия СУБД становится неподдерживаемой, Managed Service for MySQL® автоматически оповещает владельцев кластеров БД, созданных с этой версией, по электронной почте.
Создание новых хостов с СУБД неподдерживаемых версий становится невозможным. Через 7 дней после оповещения для минорных версий и через 1 месяц для мажорных версий проводится автоматическое обновление кластеров БД до следующей поддерживаемой версии. Обновление неподдерживаемых мажорных версий происходит даже если у вас отключено автоматическое обновление.
Как рассчитывается стоимость потребления для хоста базы данных?
В Managed Service for MySQL® стоимость потребления рассчитывается исходя из следующих параметров:
- Выбранный класс хостов.
- Объем хранилища, зарезервированного для хоста БД.
- Объем резервных копий кластера БД. Объем резервных копий, равный объему хранилища, не тарифицируется. Хранение резервных копий сверх этого объема оплачивается по тарифам.
- Количество часов работы хоста БД. Неполные часы округляются до целого значения. Стоимость часа работы для каждого класса хостов приведена в разделе Правила тарификации.
Как изменить вычислительные ресурсы и объем хранилища для кластера БД?
Вы можете изменять вычислительные ресурсы и объем хранилища в консоли управления — просто выберите другой класс хостов для нужного кластера.
Характеристики кластера изменяются в течение 30 минут. В этот период также могут быть включены другие сервисные работы по кластеру, например, установка обновлений.
Включено ли резервное копирование хостов БД по умолчанию?
Да, по умолчанию резервное копирование включено. Для MySQL® выполняется полное резервное копирование один раз в сутки, и сохраняются все журналы транзакций кластера БД. Это позволяет восстановить состояние кластера на любой момент времени в пределах периода хранения резервных копий, за исключением последних 30 секунд.
По умолчанию резервные копии хранятся 7 дней.
Когда выполняется резервное копирование? Доступен ли кластер БД во время резервного копирования?
Окно резервного копирования — это интервал времени, в течение которого выполняется ежедневное полное резервное копирование кластера БД. Окно резервного копирования — 01:00−05:00 по московскому времени.
Во время окна резервного копирования кластеры остаются полностью доступными.
Можно ли изменить срок хранения автоматических резервных копий?
При создании или изменении кластера можно задать срок хранения автоматических резервных копий.
За какими метриками и процессами можно следить с помощью мониторинга?
Для всех типов СУБД можно отслеживать:
- загрузку процессора, памяти, сети, дисков в абсолютных величинах;
- загрузку памяти, сети, дисков в процентах от установленных лимитов для класса хостов соответствующего кластера;
- объем данных кластера БД и остаток свободного места в хранилище данных.
Для всех хостов БД можно отслеживать метрики, специфические для типа соответствующей СУБД. Например для MySQL® можно отслеживать:
- среднее время выполнения запроса;
- количество запросов в секунду;
- количество ошибок в журналах и т. д.
Мониторинг можно осуществлять с минимальной гранулярностью в 5 секунд.
О персональных данных
?
Соответствует ли сервис требованиям Федерального закона Российской Федерации № 152-ФЗ Да, вы можете ознакомиться с полным заключением
Я могу получить логи моей работы в сервисах?
Да, вы можете запросить записи о том, что происходило с вашими ресурсами, из логов сервисов Yandex Cloud. Подробнее читайте в разделе Запросы данных.
Вопросы о MySQL®
Какие версии MySQL® поддерживает Managed Service for MySQL®?
Managed Service for MySQL® поддерживает MySQL® 5.7 и MySQL® 8.
Включено ли резервное копирование кластеров БД по умолчанию?
Да, по умолчанию резервное копирование включено. Для кластеров MySQL® выполняется полное резервное копирование один раз в сутки, и сохраняются все журналы транзакций кластера БД. Это позволяет восстановить состояние кластера на любой момент времени в пределах периода хранения резервных копий, за исключением последних 30 секунд.
Шифруется ли соединение с кластером БД MySQL®?
Соединение между кластером БД и приложением всегда шифруется с использованием SSL. Отключить шифрование соединений с кластером нельзя.
Что такое реплика для чтения в MySQL®?
Реплика для чтения — это доступный только для чтения хост в кластере БД MySQL®, данные на котором синхронизируются с хостом-мастером (если в кластере работает более 1 хоста). Вы можете использовать реплику для чтения для снижения нагрузки на мастер в базах данных с большим объемом запросов на чтение.
Какие ограничения накладываются на кластеры БД 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 |
93 | 28000/5600 | 110/82 |
Чтобы увеличить максимальные значения IOPS и bandwidth и снизить вероятность троттлинга, расширьте размер хранилища при изменении кластера.
Если вы используете хранилище с типом диска network-hdd
, рассмотрите возможность перехода на network-ssd
или network-ssd-nonreplicated
путем восстановления кластера из резервной копии.
Подключение
Как подключиться к кластеру?
Посмотрите примеры подключения в документации или на странице кластера в консоли управления
MySQL®-хосты с публичным доступом поддерживают только соединения с SSL-сертификатом.
Существуют также Особые FQDN, указывающие на Текущий мастер и Наименее отстающую реплику кластера.
Почему не получается подключиться из интернета?
Проверьте, имеет ли хост публичный доступ. Для этого в консоли управления
- Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
- Нажмите на имя нужного кластера, затем выберите вкладку Хосты.
- Посмотрите значение в столбце Публичный доступ у нужного хоста.
MySQL®-хосты с публичным доступом поддерживают только соединения с SSL-сертификатом.
Дополнительно:
- Если публичный доступ в вашем кластере настроен только для некоторых хостов, автоматическая смена мастера может привести к тому, что вы не сможете подключиться к мастеру из интернета.
- Если вы используете Особые FQDN, проверьте в списке хостов, что текущий мастер или реплика имеют публичный доступ.
- Если вы используете Группы безопасности, проверьте их настройки.
Почему не получается подключиться из Yandex Cloud?
Проверьте, что вы подключаетесь с виртуальной машины Yandex Cloud, расположенной в той же виртуальной сети, что и кластер MySQL®.
Для этого в консоли управления:
- Перейдите на страницу каталога, выберите сервис Managed Service for MySQL и нажмите на имя нужного кластера.
- Проверьте значение параметра Облачная сеть и перейдите по ссылке названия сети, чтобы посмотреть ее подсети.
- Убедитесь, что виртуальная машина расположена в одной из подсетей той же сети.
Дополнительно:
- Если вы подключаетесь к хосту с публичным доступом, то соединение возможно только с SSL-сертификатом.
- Если вы используете Особые FQDN, проверьте в списке хостов, что текущий мастер или реплика имеют публичный доступ.
- Если вы используете Группы безопасности, проверьте их настройки.
Почему не получается подключиться к многохостовому кластеру?
Если публичный доступ в вашем кластере настроен только для некоторых хостов, автоматическая смена мастера может привести к тому, что вы не сможете подключиться к мастеру из интернета.
Проверьте, имеет ли хост публичный доступ. Для этого в консоли управления
- Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
- Нажмите на имя нужного кластера, затем выберите вкладку Хосты.
- Посмотрите значение в столбце Публичный доступ у нужного хоста.
Дополнительно:
-
Если вы используете Особые FQDN, проверьте в списке хостов, что текущий мастер или реплика имеют публичный доступ.
-
Если после добавления хоста к нему невозможно подключиться, убедитесь, что группа безопасности кластера настроена корректно для подсети, в которую помещен хост.
Можно ли подключиться к хостам кластера по SSH или получить на хостах права суперпользователя?
Подключиться к хостам через SSH не получится. Это сделано в целях безопасности и отказоустойчивости пользовательских кластеров, так как прямые изменения внутри хоста могут привести к его полной неработоспособности.
Что делать, если при получении 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 в настройках кластера.
Проблемы с чтением/записью в кластер
Почему не работает запись в кластер?
- Если хранилище баз данных заполнится на 95%, кластер перейдет в режим Только чтение. Проверьте свободное место в хранилище и при необходимости увеличьте его размер. Чтобы проверить свободное место:
- Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
- Нажмите на имя нужного кластера и перейдите на вкладку Мониторинг.
- Проверьте график Disk usage.
- Убедитесь, что запись производится в хост, который является мастером, а не репликой.
Почему отстает реплика?
- Проверьте, установлено ли параметру
slave_rows_search_algorithms
значениеINDEX_SCAN,HASH_SCAN
. - Вместо выполнения операции
ALTER TABLE
над объемными таблицами рекомендуется использовать утилитуpt-online-schema-change
из пакета Percona Toolkit — это обеспечит отсутствие блокировок. - Если отставание сохраняется, включите параллельную репликацию. Для этого настройте параметры:
slave_parallel_type=LOGICAL_CLOCK slave_parallel_workers=8
- Выполните на реплике команду
SHOW SLAVE STATUS;
. Если значение параметраExecuted_Gtid_Set
долго не меняется, убедитесь, что во всех таблицах присутствуют индексы. - Если данные пишутся в БД непрерывно и при этом объем оперативной памяти на хосте 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
Что делать при возникновении любой ошибки приложения?
- Проверьте, есть ли свободное место на диске, где располагается кластер:
- Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
- Нажмите на имя нужного кластера и перейдите на вкладку Мониторинг.
- Проверьте график Disk usage.
- Проверьте графики мониторинга хостов:
- Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
- Нажмите на имя нужного кластера, затем выберите вкладку Хосты.
- Перейдите на страницу Мониторинги.
- Найдите проблемный ресурс: график будет приближаться к границе или выйдет за нее.
- Выберите другие хосты из выпадающего списка и проверьте их тоже.
- Проверьте наличие свободных ресурсов на виртуальной машине или сервере, где запущено приложение, подключаемое к БД.
Проблемы с производительностью
Как выяснить причину снижения производительности в пиках нагрузки?
Просмотрите лог медленных запросов:
- В настройках кластера MySQL® установите значение Long query time больше нуля.
- В консоли управления
на странице кластера выберите вкладку Логи. - В левом верхнем углу выберите из выпадающего списка
MYSQL_SLOW_QUERY
.
Как выяснить причину общего снижения производительности?
Проверьте графики мониторинга хостов:
- Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
- Нажмите на имя нужного кластера, затем выберите вкладку Хосты.
- Перейдите на страницу Мониторинги:
- Рекомендуется увеличить класс хостов:
- При стабильно высоком значении
Steal
графика CPU usage. - При стабильно низком значении
Free
графика Memory usage.
- При стабильно высоком значении
- При высоком значении
iowait
графика CPU usage возможно превышение лимитов IOPS дискового хранилища. Рекомендуется увеличить значение как минимум до следующего порога блока размещения или использовать более быстрые диски. Подробнее о лимитах и производительности дисков см. в документации Yandex Compute Cloud.
- Рекомендуется увеличить класс хостов:
Почему отстает реплика?
- Проверьте, установлено ли параметру
slave_rows_search_algorithms
значениеINDEX_SCAN,HASH_SCAN
. - Вместо выполнения операции
ALTER TABLE
над объемными таблицами рекомендуется использовать утилитуpt-online-schema-change
из пакета Percona Toolkit — это обеспечит отсутствие блокировок. - Если отставание сохраняется, включите параллельную репликацию. Для этого настройте параметры:
slave_parallel_type=LOGICAL_CLOCK slave_parallel_workers=8
- Выполните на реплике команду
SHOW SLAVE STATUS;
. Если значение параметраExecuted_Gtid_Set
долго не меняется, убедитесь, что во всех таблицах присутствуют индексы. - Если данные пишутся в БД непрерывно и при этом объем оперативной памяти на хосте 8 ГБ или больше, рекомендуется увеличить значение параметра
innodb_log_file_size
до 1-2 ГБ (изменение параметра происходит с рестартом сервера).
Как выяснить причину долгой загрузки ресурсов?
Проверьте графики мониторинга хостов:
- Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
- Нажмите на имя нужного кластера, затем выберите вкладку Хосты.
- Перейдите на страницу Мониторинги.
- Найдите проблемный ресурс: график будет приближаться к границе или выйдет за нее.
- Выберите другие хосты из выпадающего списка и проверьте их тоже.
Если по графикам ресурсы кластера не перегружены, воспользуйтесь рекомендациями из разделов Причины блокировок и Оптимизация запросов.
Как выяснить причину утилизации ресурса CPU?
Информацию о потреблении ресурса CPU можно получить с помощью системных представлений. Для доступа к ним потребуется административная привилегия PROCESS
уровня кластера.
-
Выдайте пользователю привилегию
PROCESS
, выполнив команду CLI:yc managed-mysql user update \ --global-permissions PROCESS <имя_пользователя> \ --cluster-id <идентификатор_кластера>
-
Получите список запросов в базу с наибольшим временем выполнения с помощью запроса:
SELECT * FROM sys.statement_analysis LIMIT 10;
Обратите внимание на запросы с высокими значениями rows_examined
, rows_sorted
или флагом full_scan
— с большой вероятностью именно они потребляют ресурсы CPU. Подробнее см. в документации MySQL®
Как выяснить причину утилизации ресурса IO?
Приблизительную информацию о потреблении ресурса IO потоками в MySQL® можно получить с помощью системных представлений. Для доступа к ним потребуется административная привилегия PROCESS
уровня кластера.
-
Выдайте пользователю привилегию
PROCESS
, выполнив команду CLI:yc managed-mysql user update \ --global-permissions PROCESS <имя_пользователя> \ --cluster-id <идентификатор_кластера>
-
Получите список потоков с помощью запроса:
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
уровня кластера.
-
Выдайте пользователю привилегию
PROCESS
, выполнив команду CLI:yc managed-mysql user update \ --global-permissions PROCESS <имя_пользователя> \ --cluster-id <идентификатор_кластера>
-
Получите список потоков с помощью запроса:
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
уровня кластера.
-
Выдайте пользователю привилегию
PROCESS
, выполнив команду CLI:yc managed-mysql user update \ --global-permissions PROCESS <имя_пользователя> \ --cluster-id <идентификатор_кластера>
-
Для просмотра блокировок уровня таблиц выполните запрос:
SELECT * FROM sys.schema_table_lock_waits
-
Для просмотра блокировок уровня отдельных строк выполните запрос:
SELECT * FROM sys.innodb_lock_waits
Подробнее см. в документации MySQL®
Как оптимизировать проблемные запросы?
Обратитесь к официальной документации MySQL®:
Изменение кластера
Можно ли управлять кластером с помощью команд SQL?
Существуют ограничения на управление кластером с помощью команд SQL. Подробнее см. в разделе Ограничения для команд SQL.
Как уменьшить размер диска?
Уменьшить размер хранилища кластера невозможно.
Вы можете создать новый кластер с хранилищем меньшего размера и перенести в него данные.
Как увеличить размера диска?
Увеличение размера недоступно для хранилища на нереплицируемых SSD-дисках: воспользуйтесь инструкцией в разделе Изменение кластера.
Чтобы увеличить размер хранилища на нереплицируемых SSD-дисках, восстановите кластер из резервной копии и задайте нужный размер.
Тип диска можно проверить в консоли управления
Как изменить тип диска?
Чтобы изменить тип диска, восстановите кластер из резервной копии.
Почему не добавляется/не удаляется хост?
Количество хостов в кластерах ограничено квотами. Перед добавлением хоста проверьте используемые ресурсы: откройте страницу Квоты
Удалить хост можно при условии, что он не является единственным хостом в кластере. Чтобы заменить единственный хост, сначала создайте новый хост, затем удалите старый.
В кластерах с локальным типом диска настроена отказоустойчивая конфигурация из 3 хостов. Меньшее количество хостов недопустимо.
Как переключить мастер (manual failover)?
В отказоустойчивом кластере из нескольких хостов вы можете переключить роль мастера с текущего хоста-мастера на хост-реплику. После этой операции текущий хост-мастер станет хостом-репликой для нового мастера.
- Перейдите на страницу кластера и выберите вкладку Хосты.
- Нажмите Переключить мастер.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы переключить мастер:
-
Посмотрите описание команды CLI для переключения мастера:
yc managed-mysql cluster start-failover --help
-
Выполните команду
yc managed-mysql cluster start-failover
.
Как перезагрузить хост?
Перезагрузить отдельный хост кластера невозможно. Для перезагрузки хостов остановите и запустите кластер.
Мониторинг и логи
Как посмотреть графики кластера и хостов?
В консоли управления
Чтобы посмотреть графики в сервисе Yandex Monitoringservice
значение Managed Service for MySQL.
Как посмотреть логи?
- Перейдите на страницу кластера и выберите вкладку Логи.
- В верхней части страницы выберите один из доступных логов:
MYSQL_ERROR
— основной лог MySQL®, содержит сообщения об ошибках. Включен всегда.MYSQL_SLOW_QUERY
— информация о медленных запросах. Включен, если параметрlong_query_time
больше0
.MYSQL_AUDIT
— информация о подключениях к базе данных.MYSQL_GENERAL
— полный список всех запросов. Рекомендуется включать только для отладки кластеров в среде разработки.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для просмотра логов:
yc managed-mysql cluster list-logs --help
-
Выполните команду
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®
Как задать часовой пояс (time zone)?
Часовой пояс задается в виде смещения от UTC. Например, для Москвы: '+03:00'
. Названия часовых поясов не поддерживаются.
Подробнее см. в документации MySQL®
Как установить режим SQL (sql_mode)?
Воспользуйтесь инструкцией в разделе Управление базами данных.
Какое значение установить для innodb_buffer_pool_size?
Рекомендуемые границы для параметра:
- Минимум — 25% от объема RAM на хосте.
- Максимум — 75% от объема RAM на хосте при условии, что остается не менее 1–1,6 ГБ свободной памяти для выполнения запросов, мониторинга и системных процессов.
Как отключить строгий режим 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)?
Воспользуйтесь инструкцией в разделе Управление базами данных.
Как настроить другие параметры?
Настройки MySQL®, доступные для изменения, перечислены в документации. Изменить их значения можно в одном из доступных интерфейсов: консоль управления, CLI, API или Terraform. Для этого воспользуйтесь инструкцией в разделе Изменение кластера.