База данных
MongoDB

Примеры создания и восстановления резервных копий

26min

В этой статье описываются примеры создания резервных копий в MongoDB. Резервное копирование обеспечивает безопасность данных и возможность их восстановления в случае сбоя системы или потери.

Мы рекомендуем выполнять ежедневное резервное копирование баз данных MongoDB и хранить копии за последнюю неделю.

Для создания и восстановления используются утилиты администрирования, которые устанавливаются вместе с MongoDB:

  • Создание резервных копий — mongodump
  • Восстановление резервных копий — mongorestore

Расположение утилит администрирования

По умолчанию утилиты администрирования MongoDB не расположены в переменном окружении $PATH, поэтому нужно выполнить поиск утилит с помощью PowerShell.

Открыть PowerShell от имени администратора:

  • Нажать правой кнопкой мыши на значок Пуск в левом нижнем углу экрана;
  • Выбрать Windows PowerShell (администратор) в контекстном меню.

Выполнить поиск утилит администрирования:

PowerShell


Если MongoDB и утилиты администрирования были установлены на нестандартный диск, нужно изменить путь для поиска в параметре -Path

После выполнения произойдет смена текущей рабочей директории на новую, в которой расположены утилиты.

Для Docker-сборки используются скрипты создания и восстановления баз данных в MongoDB, которые расположены в корневой директории установки Пассворка:

  • /<passwork>/db-backup.sh
  • /<passwork>/db-restore.sh

Для PowerShell-модуля используются функции создания и восстановления баз данных в MongoDB, запуск выполняется в PowerShell от имени администратора:

  • Backup-MongoDB
  • Restore-MongoDB

Примеры создания резервных копий в MongoDB

Перед выполнением команд нужно создать директорию, в которой будут расположены резервные копии MongoDB:

  • Linuxmkdir /backup/
  • Windows Servermkdir C:\backup\

Одиночная установка без авторизации

Linux

Shell


Windows Server

PowerShell


Одиночная установка с авторизацией

Для примера используется пользователь MongoDB с данными:

  • Логин — adminuser
  • Пароль — password

Linux

Shell


Windows Server

PowerShell


Репликационный набор (replica set) без авторизации

Linux

Shell


Windows Server

PowerShell


Репликационный набор (replica set) с авторизацией

Для примера используется пользователь MongoDB с данными:

  • Логин — adminuser
  • Пароль — password

Linux

Shell


Windows Server

PowerShell


Примеры восстановления резервных копий в MongoDB

Одиночная установка без авторизации

Linux

Shell


Windows Server

PowerShell


Одиночная установка с авторизацией

Для примера используется пользователь MongoDB с данными:

  • Логин — adminuser
  • Пароль — password

Linux

Shell


Windows Server

PowerShell


Репликационный набор (replica set) без авторизации

Linux

Shell


Windows Server

PowerShell


Репликационный набор (replica set) с авторизацией

Для примера используется пользователь MongoDB с данными:

  • Логин — adminuser
  • Пароль — password

Linux

Shell


Windows Server

PowerShell


Отдельное восстановление базы данных Пассворка

Описание

Вариант описывается на примере базовой установки компонентов MongoDB. Возможно использование любого ранее описанного варианта, указав атрибут к команде восстановления.

Пример восстановления

Linux

Shell


Windows Server

PowerShell


После выполнения будет восстановлена только база данных Пассворка из указанного файла резервной копии MongoDB

Настройка резервного копирования по расписанию

Linux

Для настройки частоты создания резервных копий баз данных, рекомендуется использовать встроенный планировщик событий — Сrontab. Более подробно о работе Crontab и примерах его использования можно узнать в статье Основные сведения о Cron

Настройка Сrontab для создания резервных копий должна выполняться на сервере, где доступна утилита администрирования mongodump

Windows Server

Создать файл автоматизации с расширением .ps1 и указать следующее:

PowerShell


Обратите внимание:

  • Если MongoDB и утилиты администрирования были установлены на нестандартный диск, нужно изменить путь для поиска в параметре -Path;
  • Перед запуском задачи в Планировщике событий, нужно создать директорию, в которой будут расположены резервные копии MongoDB.

Открыть PowerShell от имени администратора:

  • Нажать правой кнопкой мыши на значок Пуск в левом нижнем углу экрана;
  • Выбрать Windows PowerShell (администратор) в контекстном меню.

Создать в Планировщике задачу для создания резервных копий MongoDB:

PowerShell


Обратите внимание:

  • Нужно изменить названия и расположение запускаемого автоматизированного файла .ps1;
  • Для выполнения фоновой задачи рекомендуется использовать учётную запись администратора. Если используется другой пользователь, нужно убедиться, что у него достаточно прав для выполнения всех действий.