Изменение кластера Sharded PostgreSQL
Примечание
Функциональность находится на стадии Preview.
После создания кластера вы можете изменить его основные и дополнительные настройки.
-
Перейдите на страницу каталога
и выберите сервис Yandex Managed Service for Sharded PostgreSQL. -
Выберите кластер и нажмите кнопку Редактировать на панели сверху.
-
В блоке Базовые параметры:
- Измените имя и описание кластера.
- Удалите или добавьте новые метки.
-
В блоке Сетевые настройки выберите группы безопасности для кластера.
-
Измените конфигурацию вычислительных ресурсов:
- Для стандартного шардирования измените в блоке Инфраструктура конфигурацию инфраструктурных хостов.
- Для расширенного шардирования измените в блоке Роутер конфигурацию хостов-роутеров. Если используется координатор, в блоке Координатор измените конфигурацию хостов-координаторов.
Чтобы изменить конфигурацию вычислительных ресурсов:
- В поле Платформа измените платформу.
- Измените Тип виртуальной машины, на которой развернуты хосты.
- Измените Класс хоста.
- В блоке Хранилище измените тип диска и размер хранилища.
-
Измените дополнительные настройки кластера:
-
Пароль для консоли Sharded PostgreSQL. Допустимая длина — от 8 до 128 символов.
-
Минимальный уровень логирования — в журнал выполнения будут записываться логи указанного уровня и выше. Доступные уровни —
DEBUG,INFO,WARN,ERROR,FATALиPANIC. Уровень по умолчанию —INFO. -
Начало резервного копирования (UTC) — промежуток времени, в течение которого начинается резервное копирование кластера. Время указывается по UTC в 24-часовом формате. По умолчанию —
22:00 - 23:00UTC. -
Срок хранения автоматических резервных копий, дней — автоматические резервные копии будут храниться указанное количество дней. По умолчанию — 7 дней.
-
Окно обслуживания — настройки времени технического обслуживания:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт произвольное (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите пункт по расписанию и укажите нужные день недели и час дня по UTC. Например, можно выбрать время, когда кластер наименее загружен.
Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать в себя: обновление СУБД, применение патчей и так далее.
-
Доступ из DataLens — разрешает анализировать данные из кластера в сервисе Yandex DataLens.
-
Доступ из WebSQL — разрешает выполнять SQL-запросы к базам данных кластера из консоли управления Yandex Cloud с помощью сервиса Yandex WebSQL.
-
Доступ из Data Transfer — включите эту опцию, чтобы разрешить доступ к кластеру из сервиса Yandex Data Transfer.
-
Защита от удаления — управляет защитой кластера от непреднамеренного удаления.
Включенная защита кластера от удаления не помешает удалить пользователя или базу данных, а также подключиться вручную и удалить содержимое базы данных.
-
-
В блоке Настройки СУБД нажмите кнопку Настроить и измените настройки СУБД уровня кластера.
-
Нажмите кнопку Сохранить изменения.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ "updateMask": "<список_изменяемых_параметров>", "name": "<имя_кластера>", "description": "<описание>", "environment": "<окружение>", "securityGroupIds": [ "<идентификатор_группы_безопасности_1>", "<идентификатор_группы_безопасности_2>", ... "<идентификатор_группы_безопасности_N>" ], "deletionProtection": <защитить_кластер_от_удаления>, "configSpec": { "spqrSpec": { "router": { "config": { "showNoticeMessages": <показывать_информационные_уведомления>, "timeQuantiles": [ <список_квантилей_времени_для_отображения_статистики> ], "defaultRouteBehavior": "<разрешать_мультишардовые_запросы>", "preferSameAvailabilityZone": <приоритет_маршрутизации_в_зону_доступности_роутера> }, "resources": { "resourcePresetId": "<класс_хостов_роутера>", "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" } }, "coordinator": { "resources": { "resourcePresetId": "<класс_хостов_координатора>", "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" } }, "infra": { "resources": { "resourcePresetId": "класс_хостов_INFRA", "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" }, "router": { "showNoticeMessages": <показывать_информационные_уведомления>, "timeQuantiles": [ <список_квантилей_времени_для_отображения_статистики> ], "defaultRouteBehavior": "<разрешать_мультишардовые_запросы>", "preferSameAvailabilityZone": <приоритет_маршрутизации_в_зону_доступности_роутера> } }, "consolePassword": "<пароль_консоли_Sharded_PostgreSQL>", "logLevel": "<уровень_логирования>" }, "backupWindowStart": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" }, "backupRetainPeriodDays": "<количество_дней>", "maintenanceWindow": { "weeklyMaintenanceWindow": { "day": "<день_недели>", "hour": "<час_дня>" } } } }Где:
-
updateMask— перечень изменяемых параметров в строку через запятую.Важно
При изменении кластера все параметры изменяемого объекта, которые не были явно переданы в запросе, будут переопределены на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask. -
name— имя кластера. -
securityGroupIds— идентификаторы групп безопасности. -
deletionProtection— защита кластера от удаления:trueилиfalse.Включенная защита кластера от удаления не помешает подключиться к нему вручную и удалить данные.
-
configSpec— настройки кластера:-
spqrSpec— настройки сервиса Sharded PostgreSQL:-
router— при расширенном шардировании задайте настройки роутера:-
config— конфигурация роутера:showNoticeMessages— показывать информационные уведомления:trueилиfalse.timeQuantiles— массив строк временных квантилей для отображения статистики. По умолчанию используются значения"0.5","0.75","0.9","0.95","0.99","0.999","0.9999".defaultRouteBehavior— политика выполнения мультишардовых запросов роутером. Возможные значения:BLOCK— блокировать,ALLOW— разрешать.preferSameAvailabilityZone— включить приоритет маршрутизации запросов на чтение в зону доступности роутера:trueилиfalse.
-
resources— параметры ресурсов хостовROUTER:resourcePresetId— класс хостов;diskSize— размер диска в байтах;diskTypeId— тип диска.
-
coordinator– при расширенном шардировании задайте настройки координатора:resources— параметры ресурсов:resourcePresetId— класс хостов;diskSize— размер диска в байтах;diskTypeId— тип диска.
-
infra– при стандартном шардировании задайте настройки хостовINFRA:-
resources— параметры ресурсов:resourcePresetId— класс хостов;diskSize— размер диска в байтах;diskTypeId— тип диска.
-
router— конфигурация роутера:showNoticeMessages— показывать информационные уведомления:trueилиfalse.timeQuantiles— массив строк временных квантилей для отображения статистики. По умолчанию используются значения"0.5","0.75","0.9","0.95","0.99","0.999","0.9999".defaultRouteBehavior— политика выполнения мультишардовых запросов роутером. Возможные значения:BLOCK— блокировать,ALLOW— разрешать.preferSameAvailabilityZone— включить приоритет маршрутизации запросов на чтение в зону доступности роутера:trueилиfalse.
-
-
consolePassword— пароль консоли Sharded PostgreSQL. -
logLevel— уровень логирования запросов:DEBUG,INFO,WARNING,ERROR,FATAL,PANIC.
-
-
-
backupWindowStart— настройки окна резервного копирования.В параметре укажите время, когда начинать резервное копирование. Возможные значения параметров:
hours— от0до23часов;minutes— от0до59минут;seconds— от0до59секунд;nanos— от0до999999999наносекунд.
-
backupRetainPeriodDays— сколько дней хранить резервную копию кластера. Возможные значения: от7до60дней.
-
-
maintenanceWindow— настройки расписания окна технического обслуживания:day— день недели в форматеDDD, когда должно проходить обслуживание.hour— час дня в форматеHH, когда должно проходить обслуживание. Допустимые значения: от1до24.
-
-
Воспользуйтесь методом Cluster.Update и выполните запрос, например с помощью cURL
:curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-spqr/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и добавьте в него следующее содержимое:{ "update_mask": { "paths": [ <список_изменяемых_параметров> ] }, "name": "<имя_кластера>", "description": "<описание>", "security_group_ids": [ "<идентификатор_группы_безопасности_1>", "<идентификатор_группы_безопасности_2>", ... "<идентификатор_группы_безопасности_N>" ], "deletion_protection": <защитить_кластер_от_удаления>, "config_spec": { "spqr_spec": { "router": { "config": { "show_notice_messages": { "value": <показывать_информационные_уведомления> }, "time_quantiles": [ <список_квантилей_времени_для_отображения_статистики> ], "default_route_behavior": "<разрешать_мультишардовые_запросы>", "prefer_same_availability_zone": { "value": <приоритет_маршрутизации_в_зону_доступности_роутера> } }, "resources": { "resource_preset_id": "<класс_хостов_роутера>", "disk_size": "<размер_хранилища_в_байтах>", "disk_type_id": "<тип_диска>" } }, "coordinator": { "resources": { "resource_preset_id": "<класс_хостов_координатора>", "disk_size": "<размер_хранилища_в_байтах>", "disk_type_id": "<тип_диска>" } }, "infra": { "resources": { "resource_preset_id": "класс_хостов_INFRA", "disk_size": "<размер_хранилища_в_байтах>", "disk_type_id": "<тип_диска>" }, "router": { "show_notice_messages": { "value": <показывать_информационные_уведомления> }, "time_quantiles": [ <список_квантилей_времени_для_отображения_статистики> ], "default_route_behavior": "<разрешать_мультишардовые_запросы>", "prefer_same_availability_zone": { "value": <приоритет_маршрутизации_в_зону_доступности_роутера> } } }, "console_password": "<пароль_консоли_Sharded_PostgreSQL>", "log_level": "<уровень_логирования>" }, "backup_window_start": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" }, "backup_retain_period_days": "<количество_дней>" }, "maintenance_window": { "weekly_maintenance_window": { "day": "<день_недели>", "hour": "<час_дня>" } } }Где:
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }Важно
При изменении кластера все параметры изменяемого объекта, которые не были явно переданы в запросе, будут переопределены на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask. -
name— имя кластера. -
security_group_ids— идентификаторы групп безопасности. -
deletion_protection— защита кластера от удаления:trueилиfalse.Включенная защита кластера от удаления не помешает подключиться к нему вручную и удалить данные.
-
config_spec— настройки кластера:-
spqr_spec— настройки сервиса Sharded PostgreSQL:-
router— при расширенном шардировании задайте настройки роутера:-
config— конфигурация роутера:show_notice_messages— показывать информационные уведомления:trueилиfalse.time_quantiles— массив временных квантилей для отображения статистики. По умолчанию используются значения0.5,0.75,0.9,0.95,0.99,0.999,0.9999.default_route_behavior— политика выполнения мультишардовых запросов роутером. Возможные значения:BLOCK— блокировать,ALLOW— разрешать.prefer_same_availability_zone— включить приоритет маршрутизации запросов на чтение в зону доступности роутера:trueилиfalse.
-
resources— параметры ресурсов хостовROUTER:resource_preset_id— класс хостов;disk_size— размер диска в байтах;disk_type_id— тип диска.
-
coordinator– при расширенном шардировании задайте настройки координатора:resources— параметры ресурсов:resource_preset_id— класс хостов;disk_size— размер диска в байтах;disk_type_id— тип диска.
-
infra– при стандартном шардировании задайте настройки хостовINFRA:-
resources— параметры ресурсов:resource_preset_id— класс хостов;disk_size— размер диска в байтах;disk_type_id— тип диска.
-
router— конфигурация роутера:show_notice_messages— показывать информационные уведомления:trueилиfalse.time_quantiles— массив временных квантилей для отображения статистики. По умолчанию используются значения0.5,0.75,0.9,0.95,0.99,0.999,0.9999.default_route_behavior— политика выполнения мультишардовых запросов роутером. Возможные значения:BLOCK— блокировать,ALLOW— разрешать.prefer_same_availability_zone— включить приоритет маршрутизации запросов на чтение в зону доступности роутера:trueилиfalse.
-
-
console_password— пароль консоли Sharded PostgreSQL. -
log_level— уровень логирования запросов:DEBUG,INFO,WARNING,ERROR,FATAL,PANIC.
-
-
-
backup_window_start— настройки окна резервного копирования.В параметре укажите время, когда начинать резервное копирование. Возможные значения параметров:
hours— от0до23часов;minutes— от0до59минут;seconds— от0до59секунд;nanos— от0до999999999наносекунд.
-
backup_retain_period_days— сколько дней хранить резервную копию кластера. Возможные значения: от7до60дней.
-
-
maintenance_window— настройки расписания окна технического обслуживания:day— день недели в форматеDDD, когда должно проходить обслуживание.hour— час дня в форматеHH, когда должно проходить обслуживание. Допустимые значения: от1до24.
-
-
Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/spqr/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.spqr.v1.ClusterService.Update \ < body.json -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.