Управление резервными копиями в Managed Service for ClickHouse®
Вы можете создавать резервные копии и восстанавливать кластеры из имеющихся резервных копий.
Также Managed Service for ClickHouse® ежедневно создает автоматическую резервную копию. Вы можете задать время начала резервного копирования и срок хранения для нее.
Создать резервную копию
Важно
Для создания резервной копии используется случайный хост-реплика. Если нет консистентности данных между хостами кластера, то его восстановление из резервной копии не гарантирует полного восстановления данных. Подробнее см. в разделе Резервные копии.
- Перейдите на страницу каталога
и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
- Нажмите кнопку Создать резервную копию.
Сервис начнет создавать резервную копию без дополнительного подтверждения.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать резервную копию кластера:
-
Посмотрите описание команды CLI для создания резервной копии ClickHouse®:
yc managed-clickhouse cluster backup --help
-
Запросите создание резервной копии, указав имя или идентификатор кластера:
yc managed-clickhouse cluster backup <имя_или_идентификатор_кластера>
Имя и идентификатор кластера можно получить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.backup и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/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/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.Backup
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Во время создания резервной копии производительность кластера может снижаться.
Восстановить кластер из резервной копии
Восстанавливая кластер из резервной копии, вы создаете новый кластер с данными из резервной копии. Если в облаке не хватает ресурсов для создания такого кластера, восстановиться из резервной копии не получится. Средняя скорость восстановления из резервной копии — 10 МБайт/с на каждое ядро БД.
Вы можете восстановить как отдельный шард, так и весь кластер целиком. Восстановить кластер целиком можно только с помощью CLI или API.
Перед началом работы убедитесь, что вашему аккаунту в Yandex Cloud назначена роль iam.serviceAccounts.user или выше. Она нужна, если вы восстанавливаете из резервной копии кластер с привязкой к сервисному аккаунту.
Важно
При восстановлении резервной копии в кластер без хостов ZooKeeper, все таблицы на движке семейства ReplicatedMergeTree будут преобразованы в простые MergeTree-таблицы. Данные в преобразованных таблицах сохраняются. Подробнее см. в документации ClickHouse®
Чтобы восстановить из резервной копии существующий кластер:
- Перейдите на страницу каталога
и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
- Нажмите на значок
для нужной резервной копии, затем нажмите Восстановить кластер. - Если необходимо, измените настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.
- Нажмите кнопку Восстановить кластер.
Чтобы восстановить из резервной копии удаленный ранее кластер:
- Перейдите на страницу каталога
и выберите сервис Managed Service for ClickHouse. - На панели слева выберите
Резервные копии. - Найдите нужную резервную копию по времени создания и идентификатору кластера. В колонке Идентификатор содержатся идентификаторы в формате
<идентификатор_кластера>:<идентификатор_резервной_копии>
. - Нажмите на значок
для нужной резервной копии, затем нажмите Восстановить кластер. - Если необходимо, измените настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.
- Нажмите кнопку Восстановить кластер.
Managed Service for ClickHouse® запустит операцию создания кластера из резервной копии.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы восстановить кластер из резервной копии:
-
Посмотрите описание команды CLI для восстановления кластера ClickHouse®:
yc managed-clickhouse cluster restore --help
-
Получите список доступных резервных копий кластеров ClickHouse®:
yc managed-clickhouse backup list
+--------------------------+---------------------+----------------------+---------------------+-------------+-------+-----------+ | ID | CREATED AT | SOURCE CLUSTER ID | STARTED AT | SHARD NAMES | SIZE | TYPE | +--------------------------+---------------------+----------------------+---------------------+-------------+-------+-----------+ | c9qud5etkq19********:... | 2023-12-08 00:09:17 | c9qud5etkq19******** | 2023-12-08 00:08:06 | shard1 | 30 KB | AUTOMATED | | ... | | | | | | | +--------------------------+---------------------+----------------------+---------------------+-------------+-------+-----------+
-
Чтобы восстановить отдельный шард, передайте идентификатор одной резервной копии:
yc managed-clickhouse cluster restore \ --backup-id=<идентификатор_резервной_копии> \ --name=<имя_кластера> \ --environment=<окружение> \ --network-name=<имя_сети> \ --host type=<тип_хоста>,` `zone-id=<зона_доступности>,` `subnet-id=<идентификатор_подсети> \ --clickhouse-disk-size=<размер_хранилища_ГБ> \ --clickhouse-disk-type=<тип_диска> \ --clickhouse-resource-preset=<класс_хоста>
Где:
-
--backup-id
— идентификатор резервной копии. -
--name
— имя кластера. -
--environment
— окружение:PRODUCTION
— для стабильных версий ваших приложений.PRESTABLE
— для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.
-
--network-name
— имя сети. -
--host
— параметры хоста:type
— тип хоста:clickhouse
илиzookeeper
.zone-id
— зона доступности.subnet-id
— идентификатор подсети. Необходимо указывать, если в выбранной зоне доступности создано две или больше подсетей.
-
--resource-preset
— класс хоста. -
--disk-size
— размер хранилища в гигабайтах. -
--disk-type
— тип диска:-
network-hdd
; -
network-ssd
; -
local-ssd
; -
network-ssd-nonreplicated
.
-
-
-
Чтобы восстановить весь кластер целиком, передайте идентификаторы резервных копий всех шардов кластера:
yc managed-clickhouse cluster restore \ --backup-id=<список_идентификаторов_резервных_копий_всех_шардов> \ ...
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Воспользуйтесь методом Cluster.restore и выполните запрос, например, с помощью cURL
:-
Создайте файл
body.json
и добавьте в него следующее содержимое:{ "backupId": "<идентификатор_резервной_копии>", "additionalBackupIds": [ <список_дополнительных_идентификаторов_резервных_копий> ], "name": "<имя_кластера>", "environment": "<окружение>", "configSpec": { <конфигурация_кластера> }, "hostSpecs": [ { "type": "<тип_хоста>", "zoneId": "<зона_доступности>", "subnetId": "<идентификатор_подсети>", "shardName": "<имя_шарда>", "assignPublicIp": <публичный_доступ_к_хосту> }, { <аналогичный_набор_настроек_для_хоста_2> }, { ... }, { <аналогичный_набор_настроек_для_хоста_N> } ], "folderId": "<идентификатор_каталога>", "networkId": "<идентификатор_сети>", "serviceAccountId": "<идентификатор_сервисного аккаунта>", "securityGroupIds": [ <список_идентификаторов_групп_безопасности> ], "deletionProtection": <защита_от_удаления> }
Где:
-
backupId
— идентификатор резервной копии.Будет восстановлен шард, для которого была создана эта резервная копия.
-
additionalBackupIds
— массив, содержащий список дополнительных идентификаторов резервных копий.Будут восстановлены шарды, для которых были созданы эти резервные копии. Чтобы восстановить весь кластер целиком, передайте идентификаторы резервных копий всех шардов кластера.
-
name
— имя кластера. -
environment
— окружение:PRODUCTION
— для стабильных версий ваших приложений.PRESTABLE
— для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.
-
configSpec
— конфигурация кластера ClickHouse®. Подробное описание параметров см. в описании метода Cluster.restore. -
hostSpecs
— массив, содержащий настройки создаваемых хостов. Один элемент массива содержит настройки для одного хоста и имеет следующую структуру:type
— тип хоста.zoneId
— зона доступности.subnetId
— идентификатор подсети.shardName
— имя шарда.assignPublicIp
— доступность хоста из интернета по публичному IP-адресу:true
илиfalse
.
-
folderId
— идентификатор каталога, в котором будет создан кластер. -
networkId
— идентификатор сети, в которой будет создан кластер. -
serviceAccountId
— идентификатор сервисного аккаунта. -
securityGroupIds
— массив, содержащий список идентификаторов групп безопасности. -
deletionProtection
— опция, которая управляет защитой кластера, его баз данных и пользователей от непреднамеренного удаления.Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
Идентификатор резервной копии можно запросить со списком резервных копий в каталоге.
-
-
Выполните запрос:
curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/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/
. -
Воспользуйтесь вызовом ClusterService/Restore и выполните запрос, например, с помощью gRPCurl
:-
Создайте файл
body.json
и добавьте в него следующее содержимое:{ "backup_id": "<идентификатор_резервной_копии>", "additional_backup_ids": [ <список_дополнительных_идентификаторов_резервных_копий> ], "name": "<имя_кластера>", "environment": "<окружение>", "config_spec": { <конфигурация_кластера> }, "host_specs": [ { "type": "<тип_хоста>", "zone_id": "<зона_доступности>", "subnet_id": "<идентификатор_подсети>", "shard_name": "<имя_шарда>", "assign_public_ip": <публичный_доступ_к_хосту> }, { <аналогичный_набор_настроек_для_хоста_2> }, { ... }, { <аналогичный_набор_настроек_для_хоста_N> } ], "folder_id": "<идентификатор_каталога>", "network_id": "<идентификатор_сети>", "service_account_id": "<идентификатор_сервисного аккаунта>", "security_group_ids": [ <список_идентификаторов_групп_безопасности> ], "deletion_protection": <защита_от_удаления> }
Где:
-
backup_id
— идентификатор резервной копии.Будет восстановлен шард, для которого была создана эта резервная копия.
-
additional_backup_ids
— массив, содержащий список дополнительных идентификаторов резервных копий.Будут восстановлены шарды, для которых были созданы эти резервные копии. Чтобы восстановить весь кластер целиком, передайте идентификаторы резервных копий всех шардов кластера.
-
name
— имя кластера. -
environment
— окружение:PRODUCTION
— для стабильных версий ваших приложений.PRESTABLE
— для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость новых версий с вашим приложением.
-
config_spec
— конфигурация кластера ClickHouse®. Подробное описание параметров см. в описании вызова ClusterService/Restore. -
host_specs
— массив, содержащий настройки создаваемых хостов. Один элемент массива содержит настройки для одного хоста и имеет следующую структуру:type
— тип хоста.zone_id
— зона доступности.subnet_id
— идентификатор подсети.shard_name
— имя шарда.assign_public_ip
— доступность хоста из интернета по публичному IP-адресу:true
илиfalse
.
-
folder_id
— идентификатор каталога, в котором будет создан кластер. -
network_id
— идентификатор сети, в которой будет создан кластер. -
service_account_id
— идентификатор сервисного аккаунта. -
security_group_ids
— массив, содержащий список идентификаторов групп безопасности. -
deletion_protection
— опция, которая управляет защитой кластера, его баз данных и пользователей от непреднамеренного удаления.Включенная защита от удаления не помешает подключиться вручную и удалить содержимое базы данных.
Идентификатор резервной копии можно запросить со списком резервных копий в каталоге.
-
-
Выполните запрос:
grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.Restore \ < body.json
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Получить список резервных копий
Чтобы получить список резервных копий кластера:
- Перейдите на страницу каталога
и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
Чтобы получить список всех резервных копий в каталоге:
- Перейдите на страницу каталога
и выберите сервис Managed Service for ClickHouse. - На панели слева выберите
Резервные копии.
В этих списках содержится следующая информация:
- Имя резервной копии.
- Шард-источник.
- Размер резервной копии.
- Тип резервной копии: автоматическая (
Automated
) или ручная (Manual
). - Время начала создания резервной копии по UTC (Coordinated Universal Time).
- Время окончания создания резервной копии по UTC.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить список резервных копий кластеров ClickHouse®, доступных в каталоге по умолчанию, выполните команду:
yc managed-clickhouse backup list
+--------------------------+---------------------+----------------------+---------------------+-------------+-------+-----------+
| ID | CREATED AT | SOURCE CLUSTER ID | STARTED AT | SHARD NAMES | SIZE | TYPE |
+--------------------------+---------------------+----------------------+---------------------+-------------+-------+-----------+
| c9qud5etkq19********:... | 2023-12-08 00:09:17 | c9qud5etkq19******** | 2023-12-08 00:08:06 | shard1 | 30 KB | AUTOMATED |
| c9qud5etkq19********:... | 2023-12-07 08:17:04 | c9qud5etkq19******** | 2023-12-07 08:15:54 | shard1 | 30 KB | MANUAL |
+--------------------------+---------------------+----------------------+---------------------+-------------+-------+-----------+
В выведенной таблице содержится следующая информация:
- Идентификатор резервной копии.
- Время окончания создания резервной копии по UTC (Coordinated Universal Time).
- Идентификатор кластера, для которого создавалась эта резервная копия.
- Время начала создания резервной копии по UTC.
- Имя шарда-источника.
- Размер резервной копии.
- Тип резервной копии: автоматическая (
AUTOMATED
) или ручная (MANUAL
).
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Чтобы получить список резервных копий кластера ClickHouse®:
-
Воспользуйтесь методом Cluster.listBackups и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>/backups'
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Чтобы получить список резервных копий всех кластеров ClickHouse® в каталоге:
-
Воспользуйтесь методом Backup.list и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/backups' \ --url-query folderId=<идентификатор_каталога>
Идентификатор каталога можно запросить со списком каталогов в облаке.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Чтобы получить список резервных копий кластера ClickHouse®:
-
Воспользуйтесь вызовом ClusterService/ListBackups и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.ListBackups
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Чтобы получить список резервных копий всех кластеров ClickHouse® в каталоге:
-
Воспользуйтесь вызовом BackupService/List и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/backup_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "folder_id": "<идентификатор_каталога>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.BackupService.List
Идентификатор каталога можно запросить со списком каталогов в облаке.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получить информацию о резервной копии
Чтобы получить информацию о резервной копии существующего кластера:
- Перейдите на страницу каталога
и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и выберите вкладку Резервные копии.
Чтобы получить информацию о резервной копии удаленного ранее кластера:
- Перейдите на страницу каталога
и выберите сервис Managed Service for ClickHouse. - На панели слева выберите
Резервные копии.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить данные о резервной копии кластера ClickHouse®, выполните команду:
yc managed-clickhouse backup get <идентификатор_резервной_копии>
Идентификатор резервной копии можно получить со списком резервных копий.
-
Получите 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-clickhouse/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/clickhouse/v1/backup_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "backup_id": "<идентификатор_резервной_копии>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.BackupService.Get
Идентификатор резервной копии можно запросить со списком резервных копий в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Задать время начала резервного копирования
В консоли управления
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы задать время начала резервного копирования, передайте нужное значение в формате HH:MM:SS
в аргументе --backup-window-start
команды изменения кластера:
yc managed-clickhouse cluster update <имя_или_идентификатор_кластера> \
--backup-window-start=<время_начала_резервного_копирования>
Идентификатор и имя кластера можно запросить со списком кластеров в каталоге.
-
Получите 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-clickhouse/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.backupWindowStart", "configSpec": { "backupWindowStart": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" } } }'
Где:
-
updateMask
— перечень изменяемых параметров в одну строку через запятую.В данном случае указан только один параметр:
configSpec.backupWindowStart
. -
configSpec.backupWindowStart
— время начала резервного копирования (UTC):hours
— часы в 24-часовом формате.minutes
— минуты.seconds
— секунды.nanos
— наносекунды.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.backup_window_start" ] }, "config_spec": { "backup_window_start": { "hours": "<часы>", "minutes": "<минуты>", "seconds": "<секунды>", "nanos": "<наносекунды>" } } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.Update
Где:
-
update_mask
— перечень изменяемых параметров в виде массива строкpaths[]
.В данном случае указан только один параметр:
config_spec.backup_window_start
. -
config_spec.backup_window_start
— время начала резервного копирования (UTC):hours
— часы в 24-часовом формате.minutes
— минуты.seconds
— секунды.nanos
— наносекунды.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Задать срок хранения автоматических резервных копий
В консоли управления
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы задать срок хранения автоматических резервных копий, передайте нужное значение в формате HH:MM:SS
в аргументе --backup-retain-period-days
команды изменения кластера:
yc managed-clickhouse cluster update <имя_или_идентификатор_кластера> \
--backup-retain-period-days=<срок_хранения_автоматических_резервных_копий_в_днях>
Идентификатор и имя кластера можно запросить со списком кластеров в каталоге.
Чтобы задать срок хранения автоматических резервных копий, воспользуйтесь методом REST API update для ресурса Cluster или вызовом gRPC API Cluster/Update и передайте в запросе:
- Идентификатор кластера в параметре
clusterId
. Его можно получить со списком кластеров в каталоге. - Новый срок хранения автоматических резервных копий (в днях) в параметре
configSpec.backupRetainPeriodDays
. - Список изменяемых полей конфигурации кластера в параметре
updateMask
(в данном случае —configSpec.backupRetainPeriodDays
).
Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask
(одной строкой через запятую).
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc