Управление резервными копиями в Yandex StoreDoc
Вы можете создавать резервные копии и восстанавливать кластеры из имеющихся резервных копий.
Также Yandex StoreDoc ежедневно создает автоматическую резервную копию. Вы можете задать время начала резервного копирования и срок хранения для нее.
Восстановить кластер из резервной копии
Технология Point-in-Time Recovery (PITR) позволяет восстановить состояние кластера на любой момент времени в интервале от создания самой старой резервной копии до архивации самой свежей коллекции oplog. Подробнее см. в разделе Резервные копии.
Например, если операция создания резервной копии завершилась 10.08.2020 в 12:00:00 UTC, текущая дата — 15.08.2020 19:00:00 UTC, а последняя коллекция oplog была сохранена 15.08.2020 в 18:50:00 UTC, кластер может быть восстановлен в любое свое состояние в промежутке времени с 10.08.2020 12:00:01 UTC до 15.08.2020 18:50:00 UTC включительно.
Важно
PITR не поддерживается для кластеров с включенным шардированием. Такие кластеры могут быть восстановлены только на момент создания выбранной резервной копии.
Восстанавливая кластер из резервной копии, вы создаете новый кластер с данными из резервной копии. Если в каталоге не хватает ресурсов для создания такого кластера, восстановиться из резервной копии не получится. Средняя скорость восстановления из резервной копии — 10 МБайт/с.
Для нового кластера необходимо задать все параметры, обязательные при создании, кроме типа кластера (резервную копию Yandex StoreDoc не получится восстановить как кластер PostgreSQL).
При восстановлении до состояния на текущий момент времени новый кластер будет отражать состояние:
- существующего кластера на момент восстановления;
- удаленного кластера на момент архивации последней коллекции oplog.
Перед началом работы назначьте вашему аккаунту в Yandex Cloud роль managed-mongodb.restorer или выше на каталог размещения резервной копии и каталог, где будет развернут новый кластер.
Чтобы восстановить из резервной копии существующий кластер:
-
Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. -
Нажмите на имя нужного кластера и выберите вкладку
Резервные копии. -
Нажмите на значок
нужной резервной копии и нажмите Восстановить кластер.Чтобы восстановить шардированный кластер, используйте шардированную резервную копию. Такие копии имеют больший размер.
-
Задайте настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.
-
Чтобы восстановить состояние кластера на требуемый момент времени после создания этой резервной копии, задайте нужное значение настройки Дата и время восстановления (UTC). Значение можно ввести вручную или выбрать из выпадающего календаря.
Если оставить настройку без изменений, кластер будет восстановлен в состояние на момент завершения создания резервной копии.
-
Нажмите кнопку Восстановить кластер.
Чтобы восстановить из резервной копии удаленный ранее кластер:
-
Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. -
На панели слева выберите
Резервные копии. -
Найдите нужную резервную копию по времени создания и идентификатору кластера. В колонке Идентификатор содержатся идентификаторы в формате
<идентификатор_кластера>:<идентификатор_резервной_копии>.Если вы хотите восстановить шардированный кластер, найдите шардированную резервную копию. Такие копии имеют больший размер.
-
Нажмите на значок
нужной резервной копии и нажмите Восстановить кластер. -
Задайте настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.
-
Чтобы восстановить состояние кластера на требуемый момент времени после создания этой резервной копии, задайте нужное значение настройки Дата и время восстановления (UTC). Значение можно ввести вручную или выбрать из выпадающего календаря.
Если оставить настройку без изменений, кластер будет восстановлен в состояние на момент завершения создания резервной копии.
-
Нажмите кнопку Восстановить кластер.
Yandex StoreDoc запустит операцию создания кластера из резервной копии.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы восстановить кластер из резервной копии:
-
Посмотрите описание команды CLI для восстановления кластера Yandex StoreDoc:
yc managed-mongodb cluster restore --help -
Получите список доступных резервных копий кластеров Yandex StoreDoc:
yc managed-mongodb backup listРезультат:
+--------------------------+---------------------+----------------------+---------------------+--------+-----------+ | ID | CREATED AT | SOURCE CLUSTER ID | STARTED AT | SIZE | TYPE | +--------------------------+---------------------+----------------------+---------------------+--------+-----------+ | c9qlk4v13uq7********:... | 2020-08-10 12:00:00 | c9qlk4v13uq7******** | 2020-08-10 11:55:17 | 3.3 KB | AUTOMATED | | ... | | +--------------------------+---------------------+----------------------+---------------------+--------+-----------+Время завершения создания резервной копии указано в столбце
CREATED ATсписка доступных резервных копий в форматеyyyy-mm-dd hh:mm:ss(2020-08-10 12:00:00в примере выше). Вы можете восстановить состояние кластера на любой момент времени, начиная от создания резервной копии. -
Выполните команду создания нового кластера из резервной копии (в примерах приведены только некоторые параметры).
Для нешардированного кластера:
yc managed-mongodb cluster restore \ --backup-id <идентификатор_резервной_копии> \ --recovery-target-timestamp <момент_времени> \ --mongodb-version <версия_Yandex_StoreDoc> \ --name <имя_нового_кластера> \ --environment <окружение> \ --network-name <имя_сети> \ --host zone-id=<зона_доступности>,` `subnet-id=<идентификатор_подсети> \ --mongod-resource-preset <класс_хоста> \ --mongod-disk-size <размер_хранилища_ГБ> \ --mongod-disk-type <тип_диска> \ --performance-diagnostics=<включить_диагностику>Для шардированного кластера:
yc managed-mongodb cluster restore \ --backup-id <идентификатор_резервной_копии> \ --recovery-target-timestamp <момент_времени> \ --mongodb-version <версия_Yandex_StoreDoc> \ --name <имя_нового_кластера> \ --environment <окружение> \ --network-name <имя_сети> \ --host zone-id=<зона_доступности>,` `subnet-id=<идентификатор_подсети>,` `type=mongod,` `shard-name=<имя_шарда> \ --mongod-resource-preset <класс_хоста> \ --mongod-disk-size <размер_хранилища_ГБ> \ --mongod-disk-type <тип_диска> \ --host zone-id=<зона_доступности>,` `subnet-id=<идентификатор_подсети>,` `type=<тип_хоста> \ ... --host zone-id=<зона_доступности>,` `subnet-id=<идентификатор_подсети>,` `type=<тип_хоста> \ --<тип_хоста>-resource-preset <класс_хоста> \ --<тип_хоста>-disk-size <размер_хранилища_ГБ> \ --<тип_хоста>-disk-type <тип_диска> \ --performance-diagnostics=<включить_диагностику>Где:
-
--backup-id— идентификатор резервной копии. Чтобы восстановить шардированный кластер, укажите идентификатор шардированной резервной копии. Такие копии имеют больший размер. Чтобы узнать идентификатор, получите список резервных копий в каталоге. -
--recovery-target-timestamp— момент времени, на который нужно восстановить состояние кластера Yandex StoreDoc, в формате UNIX time . Если параметр не задан, восстановится состояние кластера на момент завершения создания резервной копии. -
--environment— окружение:PRESTABLEилиPRODUCTION. -
--mongod-disk-type— тип диска:network-hdd,network-ssdилиnetwork-ssd-io-m3. -
--<тип_хоста>-resource-preset,--<тип_хоста>-disk-size,--<тип_хоста>-disk-type— параметры хостов, которые управляют шардированием в кластере.<тип_хоста>может принимать значения:mongoinfra,mongocfg,mongos. -
--performance-diagnostics— включить диагностику производительности кластера:trueилиfalse.
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ "folderId": "<идентификатор_каталога>", "backupId": "<идентификатор_резервной_копии>", "name": "<имя_нового_кластера>", "environment": "<окружение>", "networkId": "<идентификатор_сети>", "recoveryTargetSpec": { "timestamp": "<время>" }, "configSpec": { "version": "<версия_Yandex_StoreDoc>", "mongodb": { "<тип_хоста_Yandex_StoreDoc>": { "resources": { "resourcePresetId": "<класс_хостов>", "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" } }, ... "<тип_хоста_Yandex_StoreDoc>": { "resources": { "resourcePresetId": "<класс_хостов>", "diskSize": "<размер_хранилища_в_байтах>", "diskTypeId": "<тип_диска>" } } } }, "hostSpecs": [ { "zoneId": "<зона_доступности>", "subnetId": "<идентификатор_подсети>", "assignPublicIp": <разрешить_публичный_доступ_к_хосту>, "type": "<тип_хоста>", "shardName": "<имя_шарда>", "hidden": <скрыть_хост>, "secondaryDelaySecs": "<задержка_в_секундах>", "priority": "<приоритет_назначения_хоста_мастером>", "tags": "<метки_хоста>" } ] }Где:
-
folderId— идентификатор каталога. Его можно запросить со списком каталогов в облаке. -
backupId— идентификатор резервной копии. Чтобы восстановить шардированный кластер, укажите идентификатор шардированной резервной копии. Такие копии имеют больший размер. Чтобы узнать идентификатор, получите список резервных копий в каталоге. -
name— имя нового кластера. -
environment— окружение кластера:PRODUCTIONилиPRESTABLE. -
networkId— идентификатор сети, в которой будет размещен кластер. -
recoveryTargetSpec.timestamp— момент времени, на который нужно восстановить состояние кластера Yandex StoreDoc, в формате UNIX time . Если параметр не задан, восстановится состояние кластера на момент завершения создания резервной копии. -
configSpec— настройки кластера:-
version— версия Yandex StoreDoc: 5.0, 6.0 или 7.0. -
Тип хоста Yandex StoreDoc — зависит от типа шардирования. Доступные значения:
mongod,mongocfg,mongos,mongoinfra. Если кластер нешардированный, укажитеmongod.-
resources— ресурсы кластера:resourcePresetId— класс хостов.diskSize— размер диска в байтах.diskTypeId— тип диска.
-
-
-
hostSpecs— настройки хостов кластера в виде массива элементов. Каждый элемент соответствует отдельному хосту и имеет следующую структуру:zoneId— зона доступности.subnetId— идентификатор подсети.assignPublicIp— доступность хоста из интернета по публичному IP-адресу:trueилиfalse.type— тип хоста в шардированном кластере:MONGOD,MONGOINFRA,MONGOSилиMONGOCFG. Если кластер нешардированный, укажитеMONGOD.shardName— имя шарда в шардированном кластере.hidden— будет ли хост виден (false) или скрыт (true).secondaryDelaySecs— время отставания хоста от мастера.priority— приоритет назначения хоста мастером при выходе из строя основного мастера.tags— метки хоста.
-
-
Воспользуйтесь методом Cluster.Restore и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/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и добавьте в него следующее содержимое:{ "folder_id": "<идентификатор_каталога>", "backup_id": "<идентификатор_резервной_копии>", "name": "<имя_нового_кластера>", "environment": "<окружение>", "network_id": "<идентификатор_сети>", "recovery_target_spec": { "timestamp": "<время>" }, "config_spec": { "version": "<версия_Yandex_StoreDoc>", "mongodb": { "<тип_хоста_Yandex_StoreDoc>": { "resources": { "resource_preset_id": "<класс_хостов>", "disk_size": "<размер_хранилища_в_байтах>", "disk_type_id": "<тип_диска>" } }, ... "<тип_хоста_Yandex_StoreDoc>": { "resources": { "resource_preset_id": "<класс_хостов>", "disk_size": "<размер_хранилища_в_байтах>", "disk_type_id": "<тип_диска>" } } } }, "host_specs": [ { "zone_id": "<зона_доступности>", "subnet_id": "<идентификатор_подсети>", "assign_public_ip": <разрешить_публичный_доступ_к_хосту>, "type": "<тип_хоста>", "shard_name": "<имя_шарда>", "hidden": <скрыть_хост>, "secondary_delay_secs": "<задержка_в_секундах>", "priority": "<приоритет_назначения_хоста_мастером>", "tags": "<метки_хоста>" } ] }Где:
-
folder_id— идентификатор каталога. Его можно запросить со списком каталогов в облаке. -
backup_id— идентификатор резервной копии. Чтобы восстановить шардированный кластер, укажите идентификатор шардированной резервной копии. Такие копии имеют больший размер. Чтобы узнать идентификатор, получите список резервных копий в каталоге. -
name— имя нового кластера. -
environment— окружение кластера:PRODUCTIONилиPRESTABLE. -
network_id— идентификатор сети, в которой будет размещен кластер. -
recovery_target_spec.timestamp— момент времени, на который нужно восстановить состояние кластера Yandex StoreDoc, в формате UNIX time . Если параметр не задан, восстановится состояние кластера на момент завершения создания резервной копии. -
config_spec— настройки кластера:-
version— версия Yandex StoreDoc: 5.0, 6.0 или 7.0. -
Тип хоста Yandex StoreDoc — зависит от типа шардирования. Доступные значения:
mongod,mongocfg,mongos,mongoinfra. Если кластер нешардированный, укажитеmongod.-
resources— ресурсы кластера:resource_preset_id— класс хостов.disk_size— размер диска в байтах.disk_type_id— тип диска.
-
-
-
host_specs— настройки хостов кластера в виде массива элементов. Каждый элемент соответствует отдельному хосту и имеет следующую структуру:zone_id— зона доступности.subnet_id— идентификатор подсети.assign_public_ip— доступность хоста из интернета по публичному IP-адресу:trueилиfalse.type— тип хоста в шардированном кластере:MONGOD,MONGOINFRA,MONGOSилиMONGOCFG. Если кластер нешардированный, укажитеMONGOD.shard_name— имя шарда в шардированном кластере.hidden— будет ли хост виден (false) или скрыт (true).secondary_delay_secs— время отставания хоста от мастера.priority— приоритет назначения хоста мастером при выходе из строя основного мастера.tags— метки хоста.
-
-
Воспользуйтесь вызовом ClusterService.Restore и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.Restore \ < body.json -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Создать резервную копию
- Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. - Нажмите на имя нужного кластера и выберите вкладку
Резервные копии. - Нажмите кнопку Создать резервную копию.
Сервис начнет создавать резервную копию без дополнительного подтверждения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы создать резервную копию кластера:
-
Посмотрите описание команды CLI для создания резервной копии Yandex StoreDoc:
yc managed-mongodb cluster backup --help -
Запросите создание резервной копии, указав идентификатор или имя кластера:
yc managed-mongodb 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-mongodb/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/mongodb/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.BackupИдентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Во время создания резервной копии производительность кластера может снижаться.
Получить список резервных копий
Чтобы получить список резервных копий кластера:
- Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. - Нажмите на имя нужного кластера и выберите вкладку
Резервные копии.
Чтобы получить список всех резервных копий в каталоге:
- Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. - На панели слева выберите
Резервные копии.
В этих списках содержится следующая информация:
- Имя резервной копии.
- Шард-источник.
- Размер резервной копии.
- Тип резервной копии: автоматическая (
Automated) или ручная (Manual). - Время начала создания резервной копии по UTC (Coordinated Universal Time).
- Время окончания создания резервной копии по UTC.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы получить список резервных копий кластеров Yandex StoreDoc, доступных в каталоге по умолчанию, выполните команду:
yc managed-mongodb backup list
Результат:
+--------------------------+---------------------+----------------------+---------------------+--------+-----------+
| ID | CREATED AT | SOURCE CLUSTER ID | STARTED AT | SIZE | TYPE |
+--------------------------+---------------------+----------------------+---------------------+--------+-----------+
| c9qlk4v13uq7********:... | 2020-08-10 12:00:00 | c9qlk4v13uq7******** | 2020-08-10 11:55:17 | 3.3 KB | AUTOMATED |
| c9qpm90p3pcg********:... | 2020-08-09 22:01:04 | c9qpm90p3pcg******** | 2020-08-09 21:30:00 | 30 KB | MANUAL |
+--------------------------+---------------------+----------------------+---------------------+--------+-----------+
В выведенной таблице содержится следующая информация:
- Идентификатор резервной копии.
- Время окончания создания резервной копии по UTC (Coordinated Universal Time).
- Идентификатор кластера, для которого создавалась эта резервная копия.
- Время начала создания резервной копии по UTC.
- Размер резервной копии.
- Тип резервной копии: автоматическая (
AUTOMATED) или ручная (MANUAL).
-
Получите 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-mongodb/v1/clusters/<идентификатор_кластера>/backups'Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Чтобы получить список резервных копий всех кластеров в каталоге:
-
Воспользуйтесь методом Backup.List и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-mongodb/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/mongodb/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.ListBackupsИдентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
-
Чтобы получить список резервных копий всех кластеров в каталоге:
-
Воспользуйтесь вызовом BackupService.List и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/mongodb/v1/backup_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "folder_id": "<идентификатор_каталога>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.BackupService.ListИдентификатор каталога можно запросить со списком каталогов в облаке.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получить информацию о резервной копии
Чтобы получить информацию о резервной копии существующего кластера:
- Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. - Нажмите на имя нужного кластера и выберите вкладку
Резервные копии.
Чтобы получить информацию о резервной копии удаленного ранее кластера:
- Перейдите на страницу каталога
и выберите сервис Yandex StoreDoc. - На панели слева выберите
Резервные копии.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы получить данные о резервной копии кластера Yandex StoreDoc, выполните команду:
yc managed-mongodb 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-mongodb/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/mongodb/v1/backup_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "backup_id": "<идентификатор_резервной_копии>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.BackupService.GetИдентификатор резервной копии можно запросить со списком резервных копий.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Задать срок хранения автоматических резервных копий
В консоли управления
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы задать срок хранения автоматических резервных копий, передайте нужное значение в аргументе --backup-retain-period-days команды изменения кластера:
yc managed-mongodb cluster update <имя_или_идентификатор_кластера> \
--backup-retain-period-days=<срок_хранения_в_днях>
Допустимые значения: от 7 до 35. Значение по умолчанию — 7.
Идентификатор и имя кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации кластера Yandex StoreDoc см. в документации провайдера Terraform.
-
Добавьте к описанию кластера Yandex StoreDoc блок
backup_retain_period_daysв секцииcluster_config:resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" { ... cluster_config { ... backup_retain_period_days = <срок_хранения_в_днях> } ... } ...Где
backup_retain_period_days— срок хранения автоматических резервных копий.Допустимые значения: от
7до35. Значение по умолчанию —7. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Yandex StoreDoc:
- создание, в т. ч. путем восстановления из резервной копии, — 30 минут;
- изменение — 60 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts, например:resource "yandex_mdb_mongodb_cluster" "<имя_кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа } } -
-
Получите 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-mongodb/v1/clusters/<идентификатор_кластера>' \ --data '{ "updateMask": "configSpec.backupRetainPeriodDays", "configSpec": { "backupRetainPeriodDays": <время_хранения_резервных_копий_в_днях> } }'Где:
-
updateMask— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
configSpec.backupRetainPeriodDays— срок хранения автоматических резервных копий в днях.Допустимые значения — от
7до35. Значение по умолчанию —7.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите 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/mongodb/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "config_spec.backup_retain_period_days" ] }, "config_spec": { "backup_retain_period_days": <время_хранения_резервных_копий_в_днях> } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.mongodb.v1.ClusterService.UpdateГде:
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].В данном случае передается только один параметр.
-
config_spec.backup_retain_period_days— срок хранения автоматических резервных копий в днях.Допустимые значения — от
7до35. Значение по умолчанию —7.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Примеры
Создайте новый кластер Yandex StoreDoc из резервной копии с тестовыми характеристиками:
- Резервная копия для восстановления:
c9qlk4v13uq7********:.... - Момент времени, на который нужно восстановить:
1597060810(2020-08-10 12:00:10). - Версия:
6.0. - Имя нового кластера:
mynewmg. - Окружение:
PRODUCTION. - Сеть:
default. - Один хост класса
s2.microв зоне доступностиru-central1-aи в подсетиb0rcctk2rvtr********. - Хранилище на сетевых SSD-дисках (
network-ssd) размером 20 ГБ. - С базами данных и пользователями, которые существовали в кластере на момент восстановления.
Выполните следующую команду:
yc managed-mongodb cluster restore \
--backup-id c9qlk4v13uq7********:... \
--recovery-target-timestamp 1597060810 \
--mongodb-version 6.0 \
--name mynewmg \
--environment PRODUCTION \
--network-name default \
--host zone-id=ru-central1-a,subnet-id=b0rcctk2rvtr******** \
--mongod-resource-preset s2.micro \
--mongod-disk-size 20 \
--mongod-disk-type network-ssd