Техническое обслуживание кластера Yandex Managed Service for MySQL®
Вы можете управлять техническим обслуживанием кластера Managed Service for MySQL®.
Получить список обслуживаний
Для сервиса Managed Service for MySQL® можно получить список обслуживаний в:
Получить список обслуживаний в облаке
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Maintenance.List и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.yandexcloud.kz/managed-mysql/v1/maintenances?cloudId=<идентификатор_облака>'О том, как получить идентификатор облака, в соответствующей инструкции.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом MaintenanceService.List и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cloud_id": "<идентификатор_облака>" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.mysql.v1.MaintenanceService.ListО том, как получить идентификатор облака, в соответствующей инструкции.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить список обслуживаний в каталоге
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Maintenance.List и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.yandexcloud.kz/managed-mysql/v1/maintenances?folderId=<идентификатор_каталога>'Идентификатор каталога можно получить со списком каталогов в облаке.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом MaintenanceService.List и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "folder_id": "<идентификатор_каталога>" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.mysql.v1.MaintenanceService.ListИдентификатор каталога можно получить со списком каталогов в облаке.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить список обслуживаний в кластере
-
В консоли управления
выберите каталог, в котором находится нужный кластер. -
Перейдите
в сервис Managed Service for MySQL. -
Выберите кластер и перейдите на вкладку
Обслуживание.Чтобы просмотреть обслуживания с определенным статусом, выберите статус в поле Статус над списком обслуживаний. Вы также можете найти обслуживание по его идентификатору или имени задания с помощью поля поиска над списком обслуживаний.
Чтобы получить информацию о влиянии обслуживания на доступность кластера, нажмите на идентификатор нужного обслуживания. В блоке Подробнее о задании отображается информация о влиянии обслуживания на пользователей.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Maintenance.List и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.yandexcloud.kz/managed-mysql/v1/maintenances?resourceId=<идентификатор_кластера>'Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом MaintenanceService.List и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "resource_id": "<идентификатор_кластера>" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.mysql.v1.MaintenanceService.ListИдентификатор кластера можно получить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить информацию об обслуживании
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Maintenance.Get и выполните запрос, например с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.yandexcloud.kz/managed-mysql/v1/maintenances/<идентификатор_обслуживания>'Идентификатор обслуживания можно получить со списком обслуживаний.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом MaintenanceService.Get и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "maintenance_id": "<идентификатор_обслуживания>" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.mysql.v1.MaintenanceService.GetИдентификатор обслуживания можно получить со списком обслуживаний.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить логи технического обслуживания кластера
- В консоли управления
выберите каталог, в котором находится нужный кластер. - Перейдите
в сервис Managed Service for MySQL. - Выберите кластер и перейдите на вкладку
Обслуживание. - Выберите обслуживание.
- Нажмите ссылку Логи задания.
Перенести запланированное обслуживание
Обслуживание в статусе Запланировано назначено на определенную дату и время, которые указаны в столбце Дата начала. При необходимости такое обслуживание можно перенести на новую дату и время, но не более чем на две недели от первоначально запланированной даты и времени.
Чтобы перенести запланированное обслуживание:
-
В консоли управления
выберите каталог, в котором находится нужный кластер. -
Перейдите
в сервис Managed Service for MySQL. -
Выберите кластер и перейдите на вкладку
Обслуживание. -
В строке обслуживания со статусом Запланировано нажмите на значок
и выберите пункт Перенести. -
Выберите тип переноса:
-
На следующее окно — перенести обслуживание на ближайшее доступное окно.
-
Выбрать дату (UTC) — перенести обслуживание на новую дату и время.
В этом случае выберите дату и интервал времени по UTC.
-
-
Нажмите кнопку Перенести.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы перенести запланированное обслуживание:
-
Посмотрите описание команды CLI для переноса обслуживания:
yc managed-mysql cluster reschedule-maintenance --help -
Перенесите обслуживание, выполнив команду:
yc managed-mysql cluster reschedule-maintenance <имя_или_идентификатор_кластера> \ --reschedule-type <тип_переноса> \ --delayed-until <временная_метка>Где:
-
<имя_или_идентификатор_кластера>— имя или идентификатор кластера, которые можно получить со списком кластеров в каталоге. -
--reschedule-type— тип переноса. Возможные значения:next-available-window— перенести обслуживание на ближайшее доступное окно.specific-time— перенести обслуживание на новую дату и время.
-
--delayed-until— временная метка для типа переносаspecific-time.Временная метка может иметь один из следующих форматов:
- RFC-3339
; - ЧЧ:ММ:СС;
- количество часов и минут, на которые нужно перенести обслуживание.
Примеры:
2006-01-02T15:04:05Z,15:04:05,2h,3h30m ago. - RFC-3339
-
Перенести запланированное обслуживание можно с помощью одного из методов:
Чтобы перенести запланированное обслуживание с помощью метода Cluster.RescheduleMaintenance:
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.RescheduleMaintenance и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-mysql/v1/clusters/<идентификатор_кластера>:rescheduleMaintenance' \ --data '{ "rescheduleType": "<тип_переноса>", "delayedUntil": "<временная_метка>" }'Где:
-
<идентификатор_кластера>— идентификатор кластера, который можно получить со списком кластеров в каталоге. -
rescheduleType— тип переноса. Возможные значения:NEXT_AVAILABLE_WINDOW— перенести обслуживание на ближайшее доступное окно.SPECIFIC_TIME— перенести обслуживание на новую дату и время.
-
delayedUntil— временная метка для типа переносаSPECIFIC_TIMEв формате RFC-3339 .Пример:
2006-01-02T15:04:05Z.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Чтобы перенести запланированное обслуживание с помощью метода Maintenance.Reschedule:
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Maintenance.Reschedule и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-mysql/v1/maintenances/<идентификатор_обслуживания>:reschedule' \ --data '{ "rescheduleType": "<тип_переноса>", "scheduledAt": "<временная_метка>" }'Где:
-
<идентификатор_обслуживания>— идентификатор обслуживания, который можно получить со списком обслуживаний. -
rescheduleType— тип переноса. Возможные значения:NEXT_AVAILABLE_WINDOW— перенести обслуживание на ближайшее доступное окно.SPECIFIC_TIME— перенести обслуживание на новую дату и время.
-
scheduledAt— временная метка для типа переносаSPECIFIC_TIMEв формате RFC-3339 .Пример:
2006-01-02T15:04:05Z.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Перенести запланированное обслуживание можно с помощью одного из вызовов:
Чтобы перенести запланированное обслуживание с помощью вызова ClusterService.RescheduleMaintenance:
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService.RescheduleMaintenance и выполните запрос, например с помощью 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": "<идентификатор_кластера>", "reschedule_type": "<тип_переноса>", "delayed_until": "<временная_метка>" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.mysql.v1.ClusterService.RescheduleMaintenanceГде:
-
cluster_id— идентификатор кластера, который можно получить со списком кластеров в каталоге. -
reschedule_type— тип переноса. Возможные значения:NEXT_AVAILABLE_WINDOW— перенести обслуживание на ближайшее доступное окно.SPECIFIC_TIME— перенести обслуживание на новую дату и время.
-
delayed_until— временная метка для типа переносаSPECIFIC_TIMEв формате RFC-3339 .Пример:
2006-01-02T15:04:05Z.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Чтобы перенести запланированное обслуживание с помощью вызова MaintenanceService.Reschedule:
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом MaintenanceService.Reschedule и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "maintenance_id": "<идентификатор_обслуживания>", "reschedule_type": "<тип_переноса>", "scheduled_at": "<временная_метка>" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.mysql.v1.MaintenanceService.RescheduleГде:
-
maintenance_id— идентификатор обслуживания, который можно получить со списком обслуживаний. -
reschedule_type— тип переноса. Возможные значения:NEXT_AVAILABLE_WINDOW— перенести обслуживание на ближайшее доступное окно.SPECIFIC_TIME— перенести обслуживание на новую дату и время.
-
scheduled_at— временная метка для типа переносаSPECIFIC_TIMEв формате RFC-3339 .Пример:
2006-01-02T15:04:05Z.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Провести запланированное обслуживание немедленно
Обслуживание со статусом Запланировано при необходимости можно провести немедленно, не дожидаясь момента, указанного в столбце Дата начала.
Чтобы провести запланированное обслуживание кластера немедленно:
- В консоли управления
выберите каталог, в котором находится нужный кластер. - Перейдите
в сервис Managed Service for MySQL. - Выберите кластер и перейдите на вкладку
Обслуживание. - В строке нужного обслуживания нажмите на значок
и выберите пункт Провести сейчас.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы провести запланированное обслуживание кластера немедленно:
-
Посмотрите описание команды CLI для проведения обслуживания:
yc managed-mysql cluster reschedule-maintenance --help -
Проведите запланированное обслуживание, выполнив команду:
yc managed-mysql cluster reschedule-maintenance <имя_или_идентификатор_кластера> \ --reschedule-type immediateИмя и идентификатор кластера можно получить со списком кластеров в каталоге.
Провести запланированное обслуживание немедленно можно с помощью одного из методов:
Чтобы провести запланированное обслуживание немедленно с помощью метода Cluster.RescheduleMaintenance:
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.RescheduleMaintenance и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-mysql/v1/clusters/<идентификатор_кластера>:rescheduleMaintenance' \ --data '{ "rescheduleType": "IMMEDIATE" }'Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Чтобы провести запланированное обслуживание немедленно с помощью метода Maintenance.Reschedule:
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Maintenance.Reschedule и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-mysql/v1/maintenances/<идентификатор_обслуживания>:reschedule' \ --data '{ "rescheduleType": "IMMEDIATE" }'Идентификатор обслуживания можно получить со списком обслуживаний.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Провести запланированное обслуживание немедленно можно с помощью одного из вызовов:
Чтобы провести запланированное обслуживание немедленно с помощью вызова ClusterService.RescheduleMaintenance:
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService.RescheduleMaintenance и выполните запрос, например с помощью 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": "<идентификатор_кластера>", "reschedule_type": "IMMEDIATE" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.mysql.v1.ClusterService.RescheduleMaintenanceИдентификатор кластера можно получить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Чтобы провести запланированное обслуживание немедленно с помощью вызова MaintenanceService.Reschedule:
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом MaintenanceService.Reschedule и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mysql/v1/maintenance_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "maintenance_id": "<идентификатор_обслуживания>", "reschedule_type": "IMMEDIATE" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.mysql.v1.MaintenanceService.RescheduleИдентификатор обслуживания можно получить со списком обслуживаний.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Настроить окно обслуживания
-
В консоли управления
выберите каталог, в котором находится нужный кластер. -
Перейдите
в сервис Managed Service for MySQL. -
Выберите кластер и перейдите на вкладку
Обслуживание. -
В правом верхнем углу страницы нажмите кнопку
Настроить окно обслуживания. -
Настройте время технического обслуживания кластера:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт В любое время (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите пункт По расписанию и укажите день недели и интервал времени по UTC. Например, можно выбрать время, когда кластер наименее загружен.
Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать обновление СУБД, применение патчей и т. д.
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки 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 <имя_или_идентификатор_кластера> \ --maintenance-window type=<тип_технического_обслуживания>,` `day=<день_недели>,` `hour=<порядковый_номер_часового_интервала>Где:
-
<имя_или_идентификатор_кластера>— имя или идентификатор кластера, которые можно получить со списком кластеров в каталоге. -
--maintenance-window— настройки времени технического обслуживания (в т. ч. для выключенных кластеров), гдеtype— тип технического обслуживания:-
anytime(по умолчанию) — в любое время. -
weekly— по расписанию. Для этого значения дополнительно укажите:-
day— день недели:MON,TUE,WED,THU,FRI,SATилиSUN. -
hour— порядковый номер часового интервала по UTC: от1до24.Например,
1соответствует интервалу с00:00до01:00,5— с04:00до05:00.
-
-
-
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, в разделе Создание кластера MySQL®.
-
Чтобы настроить время технического обслуживания (в т. ч. для выключенных кластеров), добавьте к описанию кластера блок
maintenance_window:resource "yandex_mdb_mysql_cluster" "<имя_кластера>" { ... maintenance_window { type = "<тип_технического_обслуживания>" day = "<день_недели>" hour = <порядковый_номер_часового_интервала> } ... }Где:
-
type— тип технического обслуживания. Принимает значения:ANYTIME(по умолчанию) — в любое время.WEEKLY— по расписанию.
-
day— день недели:MON,TUE,WED,THU,FRI,SATилиSUN. -
hour— порядковый номер часового интервала по UTC: от1до24.Например,
1соответствует интервалу с00:00до01:00,5— с04:00до05:00.
Подробнее о ресурсе
yandex_mdb_mysql_clusterв документации провайдера Terraform. -
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер 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
:curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-mysql/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "maintenanceWindow", "maintenanceWindow": { "weeklyMaintenanceWindow": { "day": "<день_недели>", "hour": "<порядковый_номер_часового_интервала>" } } }'Где:
-
<идентификатор_кластера>— идентификатор кластера, который можно получить со списком кластеров в каталоге. -
updateMask— перечень изменяемых параметров в строку через запятую.В этом примере передается только один параметр
maintenanceWindow.Важно
Все настройки изменяемого объекта в кластере, которые не были явно переданы в запросе, будут переопределены на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask.
-
maintenanceWindow— настройки окна технического обслуживания (в т. ч. для выключенных кластеров). Передайте один из параметров:-
anytime(по умолчанию) — техническое обслуживание проводится в любое время. -
weeklyMaintenanceWindow— техническое обслуживание проводится по расписанию:-
day— день недели:MON,TUE,WED,THU,FRI,SAT,SUN. -
hour— порядковый номер часового интервала по UTC: от1до24.Например,
1соответствует интервалу с00:00до01:00,5— с04:00до05:00.
-
-
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом 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 '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "maintenance_window" ] }, "maintenance_window": { "weekly_maintenance_window": { "day": "<день_недели>", "hour": "<порядковый_номер_часового_интервала>" } } }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.mysql.v1.ClusterService.UpdateГде:
-
cluster_id— идентификатор кластера, который можно получить со списком кластеров в каталоге. -
update_mask— перечень изменяемых параметров в виде массива строкpaths[].Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }В этом примере передается только один параметр
maintenance_window.Важно
Все настройки изменяемого объекта в кластере, которые не были явно переданы в запросе, будут переопределены на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask.
-
maintenance_window— настройки окна технического обслуживания (в т. ч. для выключенных кластеров). Передайте один из параметров:-
anytime(по умолчанию) — техническое обслуживание проводится в любое время. -
weekly_maintenance_window— техническое обслуживание проводится по расписанию:-
day— день недели:MON,TUE,WED,THU,FRI,SAT,SUN. -
hour— порядковый номер часового интервала по UTC: от1до24.Например,
1соответствует интервалу с00:00до01:00,5— с04:00до05:00.
-
-
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.