Управление резервными копиями в Managed Service for MongoDB
Вы можете создавать резервные копии и восстанавливать кластеры из имеющихся резервных копий.
Также Managed Service for MongoDB ежедневно создает автоматическую резервную копию. Вы можете задать время начала резервного копирования и срок хранения для нее.
Восстановить кластер из резервной копии
Технология 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 МБайт/с.
Для нового кластера необходимо задать все параметры, обязательные при создании, кроме типа кластера (резервную копию MongoDB не получится восстановить как кластер PostgreSQL).
При восстановлении до состояния на текущий момент времени новый кластер будет отражать состояние:
- существующего кластера на момент восстановления;
- удаленного кластера на момент архивации последней коллекции oplog.
Чтобы восстановить из резервной копии существующий кластер:
-
Перейдите на страницу каталога
и выберите сервис Managed Service for MongoDB. -
Нажмите на имя нужного кластера и выберите вкладку
Резервные копии. -
Нажмите на значок
нужной резервной копии и нажмите Восстановить кластер. -
Задайте настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.
-
Чтобы восстановить состояние кластера на требуемый момент времени после создания этой резервной копии, задайте нужное значение настройки Дата и время восстановления (UTC). Значение можно ввести вручную или выбрать из выпадающего календаря.
Если оставить настройку без изменений, кластер будет восстановлен в состояние на момент завершения создания резервной копии.
-
Нажмите кнопку Восстановить кластер.
Чтобы восстановить из резервной копии удаленный ранее кластер:
-
Перейдите на страницу каталога
и выберите сервис Managed Service for MongoDB. -
На панели слева выберите
Резервные копии. -
Найдите нужную резервную копию по времени создания и идентификатору кластера. В колонке Имя содержатся идентификаторы в формате
<идентификатор_кластера>:<идентификатор_резервной_копии>
. -
Нажмите на значок
нужной резервной копии и нажмите Восстановить кластер. -
Задайте настройки нового кластера. В списке Каталог можно выбрать каталог для нового кластера.
-
Чтобы восстановить состояние кластера на требуемый момент времени после создания этой резервной копии, задайте нужное значение настройки Дата и время восстановления (UTC). Значение можно ввести вручную или выбрать из выпадающего календаря.
Если оставить настройку без изменений, кластер будет восстановлен в состояние на момент завершения создания резервной копии.
-
Нажмите кнопку Восстановить кластер.
Managed Service for MongoDB запустит операцию создания кластера из резервной копии.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы восстановить кластер из резервной копии:
-
Посмотрите описание команды CLI для восстановления кластера MongoDB:
yc managed-mongodb cluster restore --help
-
Получите список доступных резервных копий кластеров MongoDB:
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 <версия_MongoDB> \ --name <имя_нового_кластера> \ --environment <окружение> \ --network-name <имя_сети> \ --host zone-id=<зона_доступности>,` `subnet-id=<идентификатор_подсети> \ --mongod-resource-preset <класс_хоста> \ --mongod-disk-size <размер_хранилища_ГБ> \ --mongod-disk-type <тип_диска> \ --performance-diagnostics=<включить_диагностику>
Где:
-
--recovery-target-timestamp
— момент времени, на который нужно восстановить состояние кластера MongoDB, в формате UNIX time . Если параметр не задан, восстановится состояние кластера на момент завершения создания резервной копии. -
--environment
— окружение:PRESTABLE
илиPRODUCTION
. -
--mongod-disk-type
— тип диска:network-hdd
илиnetwork-ssd
. -
--performance-diagnostics
— включить диагностику производительности кластера:true
илиfalse
.
-
Чтобы восстановить из резервной копии существующий кластер, воспользуйтесь методом REST API restore для ресурса Cluster или вызовом gRPC API ClusterService/Restore и передайте в запросе:
- Идентификатор требуемой резервной копии в параметре
backupId
. Чтобы узнать идентификатор, получите список резервных копий в кластере. - Имя нового кластера, который будет содержать восстановленные из резервной копии данные, в параметре
name
. Имя кластера должно быть уникальным в рамках каталога.
В параметре recoveryTargetSpec.timestamp
укажите момент времени, на который нужно восстановить состояние кластера MongoDB, в формате UNIX time
Создать резервную копию
- Перейдите на страницу каталога
и выберите сервис Managed Service for MongoDB. - Нажмите на имя нужного кластера и выберите вкладку
Резервные копии. - Нажмите кнопку Создать резервную копию.
Сервис начнет создавать резервную копию без дополнительного подтверждения.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать резервную копию кластера:
-
Посмотрите описание команды CLI для создания резервной копии MongoDB:
yc managed-mongodb cluster backup --help
-
Запросите создание резервной копии, указав идентификатор или имя кластера:
yc managed-mongodb cluster backup <имя_или_идентификатор_кластера>
Идентификатор и имя кластера можно получить со списком кластеров.
Чтобы создать резервную копию, воспользуйтесь методом REST API backup для ресурса Cluster или вызовом gRPC API ClusterService/Backup и передайте в запросе идентификатор кластера в параметре clusterId
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
Важно
Во время создания резервной копии производительность кластера может снижаться.
Получить список резервных копий
Чтобы получить список резервных копий кластера:
- Перейдите на страницу каталога
и выберите сервис Managed Service for MongoDB. - Нажмите на имя нужного кластера и выберите вкладку
Резервные копии.
Чтобы получить список всех резервных копий в каталоге:
- Перейдите на страницу каталога
и выберите сервис Managed Service for MongoDB. - На панели слева выберите
Резервные копии.
В этих списках содержится следующая информация:
- Имя резервной копии.
- Шард-источник.
- Размер резервной копии.
- Тип резервной копии: автоматическая (
Automated
) или ручная (Manual
). - Время начала создания резервной копии по UTC (Coordinated Universal Time).
- Время окончания создания резервной копии по UTC.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить список резервных копий кластеров MongoDB, доступных в каталоге по умолчанию, выполните команду:
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
).
Чтобы получить список резервных копий кластера, воспользуйтесь методом REST API listBackups для ресурса Cluster или вызовом gRPC API ClusterService/ListBackups и передайте в запросе идентификатор кластера в параметре clusterId
.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
Чтобы получить список резервных копий всех кластеров Managed Service for MongoDB в каталоге, воспользуйтесь методом REST API list для ресурса Backup или вызовом gRPC API BackupService/List и передайте в запросе идентификатор каталога в параметре folderId
.
Получить информацию о резервной копии
Чтобы получить информацию о резервной копии существующего кластера:
- Перейдите на страницу каталога
и выберите сервис Managed Service for MongoDB. - Нажмите на имя нужного кластера и выберите вкладку
Резервные копии.
Чтобы получить информацию о резервной копии удаленного ранее кластера:
- Перейдите на страницу каталога
и выберите сервис Managed Service for MongoDB. - На панели слева выберите
Резервные копии.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить данные о резервной копии кластера MongoDB, выполните команду:
yc managed-mongodb backup get <идентификатор_резервной_копии>
Идентификатор резервной копии можно получить со списком резервных копий.
Чтобы получить информацию о резервной копии, воспользуйтесь методом REST API get для ресурса Backup или вызовом gRPC API BackupService/Get и передайте в запросе идентификатор резервной копии в параметре backupId
.
Чтобы узнать идентификатор, получите список резервных копий.
Примеры
Создайте новый кластер Managed Service for MongoDB из резервной копии с тестовыми характеристиками:
- Резервная копия для восстановления:
c9qlk4v13uq7********:...
. - Момент времени, на который нужно восстановить:
1597060810
(2020-08-10 12:00:10
). - Версия:
5.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 5.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