Управление шардами Sharded PostgreSQL
Примечание
Сервис находится на стадии Preview.
Создать шард
Шарды Sharded PostgreSQL создаются на основе существующих кластеров Yandex Managed Service for PostgreSQL, расположенных в том же каталоге и в той же облачной сети, что и кластер Sharded PostgreSQL.
- Перейдите на страницу каталога
и выберите сервис Yandex Managed Service for Sharded PostgreSQL. - Нажмите на имя нужного кластера и выберите вкладку Шарды.
- Нажмите кнопку Создать шард.
- Укажите имя шарда и выберите кластер PostgreSQL, хосты которого будут использоваться в качестве хостов с данными в кластере Sharded PostgreSQL.
- Нажмите кнопку Создать.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.AddShard и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-spqr/v1/clusters/<идентификатор_кластера>/shards' \ --data '{ "shardSpec": { "shardName": "<имя_шарда>", "mdbPostgresql": { "clusterId": "<идентификатор_кластера_PostgreSQL>" } } }'Где
mdbPostgresql.clusterId— идентификатор кластера Managed Service for PostgreSQL в составе шарда. -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService.AddShard и выполните запрос, например с помощью 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 '{ "cluster_id": <идентификатор_кластера> "shard_spec": { "shard_name": "<имя_шарда>", "mdb_postgresql": { "cluster_id": "<идентификатор_кластера_PostgreSQL>" } } }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.spqr.v1.ClusterService.AddShardГде
mdb_postgresql.cluster_id— идентификатор кластера Managed Service for PostgreSQL в составе шарда.
Удалить шард
При удалении шарда Sharded PostgreSQL кластер Managed Service for PostgreSQL не удаляется.
- Перейдите на страницу каталога
и выберите сервис Yandex Managed Service for Sharded PostgreSQL. - Нажмите на имя нужного кластера и выберите вкладку Шарды.
- Нажмите на значок
в строке нужного шарда и выберите пункт Удалить. - В открывшемся окне нажмите кнопку Удалить.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.DeleteShard и выполните запрос, например с помощью cURL
:curl \ --request DELETE \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.yandexcloud.kz/managed-spqr/v1/clusters/<идентификатор_кластера>/shards/<имя_шарда>' -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService.DeleteShard и выполните запрос, например с помощью 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 '{ "cluster_id": <идентификатор_кластера>, "shard_name": "<имя_шарда>" }' \ mdb.api.yandexcloud.kz:443 \ yandex.cloud.mdb.spqr.v1.ClusterService.DeleteShard -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.