Изменение настроек кластера MySQL®
После создания кластера вы можете:
-
Важно
Вы не можете менять настройки MySQL® с помощью команд SQL.
-
Переместить кластер в другой каталог.
Подробнее о других изменениях кластера:
Изменить класс хостов
Выбор класса хостов в кластерах Managed Service for MySQL® ограничен квотами на количество CPU и объем памяти, которые доступны кластерам БД в вашем облаке. Чтобы проверить используемые ресурсы, откройте страницу Квоты
Примечание
Некоторые настройки MySQL® зависят от выбранного класса хостов.
При смене класса хостов:
- Кластер из одного хоста будет недоступен несколько минут, соединения с БД будут прерваны.
- В кластере из нескольких хостов сменится мастер. Каждый хост по очереди будет остановлен и обновлен, остановленный хост будет недоступен несколько минут.
- Подключение по особому FQDN не гарантирует стабильность соединения с БД: пользовательские сессии могут быть прерваны.
Рекомендуется изменять класс хостов только во время отсутствия рабочей нагрузки на кластер.
- Перейдите на страницу каталога
и выберите сервис Managed Service for MySQL. - Выберите кластер и нажмите кнопку Редактировать на панели сверху.
- Чтобы изменить класс хостов MySQL®, в блоке Класс хоста выберите нужный класс.
- Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить класс хостов для кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-mysql cluster update --help -
Запросите список доступных классов хостов (в колонке
ZONE IDSуказаны зоны доступности, в которых можно выбрать соответствующий класс):yc managed-mysql resource-preset listРезультат:
+-----------+--------------------------------+-------+----------+ | ID | ZONE IDS | CORES | MEMORY | +-----------+--------------------------------+-------+----------+ | s1.micro | ru-central1-a, ru-central1-b, | 2 | 8.0 GB | | | ru-central1-d | | | | ... | +-----------+--------------------------------+-------+----------+ -
Укажите нужный класс в команде изменения кластера:
yc managed-mysql cluster update <имя_или_идентификатор_кластера> --resource-preset <идентификатор_класса>Managed Service for MySQL® запустит операцию изменения класса хостов для кластера.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Managed Service for MySQL® значение параметра
resource_preset_idв блокеresources:resource "yandex_mdb_mysql_cluster" "<имя_кластера>" { ... resources { resource_preset_id = "<класс_хоста>" ... } } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for MySQL®:
- создание кластера, в том числе путем восстановления из резервной копии, — 15 минут;
- изменение кластера, в том числе обновление версии MySQL®, — 60 минут;
- удаление кластера — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts, например:
resource "yandex_mdb_mysql_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.update и выполните запрос, например с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mysql/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.resources.resourcePresetId", "configSpec": { "resources": { "resourcePresetId": "<класс_хостов>" } } }'Где:
-
updateMask— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
configSpec.resources.resourcePresetId— новый класс хостов.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask(в виде массива строкpaths[]).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.resources.resource_preset_id" ] }, "config_spec": { "resources": { "resource_preset_id": "<класс_хостов>" } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mysql.v1.ClusterService.UpdateГде:
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].В данном случае передается только один параметр.
-
config_spec.resources.resource_preset_id— новый класс хостов.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить тип диска и увеличить размер хранилища
Проверьте, что в облаке достаточно квот для увеличения хранилища. Откройте страницу Квоты
Чтобы изменить тип диска и увеличить размер хранилища для кластера:
-
Перейдите на страницу каталога
и выберите сервис Managed Service for MySQL. -
Выберите кластер и нажмите кнопку Редактировать на панели сверху.
-
В блоке Размер хранилища:
- Выберите тип диска.
- Укажите нужный размер диска.
-
Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить тип диска и увеличить размер хранилища для кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-mysql cluster update --help -
Укажите тип диска и нужный размер хранилища в команде изменения кластера (размер хранилища должен быть не меньше, чем значение
disk_sizeв свойствах кластера):yc managed-mysql cluster update <имя_или_идентификатор_кластера> \ --disk-type <тип_диска> \ --disk-size <размер_хранилища_ГБ>
Чтобы изменить тип диска и увеличить размер хранилища для кластера:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените значения параметров
disk_type_idиdisk_sizeв блокеresources:resource "yandex_mdb_mysql_cluster" "<имя_кластера>" { ... resources { disk_type_id = "<тип_диска>" disk_size = <размер_хранилища_ГБ> ... } } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for MySQL®:
- создание кластера, в том числе путем восстановления из резервной копии, — 15 минут;
- изменение кластера, в том числе обновление версии MySQL®, — 60 минут;
- удаление кластера — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts, например:
resource "yandex_mdb_mysql_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.update и выполните запрос, например с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mysql/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.resources.diskTypeId,configSpec.resources.diskSize", "configSpec": { "resources": { "diskTypeId": "<тип_диска>", "diskSize": "<размер_хранилища_в_байтах>" } } }'Где:
-
updateMask— перечень изменяемых параметров в одну строку через запятую. -
configSpec.resources— параметры хранилища:diskTypeId— тип диска.diskSize— новый размер хранилища в байтах.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask(в виде массива строкpaths[]).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.resources.disk_type_id", "config_spec.resources.disk_size" ] }, "config_spec": { "resources": { "disk_type_id": "<тип_диска>", "disk_size": "<размер_хранилища_в_байтах>" } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mysql.v1.ClusterService.UpdateГде:
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[]. -
config_spec.resources— параметры хранилища:disk_type_id— тип диска.disk_size— новый размер хранилища в байтах.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить настройки MySQL®
Примечание
Некоторые настройки MySQL® зависят от выбранного класса хостов.
- Перейдите на страницу каталога
и выберите сервис Managed Service for MySQL. - Выберите кластер и нажмите кнопку Редактировать на панели сверху.
- Измените настройки MySQL®, нажав на кнопку Настроить в блоке Настройки СУБД.
- Нажмите кнопку Сохранить.
- Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить настройки MySQL®:
-
Посмотрите описание команды CLI для изменения конфигурации кластера:
yc managed-mysql cluster update-config --help -
Установите нужные значения параметров.
Все поддерживаемые параметры перечислены в формате запроса для метода update, в поле
mysql_config_5_7. Чтобы указать имя параметра в вызове CLI, преобразуйте его имя из видаlowerCamelCase
вsnake_case
, например, параметрlogMinDurationStatementиз запроса к API преобразуется вlog_min_duration_statementдля команды CLI:yc managed-mysql cluster update-config <имя_кластера> --set log_min_duration_statement=100,<имя_параметра>=<значение>,...Managed Service for MySQL® запустит операцию по изменению настроек кластера.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Добавьте или измените в описании кластера Managed Service for MySQL® параметры настроек СУБД в блоке
mysql_config:resource "yandex_mdb_mysql_cluster" "<имя_кластера>" { ... mysql_config = { <имя_настройки_MySQL®> = <значение> ... } } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for MySQL®:
- создание кластера, в том числе путем восстановления из резервной копии, — 15 минут;
- изменение кластера, в том числе обновление версии MySQL®, — 60 минут;
- удаление кластера — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts, например:
resource "yandex_mdb_mysql_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.update и выполните запрос, например с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mysql/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.mysqlConfig_<версия_MySQL®>", "configSpec": { "mysqlConfig_<версия_MySQL®>": { "<настройка_1>": "<значение_1>", "<настройка_2>": "<значение_2>", ... "<настройка_N>": "<значение_N>" } } }'Где:
-
updateMask— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
configSpec.mysqlConfig_<версия_MySQL®>— набор настроек MySQL®. Укажите каждую настройку на отдельной строке через запятую.Список версий MySQL®, доступных для параметра, см. в описании метода. Описание и возможные значения настроек см. в разделе Настройки СУБД уровня кластера.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask(в виде массива строкpaths[]).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.mysql_config_<версия_MySQL®>" ] }, "config_spec": { "mysql_config_<версия_MySQL®>": { "<настройка_1>": "<значение_1>", "<настройка_2>": "<значение_2>", ... "<настройка_N>": "<значение_N>" } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mysql.v1.ClusterService.UpdateГде:
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].В данном случае передается только один параметр.
-
configSpec.mysqlConfig_<версия_MySQL®>— набор настроек MySQL®. Укажите каждую настройку на отдельной строке через запятую.Список версий MySQL®, доступных для параметра, см. в описании метода. Описание и возможные значения настроек см. в разделе Настройки СУБД уровня кластера.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Подробнее об изменении настроек MySQL® см. в разделе Вопросы и ответы.
Изменить дополнительные настройки кластера
-
Перейдите на страницу каталога
и выберите сервис Managed Service for MySQL. -
Выберите кластер и нажмите кнопку Редактировать на панели сверху.
-
Измените дополнительные настройки кластера:
-
Автоматическое увеличение размера хранилища
-
Выберите опцию В окно обслуживания при заполненности более и укажите процент от текущего размера хранилища, при достижении которого хранилище будет увеличено в следующее окно обслуживания.
-
Выберите опцию Незамедлительно при заполненности более и укажите процент от текущего размера хранилища, при достижении которого хранилище будет увеличено незамедлительно.
-
В поле Максимальный размер хранилища укажите максимальный размер хранилища, который может быть достигнут при автоматическом увеличении.
Важно
- Автоматическое увеличение размера хранилища не поддерживается на выделенных хостах.
- Если выбрано увеличение размера хранилища в окно обслуживания, настройте расписание окна обслуживания.
-
-
Начало резервного копирования (UTC) — промежуток времени, в течение которого начинается резервное копирование кластера. Время указывается по UTC в 24-часовом формате. По умолчанию —
22:00 - 23:00UTC. -
Срок хранения автоматических резервных копий, дней
Автоматические резервные копии будут храниться указанное количество дней.
-
Окно обслуживания — настройки времени технического обслуживания:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по UTC. Например, можно выбрать время, когда кластер наименее загружен.
Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать в себя: обновление СУБД, применение патчей и так далее.
-
Доступ из DataLens — разрешает анализировать данные из кластера в сервисе Yandex DataLens.
Подробнее о настройке подключения см. в разделе Подключение к DataLens.
-
Доступ из WebSQL — разрешает выполнять SQL-запросы к базам данных кластера из консоли управления Yandex Cloud с помощью сервиса Yandex WebSQL.
-
Доступ из Yandex Query — разрешает выполнять YQL-запросы к базам данных кластера из сервиса Yandex Query. Функциональность находится на стадии Preview. Значение по умолчанию —
false. -
Сбор статистики — включите эту опцию, чтобы воспользоваться инструментом Диагностика производительности в кластере.
-
Защита от удаления — управляет защитой кластера от непреднамеренного удаления.
Включенная защита кластера от удаления не помешает удалить пользователя или базу данных, а также подключиться вручную и удалить содержимое базы данных.
-
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить дополнительные настройки кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-mysql cluster update --help -
Выполните команду, передав список настроек, которые хотите изменить:
yc managed-mysql cluster update <имя_или_идентификатор_кластера> \ --backup-window-start <время_начала_резервного_копирования> \ --backup-retain-period-days=<срок_хранения_копий> \ --datalens-access=<true_или_false> \ --websql-access=<true_или_false> \ --yandexquery-access=<true_или_false> \ --disk-size-autoscaling disk-size-limit=<максимальный_размер_хранилища_в_ГБ>,` `planned-usage-threshold=<порог_для_планового_увеличения_в_процентах>,` `emergency-usage-threshold=<порог_для_незамедлительного_увеличения_в_процентах> \ --maintenance-window type=<тип_технического_обслуживания>,` `day=<день_недели>,` `hour=<час_дня> \ --deletion-protection \ --performance-diagnostics enabled=true,` `sessions-sampling-interval=<интервал_сбора_сессий>,` `statements-sampling-interval=<интервал_сбора_запросов>
Вы можете изменить следующие настройки:
--backup-window-start— время начала резервного копирования кластера, задается по UTC в форматеHH:MM:SS. Если время не задано, резервное копирование начнется в 22:00 UTC.
-
--backup-retain-period-days— срок хранения автоматических резервных копий (в днях). Допустимые значения: от7до60. Значение по умолчанию —7. -
--datalens-access— разрешает доступ к кластеру из DataLens. Значение по умолчанию —false. Подробнее о настройке подключения см в разделе Подключение к кластеру MySQL® из DataLens. -
--websql-access— разрешает выполнять SQL-запросы к базам данных кластера из консоли управления Yandex Cloud с помощью сервиса Yandex WebSQL. Значение по умолчанию —false. -
--yandexquery-access— разрешает выполнять YQL-запросы к базам данных кластера из сервиса Yandex Query. Функциональность находится на стадии Preview. Значение по умолчанию —false.
-
--disk-size-autoscaling— настройки автоматического увеличения размера хранилища:-
planned-usage-threshold(опционально) — порог заполнения хранилища в процентах, при достижении которого оно будет увеличено в следующее окно обслуживания. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
emergency-usage-threshold(опционально) — порог заполнения хранилища в процентах, при достижении которого оно будет увеличено незамедлительно. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
disk-size-limit— максимальный размер хранилища после увеличения, в гигабайтах.
Важно
- Автоматическое увеличение размера хранилища не поддерживается на выделенных хостах.
-
При использовании параметра
planned-usage-thresholdнеобходимо задать окно технического обслуживания в настройке--maintenance-window. -
Если заданы оба порога, значение
emergency-usage-thresholdдолжно быть большеplanned-usage-threshold.
-
-
--maintenance-window— настройки времени технического обслуживания (в т. ч. для выключенных кластеров), гдеtype— тип технического обслуживания:anytime(по умолчанию) — в любое время.weekly— по расписанию. Для этого значения дополнительно укажите:day— день недели:MON,TUE,WED,THU,FRI,SATилиSUN.hour— час дня по UTC: от1до24.
-
--deletion-protection— защита кластера от непреднамеренного удаления:trueилиfalse.Включенная защита кластера от удаления не помешает удалить пользователя или базу данных, а также подключиться вручную и удалить содержимое базы данных.
-
performance-diagnostics— активация сбора статистики для диагностики производительности кластера. Допустимые значения параметровsessions-sampling-intervalиstatements-sampling-interval— от1до86400секунд.
Имя кластера можно получить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Чтобы изменить время начала резервного копирования, добавьте к описанию кластера Managed Service for MySQL® блок
backup_window_start:resource "yandex_mdb_mysql_cluster" "<имя_кластера>" { ... backup_window_start { hours = <час> minutes = <минута> } ... }Где:
hours— час начала резервного копирования.minutes— минута начала резервного копирования.
-
Чтобы изменить срок хранения резервных копий, укажите в описании кластера параметр
backup_retain_period_days:resource "yandex_mdb_mysql_cluster" "<имя_кластера>" { ... backup_retain_period_days = <срок_хранения_копий> ... }Где
backup_retain_period_days— срок хранения автоматических резервных копий в днях. Допустимые значения: от7до60. Значение по умолчанию —7. -
Чтобы разрешить доступ из DataLens и выполнение SQL-запросов из консоли управления с помощью Yandex WebSQL, добавьте к описанию кластера блок
access:resource "yandex_mdb_mysql_cluster" "<имя_кластера>" { ... access { data_lens = <true_или_false> web_sql = <true_или_false> } ... } -
Чтобы настроить автоматическое увеличение размера хранилища, добавьте к описанию кластера блок
disk_size_autoscaling:resource "yandex_mdb_mysql_cluster" "<имя_кластера>" { ... disk_size_autoscaling { disk_size_limit = <максимальный_размер_хранилища_в_ГиБ> emergency_usage_threshold = <порог_для_незамедлительного_увеличения_в_процентах> planned_usage_threshold = <порог_для_планового_увеличения_в_процентах> } ... }Где:
-
disk_size_limit— максимальный размер хранилища после увеличения, в гибибайтах. -
emergency_usage_threshold(опционально) — порог заполнения хранилища в процентах, при достижении которого оно будет увеличено незамедлительно. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
planned_usage_threshold(опционально) — порог заполнения хранилища в процентах, при достижении которого оно будет увеличено в следующее окно обслуживания. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100.
Важно
- Автоматическое увеличение размера хранилища не поддерживается на выделенных хостах.
-
При использовании параметра
planned_usage_thresholdнеобходимо задать окно технического обслуживания в блокеmaintenance_window. -
Если заданы оба порога, значение
emergency_usage_thresholdдолжно быть большеplanned_usage_threshold.
-
-
Чтобы настроить время технического обслуживания (в т. ч. для выключенных кластеров), добавьте к описанию кластера блок
maintenance_window:resource "yandex_mdb_mysql_cluster" "<имя_кластера>" { ... maintenance_window { type = <тип_технического_обслуживания> day = <день_недели> hour = <час_дня> } ... }Где:
type— тип технического обслуживания. Принимает значения:ANYTIME— в любое время.WEEKLY— по расписанию.
day— день недели для типаWEEKLY:MON,TUE,WED,THU,FRI,SATилиSUN.hour— час дня по UTC для типаWEEKLY: от1до24.
-
Чтобы включить защиту кластера от непреднамеренного удаления пользователем вашего облака, добавьте к описанию кластера поле
deletion_protectionсо значениемtrue:resource "yandex_mdb_mysql_cluster" "<имя_кластера>" { ... deletion_protection = <защитить_кластер_от_удаления> }Где
deletion_protection— защита кластера от непреднамеренного удаления:trueилиfalse.Включенная защита кластера от удаления не помешает удалить пользователя или базу данных, а также подключиться вручную и удалить содержимое базы данных.
-
Чтобы активировать сбор статистики для диагностики производительности кластера, добавьте к описанию кластера Managed Service for MySQL® блок
performance_diagnostics:resource "yandex_mdb_mysql_cluster" "<название_кластера>" { ... performance_diagnostics { enabled = true sessions_sampling_interval = <интервал_сбора_сессий> statements_sampling_interval = <интервал_сбора_запросов> } ... }Допустимые значения параметров
sessions_sampling_intervalиstatements_sampling_interval— от1до86400секунд. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for MySQL®:
- создание кластера, в том числе путем восстановления из резервной копии, — 15 минут;
- изменение кластера, в том числе обновление версии MySQL®, — 60 минут;
- удаление кластера — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts, например:
resource "yandex_mdb_mysql_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Создайте файл
body.jsonи добавьте в него следующее содержимое:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую).{ "updateMask": "configSpec.backupWindowStart,configSpec.backupRetainPeriodDays,configSpec.access,configSpec.performanceDiagnostics,maintenanceWindow,deletionProtection", "configSpec": { "backupWindowStart": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" }, "backupRetainPeriodDays": "<количество_дней>", "access": { "dataLens": <разрешить_доступ_из_DataLens>, "webSql": <разрешить_доступ_из_WebSQL>, "yandexQuery": <разрешить_доступ_из_Yandex_Query> }, "performanceDiagnostics": { "enabled": <активировать_сбор_статистики>, "sessionsSamplingInterval": "<интервал_сбора_сессий>", "statementsSamplingInterval": "<интервал_сбора_запросов>" }, "diskSizeAutoscaling": { "plannedUsageThreshold": "<порог_для_планового_увеличения_в_процентах>", "emergencyUsageThreshold": "<порог_для_незамедлительного_увеличения_в_процентах>", "diskSizeLimit": "<максимальный_размер_хранилища_в_байтах>" } }, "maintenanceWindow": { "weeklyMaintenanceWindow": { "day": "<день_недели>", "hour": "<час_дня>" } }, "deletionProtection": <защитить_кластер_от_удаления> }Где:
-
updateMask— перечень изменяемых параметров в одну строку через запятую. -
configSpec— настройки кластера:-
backupWindowStart— настройки окна резервного копирования.В параметре укажите время, когда начинать резервное копирование:
hours— от0до23часов;minutes— от0до59минут;seconds— от0до59секунд;nanos— от0до999999999наносекунд.
-
backupRetainPeriodDays— сколько дней хранить резервную копию кластера: от7до60дней. -
access— настройки доступа к кластеру из сервисов Yandex Cloud:dataLens— доступ из DataLens. Подробнее о настройке подключения см. в разделе Подключение из DataLens.webSql— выполнение SQL-запросов к базам данных кластера из консоли управления Yandex Cloud с помощью сервиса Yandex WebSQL.yandexQuery— выполнение YQL-запросов к базам данных кластера из сервиса Yandex Query. Функциональность находится на стадии Preview.
Возможные значения настроек:
trueилиfalse. -
performanceDiagnostics— настройки для сбора статистики:enabled— активация сбора статистики:trueилиfalse;sessionsSamplingInterval— интервал сбора сессий: от1до86400секунд;statementsSamplingInterval— интервал сбора запросов: от1до86400секунд.
-
diskSizeAutoscaling— настройки автоматического увеличения размера хранилища:-
plannedUsageThreshold(опционально) — порог заполнения хранилища в процентах, при достижении которого оно будет увеличено в следующее окно обслуживания. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
emergencyUsageThreshold(опционально) — порог заполнения хранилища в процентах, при достижении которого оно будет увеличено незамедлительно. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
diskSizeLimit— максимальный размер хранилища после увеличения, в байтах.
Важно
- Автоматическое увеличение размера хранилища не поддерживается на выделенных хостах.
-
При использовании параметра
plannedUsageThresholdнеобходимо задать окно технического обслуживания в настройкеmaintenanceWindow. -
Если заданы оба порога, значение
emergencyUsageThresholdдолжно быть большеplannedUsageThreshold.
-
-
-
maintenanceWindow— настройки окна технического обслуживания (в т. ч. для выключенных кластеров). Передайте один из параметров:-
anytime(по умолчанию) — техническое обслуживание происходит в любое время. -
weeklyMaintenanceWindow— техническое обслуживание происходит по расписанию:day— день недели в форматеDDD. Допустимые значения:MON,TUE,WED,THU,FRI,SAT,SUN.hour— час дня по UTC в форматеHH. Допустимые значения: от1до24.
-
-
deletionProtection— защита кластера от непреднамеренного удаления:trueилиfalse.Включенная защита кластера от удаления не помешает удалить пользователя или базу данных, а также подключиться вручную и удалить содержимое базы данных.
-
-
Воспользуйтесь методом Cluster.update и выполните запрос, например с помощью cURL
:curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mysql/v1/clusters/<идентификатор_кластера>' \ --data "@body.json"Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Создайте файл
body.jsonи добавьте в него следующее содержимое:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask(в виде массива строкpaths[]).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.backup_window_start", "config_spec.backup_retain_period_days", "config_spec.access", "config_spec.performance_diagnostics", "maintenance_window", "deletion_protection" ] }, "config_spec": { "backup_window_start": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" }, "backup_retain_period_days": "<количество_дней>", "access": { "data_lens": <разрешить_доступ_из_DataLens>, "web_sql": <разрешить_доступ_из_WebSQL>, "yandex_query": <разрешить_доступ_из_Yandex_Query> }, "performance_diagnostics": { "enabled": <активировать_сбор_статистики>, "sessions_sampling_interval": "<интервал_сбора_сессий>", "statements_sampling_interval": "<интервал_сбора_запросов>" }, "disk_size_autoscaling": { "planned_usage_threshold": "<порог_для_планового_увеличения_в_процентах>", "emergency_usage_threshold": "<порог_для_незамедлительного_увеличения_в_процентах>", "disk_size_limit": "<максимальный_размер_хранилища_в_байтах>" } }, "maintenance_window": { "weekly_maintenance_window": { "day": "<день_недели>", "hour": "<час_дня>" } }, "deletion_protection": <защитить_кластер_от_удаления> }Где:
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[]. -
config_spec— настройки кластера:-
backup_window_start— настройки окна резервного копирования.В параметре укажите время, когда начинать резервное копирование:
hours— от0до23часов;minutes— от0до59минут;seconds— от0до59секунд;nanos— от0до999999999наносекунд.
-
backup_retain_period_days— сколько дней хранить резервную копию кластера: от7до60дней. -
access— настройки доступа к кластеру из сервисов Yandex Cloud:data_lens— доступ из DataLens. Подробнее о настройке подключения см. в разделе Подключение из DataLens.web_sql— выполнение SQL-запросов к базам данных кластера из консоли управления Yandex Cloud с помощью сервиса Yandex WebSQL.yandex_query— выполнение YQL-запросов к базам данных кластера из сервиса Yandex Query. Функциональность находится на стадии Preview.
Возможные значения настроек:
trueилиfalse. -
performance_diagnostics— настройки для сбора статистики:enabled— активация сбора статистики:trueилиfalse;sessions_sampling_interval— интервал сбора сессий: от1до86400секунд;statements_sampling_interval— интервал сбора запросов: от1до86400секунд.
-
disk_size_autoscaling— настройки автоматического увеличения размера хранилища:-
planned_usage_threshold(опционально) — порог заполнения хранилища в процентах, при достижении которого оно будет увеличено в следующее окно обслуживания. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
emergency_usage_threshold(опционально) — порог заполнения хранилища в процентах, при достижении которого оно будет увеличено незамедлительно. По умолчанию —0(автоматическое увеличение отключено).Допустимые значения: от
0до100. -
disk_size_limit— максимальный размер хранилища после увеличения, в байтах.
Важно
- Автоматическое увеличение размера хранилища не поддерживается на выделенных хостах.
-
При использовании параметра
planned_usage_thresholdнеобходимо задать окно технического обслуживания в настройкеmaintenance_window. -
Если заданы оба порога, значение
emergency_usage_thresholdдолжно быть большеplanned_usage_threshold.
-
-
-
maintenance_window— настройки окна технического обслуживания (в т. ч. для выключенных кластеров). Передайте один из параметров:-
anytime(по умолчанию) — техническое обслуживание происходит в любое время. -
weekly_maintenance_window— техническое обслуживание происходит по расписанию:day— день недели в форматеDDD. Допустимые значения:MON,TUE,WED,THU,FRI,SAT,SUN.hour— час дня по UTC в форматеHH. Допустимые значения: от1до24.
-
-
deletion_protection— защита кластера от непреднамеренного удаления:trueилиfalse.Включенная защита кластера от удаления не помешает удалить пользователя или базу данных, а также подключиться вручную и удалить содержимое базы данных.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mysql.v1.ClusterService.Update \ < body.json -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Connection Manager
Если в кластере не включена интеграция с сервисом Connection Manager, включите опцию Использовать Connection Manager. Она доступна только в консоли управления
Для каждого пользователя БД будут созданы:
-
Подключение Connection Manager с информацией о соединении с БД.
-
Секрет Yandex Lockbox, в котором хранится пароль пользователя. Хранение паролей в сервисе Yandex Lockbox обеспечивает их безопасность.
Подключение и секрет создаются для каждого нового пользователя БД. Чтобы увидеть все подключения, на странице кластера выберите вкладку Подключения.
Для просмотра информации о подключении требуется роль
connection-manager.viewer. Вы можете настраивать доступ к подключениям в Connection Manager.Примечание
Использование сервиса Connection Manager и секретов, созданных с его помощью, не тарифицируется.
Вручную переключить хост-мастер
В высокодоступном кластере Managed Service for MySQL® из нескольких хостов вы можете переключить роль мастера с текущего хоста-мастера на одну из реплик. После этой операции текущий хост-мастер станет хостом-репликой для нового мастера.
Особенности переключения мастера в Managed Service for MySQL®:
- Нельзя сделать мастером каскадную реплику.
- Если явно не указать имя хоста-реплики, мастер переключится на реплику с наибольшим приоритетом или наименьшим отставанием.
Подробнее см. в разделе Репликация.
Чтобы переключить мастер:
- Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
- Нажмите на имя нужного кластера и выберите вкладку
Хосты. - Нажмите кнопку
Переключить мастер.- Чтобы переключить мастер на одну из реплик, оставьте включенной опцию Выбрать хост-мастер автоматически.
- Чтобы переключить мастер на конкретную реплику, выключите опцию Выбрать хост-мастер автоматически и затем выберите нужную реплику из выпадающего списка.
- Нажмите кнопку Переключить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Выполните команду:
yc managed-mysql cluster start-failover <имя_или_идентификатор_кластера> \
--host <имя_хоста-реплики>
Имя хоста-реплики можно запросить со списком хостов в кластере, имя кластера — со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.StartFailover и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mysql/v1/clusters/<идентификатор_кластера>:startFailover' \ --data '{ "hostName": "<FQDN_хоста>" }'Где
hostName— FQDN реплики, которая становится мастером.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService.StartFailover и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "host_name": "<FQDN_хоста>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mysql.v1.ClusterService.StartFailoverГде
host_name— FQDN реплики, которая становится мастером.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Переместить кластер
- Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
- Нажмите на значок
справа в строке кластера, который вы хотите переместить. - Выберите пункт Переместить.
- Выберите каталог, в который вы хотите переместить кластер.
- Нажмите кнопку Переместить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы переместить кластер:
-
Посмотрите описание команды CLI для перемещения кластера:
yc managed-mysql cluster move --help -
Укажите каталог назначения в команде перемещения кластера:
yc managed-mysql cluster move <идентификатор_кластера> \ --destination-folder-name=<имя_каталога_назначения>Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените или добавьте в описании кластера Managed Service for MySQL® значение параметра
folder_id:resource "yandex_mdb_mysql_cluster" "<имя_кластера>" { ... folder_id = "<идентификатор_каталога_назначения>" } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for MySQL®:
- создание кластера, в том числе путем восстановления из резервной копии, — 15 минут;
- изменение кластера, в том числе обновление версии MySQL®, — 60 минут;
- удаление кластера — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts, например:
resource "yandex_mdb_mysql_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.move и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mysql/v1/clusters/<идентификатор_кластера>:move' \ --data '{ "destinationFolderId": "<идентификатор_каталога>" }'Где
destinationFolderId— идентификатор каталога, куда перемещается кластер. Идентификатор можно получить со списком каталогов в облаке.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService/Move и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "destination_folder_id": "<идентификатор_каталога>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mysql.v1.ClusterService.MoveГде
destination_folder_id— идентификатор каталога, куда перемещается кластер. Идентификатор можно получить со списком каталогов в облаке.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить группы безопасности
- Перейдите на страницу каталога
и выберите сервис Managed Service for MySQL. - Выберите кластер и нажмите кнопку Редактировать на панели сверху.
- В блоке Сетевые настройки выберите группы безопасности для сетевого трафика кластера.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить список групп безопасности для кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-mysql cluster update --help -
Укажите нужные группы безопасности в команде изменения кластера:
yc managed-mysql cluster update <имя_или_идентификатор_кластера> \ --security-group-ids <список_идентификаторов_групп_безопасности>
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Managed Service for MySQL® значение параметра
security_group_ids:resource "yandex_mdb_mysql_cluster" "<имя_кластера>" { ... security_group_ids = [<список_идентификаторов_групп_безопасности>] } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for MySQL®:
- создание кластера, в том числе путем восстановления из резервной копии, — 15 минут;
- изменение кластера, в том числе обновление версии MySQL®, — 60 минут;
- удаление кластера — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts, например:
resource "yandex_mdb_mysql_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.update и выполните запрос, например с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mysql/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "securityGroupIds", "securityGroupIds": [ "<идентификатор_группы_безопасности_1>", "<идентификатор_группы_безопасности_2>", ... "<идентификатор_группы_безопасности_N>" ] }'Где:
-
updateMask— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
securityGroupIds— новый список групп безопасности, представленный в виде элементов массива.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask(в виде массива строкpaths[]).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "security_group_ids" ] }, "security_group_ids": [ "<идентификатор_группы_безопасности_1>", "<идентификатор_группы_безопасности_2>", ... "<идентификатор_группы_безопасности_N>" ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mysql.v1.ClusterService.UpdateГде:
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].В данном случае передается только один параметр.
-
security_group_ids— новый список групп безопасности, представленный в виде элементов массива.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Может потребоваться дополнительная настройка групп безопасности для подключения к кластеру.