Управление резервными копиями в Managed Service for Greenplum®
Вы можете просматривать имеющиеся резервные копии и восстанавливать из них кластеры.
Получить список резервных копий
Чтобы получить список резервных копий кластера:
- Перейдите на страницу каталога
и выберите сервис Managed Service for Greenplum. - Нажмите на имя нужного кластера и выберите вкладку
Резервные копии.
Чтобы получить список всех резервных копий в каталоге:
- Перейдите на страницу каталога
и выберите сервис Managed Service for Greenplum. - На панели слева выберите
Резервные копии.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить список резервных копий кластера Greenplum®, выполните команду:
yc managed-greenplum cluster list-backups <имя_или_идентификатор_кластера>
Идентификатор и имя кластера можно получить со списком кластеров в каталоге.
Результат:
+--------------------------+---------------------+----------------------+---------------------+
| ID | CREATED AT | SOURCE CLUSTER ID | STARTED AT |
+--------------------------+---------------------+----------------------+---------------------+
| c9qgo11pud7k********:... | 2020-08-10 12:00:00 | c9qgo11pud7k******** | 2020-08-10 11:55:17 |
| ... |
+--------------------------+---------------------+----------------------+---------------------+
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Чтобы получить список резервных копий кластера:
-
Воспользуйтесь методом Cluster.ListBackups и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-greenplum/v1/clusters/<идентификатор_кластера>/backups'
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Чтобы получить список резервных копий всех кластеров в каталоге:
-
Воспользуйтесь методом Backup.List и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-greenplum/v1/backups' \ --url-query folderId=<идентификатор_каталога>
Идентификатор каталога можно запросить со списком каталогов в облаке.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Чтобы получить список резервных копий кластера:
-
Воспользуйтесь вызовом ClusterService.ListBackups и выполните запрос, например, с помощью gRPCurl
: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": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.ClusterService.ListBackups
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Чтобы получить список резервных копий всех кластеров в каталоге:
-
Воспользуйтесь вызовом BackupService.List и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/greenplum/v1/backup_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "folder_id": "<идентификатор_каталога>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.BackupService.List
Идентификатор каталога можно запросить со списком каталогов в облаке.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получить информацию о резервной копии
Чтобы получить информацию о резервной копии существующего кластера:
- Перейдите на страницу каталога
и выберите сервис Managed Service for Greenplum. - Нажмите на имя нужного кластера и выберите вкладку
Резервные копии.
Чтобы получить информацию о резервной копии удаленного ранее кластера:
- Перейдите на страницу каталога
и выберите сервис Managed Service for Greenplum. - На панели слева выберите
Резервные копии.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Backup.Get и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-greenplum/v1/backups/<идентификатор_резервной_копии>'
Идентификатор резервной копии можно запросить со списком резервных копий.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом BackupService.Get и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/greenplum/v1/backup_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "backup_id": "<идентификатор_резервной_копии>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.BackupService.Get
Идентификатор резервной копии можно запросить со списком резервных копий.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Создать резервную копию
- Перейдите на страницу каталога и выберите сервис Managed Service for Greenplum.
- Нажмите на имя нужного кластера и выберите вкладку
Резервные копии. - Нажмите кнопку
Создать резервную копию.
Сервис начнет создавать резервную копию без дополнительного подтверждения.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.Backup и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-greenplum/v1/clusters/<идентификатор_кластера>:backup'
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Воспользуйтесь вызовом ClusterService.Backup и выполните запрос, например, с помощью gRPCurl
: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": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.ClusterService.Backup
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Во время создания резервной копии производительность кластера может снижаться.
Восстановить кластер из резервной копии
Технология Point-in-Time Recovery (PITR) позволяет вернуть состояние кластера на любую из точек восстановления, созданных позже сохраненной резервной копии. Подробнее см. в разделе Резервные копии.
Восстанавливая кластер из резервной копии, вы создаете новый кластер с данными из резервной копии. Если в каталоге не хватает ресурсов для создания такого кластера, восстановиться из резервной копии не получится.
Для нового кластера необходимо задать все параметры, обязательные при создании.
Если вы хотите перенести хосты кластера Managed Service for Greenplum® в другую зону доступности, восстановите кластер из резервной копии. Во время восстановления из резервной копии укажите новую зону доступности. Если ваш кластер выступает в роли эндпоинта Yandex Data Transfer, перед восстановлением из резервной копии обратите внимание на особенности миграции в Data Transfer.
Важно
Существуют ограничения на параметры нового кластера при восстановлении из резервной копии:
- Общее количество сегментов должно совпадать с исходным кластером.
- Размер диска на один сегмент в новом кластере должен быть не меньше, чем у исходного кластера.
Пример
В исходном кластере было 4 хоста-сегмента, в каждом хосте-сегменте содержалось 4 сегмента. Общее количество сегментов — 16. При восстановлении кластера можно выбрать 2 хоста-сегмента по 8 сегментов на хост, чтобы общее количество сегментов осталось равным 16.
Чтобы размер диска на один сегмент не уменьшился, в каждом хосте-сегменте размер диска должен увеличиться по крайней мере в 2 раза.
Если в качестве времени восстановления выбран текущий момент, состояние нового кластера будет соответствовать последней доступной точке восстановления.
Чтобы восстановить из резервной копии существующий кластер:
-
Перейдите на страницу каталога
и выберите сервис Managed Service for Greenplum. -
Нажмите на имя нужного кластера и выберите вкладку
Резервные копии. -
Нажмите на значок
для нужной резервной копии, затем нажмите Восстановить кластер. -
Задайте настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.
-
В настройке Дата и время восстановления (UTC) задайте момент времени, на который нужно восстановить состояние кластера. Введите значение вручную или выберите из выпадающего календаря. Будет использована ближайшая к этому времени точка восстановления.
Если оставить настройку без изменений, кластер будет приведен в состояние, сохраненное в резервной копии. Точки восстановления использованы не будут.
-
Если нужно восстановить только определенные базы данных или таблицы, задайте их список в поле БД и таблицы для восстановления. Если оставить поле пустым, кластер будет восстановлен целиком.
-
В настройке Количество хостов укажите количество хостов-сегментов.
-
В настройке Сегментов на хост укажите количество сегментов на хост.
-
Нажмите кнопку Создать.
Чтобы восстановить из резервной копии удаленный ранее кластер:
-
Перейдите на страницу каталога
и выберите сервис Managed Service for Greenplum. -
На панели слева выберите
Резервные копии. -
Найдите нужную резервную копию по времени создания и идентификатору кластера. В колонке Идентификатор содержатся идентификаторы в формате
<идентификатор_кластера>:<идентификатор_резервной_копии>
. -
Нажмите на значок
для нужной резервной копии, затем нажмите Восстановить кластер. -
Задайте настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.
-
В настройке Дата и время восстановления (UTC) задайте момент времени, на который нужно восстановить состояние кластера. Введите значение вручную или выберите из выпадающего календаря. Будет использована ближайшая к этому времени точка восстановления.
Если оставить настройку без изменений, кластер будет приведен в состояние, сохраненное в резервной копии. Точки восстановления использованы не будут.
-
Если нужно восстановить только определенные базы данных или таблицы, задайте их список в поле БД и таблицы для восстановления. Если оставить поле пустым, кластер будет восстановлен целиком.
-
В настройке Количество хостов укажите количество хостов-сегментов.
-
В настройке Сегментов на хост укажите количество сегментов на хост.
-
Нажмите кнопку Создать.
Managed Service for Greenplum® запустит операцию создания кластера из резервной копии.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы восстановить кластер из резервной копии:
-
Посмотрите описание команды CLI для восстановления кластера Greenplum®:
yc managed-greenplum cluster restore --help
-
Запросите создание кластера из резервной копии:
yc managed-greenplum cluster restore \ --backup-id=<идентификатор_резервной_копии> \ --time=<момент_времени> \ --name=<имя_кластера> \ --environment=<окружение> \ --network-name=default \ --master-resource-preset=<класс_хоста> \ --master-disk-size=<объем_хранилища_ГБ> \ --master-disk-type=<тип_диска> \ --segment-resource-preset=<класс_хоста> \ --segment-disk-size=<объем_хранилища_ГБ> \ --segment-disk-type=<тип_диска> \ --segment-host-count <количество_хостов-сегментов> \ --segment-in-host <количество_сегментов_на_хост> \ --restore-only=<список_БД_и_таблиц_для_восстановления> \ --zone-id=<зона_доступности> \ --subnet-id=<идентификатор_подсети> \ --assign-public-ip=<публичный_доступ_к_кластеру>
Где:
-
--backup-id
— идентификатор резервной копии. -
--time
— момент времени, на который нужно восстановить состояние кластера Greenplum®, в форматеyyyy-mm-ddThh:mm:ssZ
. По умолчанию кластер будет восстановлен в состояние, сохраненное в резервной копии. -
--name
— имя кластера. -
--environment
— окружение:PRESTABLE
— для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.PRODUCTION
— для стабильных версий ваших приложений.
-
--network-name
— имя сети. -
--master-resource-preset
— класс хостов-мастеров. -
--master-disk-size
— размер хранилища хостов-мастеров в гигабайтах. -
--master-disk-type
— тип диска хостов-мастеров. -
--segment-resource-preset
— класс хостов-сегментов. -
--segment-disk-size
— размер хранилища хостов-сегментов в гигабайтах. -
--segment-disk-type
— тип диска хостов-сегментов. -
--segment-host-count
— количество хостов-сегментов. -
--segment-in-host
— количество сегментов на хост. -
--restore-only
— (опционально) список БД и таблиц, которые будут восстановлены из резервной копии, через запятую. Поддерживаются форматы<БД>/<схема>/<таблица>
,<БД>/<таблица>
и<БД>
. Допускается использование подстановочного символа*
. Если не использовать этот параметр, кластер будет восстановлен целиком. -
--zone-id
— зона доступности. -
--subnet-id
— идентификатор подсети. Необходимо указывать, если в выбранной зоне доступности создано две или больше подсетей. -
--assign-public-ip
— флаг, который указывается, если кластеру требуется доступ из интернета.
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Создайте файл
body.json
и добавьте в него следующее содержимое:{ "backupId": "<идентификатор_резервной_копии>", "time": "<время>", "folderId": "<идентификатор_каталога>", "name": "<имя_кластера>", "environment": "<окружение>", "networkId": "<идентификатор_сети>", "config": { "zoneId": "<зона_доступности>", "subnetId": "<идентификатор_подсети>", "assignPublicIp": <публичный_доступ_к_хостам_кластера> }, "masterResources": { "resourcePresetId": "<класс_хостов>", "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" }, "segmentResources": { "resourcePresetId": "<класс_хостов>", "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" }, "segmentHostCount": "<количество_хостов-сегментов>", "segmentInHost": "<количество_сегментов_на_хост>", "restoreOnly": [ "<БД_и_таблица_1>", "<БД_и_таблица_2>", ... "<БД_и_таблица_N>" ] }
Где:
-
backupId
— идентификатор резервной копии. Его можно запросить со списком резервных копий. -
time
— момент времени, на который нужно восстановить состояние кластера Greenplum®, в форматеyyyy-mm-ddThh:mm:ssZ
. По умолчанию кластер будет восстановлен в состояние, сохраненное в резервной копии. -
folderId
— идентификатор каталога, где будет восстановлен кластер. Идентификатор можно запросить со списком каталогов в облаке. По умолчанию кластер будет восстановлен в тот же каталог, где находится резервная копия. -
name
— имя нового кластера. -
environment
— окружение:PRESTABLE
— для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.PRODUCTION
— для стабильных версий ваших приложений.
-
networkId
— идентификатор сети. -
config
— настройки кластера:-
zoneId
— зона доступности. -
subnetId
— идентификатор подсети. -
assignPublicIp
— публичный доступ к хостам кластера:true
илиfalse
. -
masterResources
,segmentResources
— конфигурация хостов-мастеров и хостов-сегментов кластера:resourcePresetId
— класс хостов;diskSize
— размер диска в байтах;diskTypeId
— тип диска.
-
segmentHostCount
— количество хостов-сегментов: от2
до32
. -
segmentInHost
— количество сегментов на хост. Максимальное значение этого параметра зависит от класса хостов. -
restoreOnly
— (опционально) список БД и таблиц, которые будут восстановлены из резервной копии. Поддерживаются форматы<БД>/<схема>/<таблица>
,<БД>/<таблица>
и<БД>
. Допускается использование подстановочного символа*
. Если не использовать этот параметр, кластер будет восстановлен целиком.
-
-
-
Воспользуйтесь методом Cluster.Restore и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-greenplum/v1/clusters:restore' \ --data "@body.json"
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Создайте файл
body.json
и добавьте в него следующее содержимое:{ "backup_id": "<идентификатор_резервной_копии>", "time": "<время>", "folder_id": "<идентификатор_каталога>", "name": "<имя_кластера>", "environment": "<окружение>", "network_id": "<идентификатор_сети>", "config": { "zone_id": "<зона_доступности>", "subnet_id": "<идентификатор_подсети>", "assign_public_ip": <публичный_доступ_к_хостам_кластера> }, "master_resources": { "resource_preset_id": "<класс_хостов>", "disk_size": "<размер_хранилища_в_байтах>", "disk_type_id": "<тип_диска>" }, "segment_resources": { "resource_preset_id": "<класс_хостов>", "disk_size": "<размер_хранилища_в_байтах>", "disk_type_id": "<тип_диска>" }, "segment_host_count": "<количество_хостов-сегментов>", "segment_in_host": "<количество_сегментов_на_хост>", "restore_only": [ "<БД_и_таблица_1>", "<БД_и_таблица_2>", ... "<БД_и_таблица_N>" ] }
Где:
-
backup_id
— идентификатор резервной копии. Его можно запросить со списком резервных копий. -
time
— момент времени, на который нужно восстановить состояние кластера Greenplum®, в форматеyyyy-mm-ddThh:mm:ssZ
. По умолчанию кластер будет восстановлен в состояние, сохраненное в резервной копии. -
folder_id
— идентификатор каталога, где будет восстановлен кластер. Идентификатор можно запросить со списком каталогов в облаке. По умолчанию кластер будет восстановлен в тот же каталог, где находится резервная копия. -
name
— имя нового кластера. -
environment
— окружение:PRESTABLE
— для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.PRODUCTION
— для стабильных версий ваших приложений.
-
network_id
— идентификатор сети. -
config
— настройки кластера:-
zone_id
— зона доступности. -
subnet_id
— идентификатор подсети. -
assign_public_ip
— публичный доступ к хостам кластера:true
илиfalse
. -
master_resources
,segment_resources
— конфигурация хостов-мастеров и хостов-сегментов кластера:resource_preset_id
— класс хостов;disk_size
— размер диска в байтах;disk_type_id
— тип диска.
-
segment_host_count
— количество хостов-сегментов: от2
до32
. -
segment_in_host
— количество сегментов на хост. Максимальное значение этого параметра зависит от класса хостов. -
restore_only
— (опционально) список БД и таблиц, которые будут восстановлены из резервной копии. Поддерживаются форматы<БД>/<схема>/<таблица>
,<БД>/<таблица>
и<БД>
. Допускается использование подстановочного символа*
. Если не использовать этот параметр, кластер будет восстановлен целиком.
-
-
-
Воспользуйтесь вызовом ClusterService.Restore и выполните запрос, например, с помощью gRPCurl
: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 @ \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.greenplum.v1.ClusterService.Restore \ < body.json
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками VMware, Inc в США и/или других странах.