База данных
MongoDB

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

27min

Описание

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

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

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

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

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

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

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

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

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

PowerShell


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

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

PowerShell


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

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

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

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

  • Linux — mkdir /backup/
  • Windows Server — mkdir 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

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

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

Windows Server

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

PowerShell


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

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

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

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

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

PowerShell


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

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