Обновление версии в Yandex MPP Analytics for PostgreSQL
Вы можете изменить версию базы данных, которую использует кластер в Yandex MPP Analytics for PostgreSQL.
Примечание
Поддерживается обновление версии Greenplum® с 6.28 до 6.29.
Не поддерживается:
- Обновление между patch-версиями Greenplum® вручную, например с 6.29.1 до 6.29.2. Такие обновления выполняются автоматически в рамках технического обслуживания.
- Обновление версии Apache Cloudberry™.
- Миграция между Greenplum® и Apache Cloudberry™.
Об обновлениях в рамках одной версии и обслуживании хостов в разделе Техническое обслуживание.
Узнать доступные версии
В консоли управления
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Versions.List и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-greenplum/v1/versions' -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом VersionsService.List и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/greenplum/v1/versions_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.VersionsService.List -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Перед обновлением версии
Убедитесь, что это не нарушит работу ваших приложений:
-
Посмотрите, как обновления могут повлиять на работу ваших приложений:
-
Попробуйте обновить версию на тестовом кластере. Его можно развернуть из резервной копии основного кластера, если версия базы данных в резервной копии поддерживается в Yandex MPP Analytics for PostgreSQL.
-
Создайте резервную копию основного кластера непосредственно перед обновлением версии.
Обновить кластер
Внимание
После обновления версии базы данных вернуть кластер к предыдущей версии невозможно.
- В консоли управления
перейдите в нужный каталог. - Перейдите в сервис Yandex MPP Analytics for PostgreSQL.
- В строке с нужным кластером нажмите
, затем выберите Редактировать. - В поле Версия выберите номер новой версии.
- Нажмите Сохранить.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, описано в разделе Создание кластера Yandex MPP Analytics for PostgreSQL.
-
Добавьте в блок
configнужного кластера Yandex MPP Analytics for PostgreSQL полеversion(версия базы данных) или измените его значение, если оно уже существует:resource "yandex_mdb_greenplum_cluster" "<имя_кластера>" { ... version = "<версия>" } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее в документации провайдера Terraform.
-
Получите 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-greenplum/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "config.version", "config": { "version": "<версия>" } }'Где:
-
updateMask— перечень изменяемых параметров в одну строку через запятую.В данном случае указан только один параметр:
config.version. -
config.version— версия базы данных, до которой нужно обновиться.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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/greenplum/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config.version" ] }, "config": { "version": "<версия>" } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.ClusterService.UpdateГде:
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].В данном случае указан только один параметр:
config.version. -
config.version— версия базы данных, до которой нужно обновиться.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.