Примеры создания и восстановления резервных копий
В этой статье описываются примеры создания резервных копий в MongoDB. Резервное копирование обеспечивает безопасность данных и возможность их восстановления в случае сбоя системы или потери.
Мы рекомендуем выполнять ежедневное резервное копирование баз данных MongoDB и хранить копии за последнюю неделю.
Для создания и восстановления используются утилиты администрирования, которые устанавливаются вместе с MongoDB:
- Создание резервных копий — mongodump
- Восстановление резервных копий — mongorestore
Расположение утилит администрирования
Linux
Утилиты администрирования располагаются в каталоге, который добавляется в системный путь PATH, что делает их доступными для использования из командной строки CLI.
Обычно утилиты расположены в следующих директориях:
/usr/bin/
/usr/local/bin/

Windows Server
По умолчанию утилиты администрирования MongoDB не расположены в переменном окружении $PATH, поэтому нужно выполнить поиск утилит с помощью PowerShell.
Открыть PowerShell от имени администратора:
С помощью контекстного меню Пуск
- Нажмите правой кнопкой мыши на значке Пуск в левом нижнем углу экрана.
- Выберите «Windows PowerShell (администратор)» из контекстного меню.
С помощью меню Пуск
- Нажмите левой кнопкой мыши на значок Пуск в левом нижнем углу экрана.
- Пропишите
powershell
- Откройте PowerShell от имени «Администратора» комбинацией —
Ctrl + Shift + Enter
Выполнить поиск утилит администрирования:
$utilityPath = Get-ChildItem -Path "C:\" -Filter "mongodump.exe" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1; $utilityDirectory = $utilityPath.DirectoryName; cd $utilityDirectory
Если MongoDB и утилиты администрирования были установлены на нестандартный диск, нужно изменить путь для поиска в параметре -Path
После выполнения произойдет смена текущей рабочей директории на новую, в которой расположены утилиты.
Стандартная установка Пассворка (Docker, PowerShell)
Для Docker-сборки используются скрипты создания и восстановления баз данных в MongoDB, которые расположены в корневой директории установки Пассворка:
/<passwork>/db-backup.sh
/<passwork>/db-restore.sh
Для PowerShell-модуля используются функции создания и восстановления баз данных в MongoDB, запуск выполняется в PowerShell от имени администратора:
Backup-MongoDB
Restore-MongoDB
Примеры создания резервных копий в MongoDB
Перед выполнением команд нужно создать директорию, в которой будут расположены резервные копии MongoDB:
- Linux —
mkdir /backup/
- Windows Server —
mkdir C:\backup\
Одиночная установка без авторизации
- Linux
- Windows Server
mongodump --host localhost:27017 --archive=/backup/mongo-$(date "+%Y-%m-%d_%H:%M").dump
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
.\mongodump --host localhost:27017 --archive="C:\backup\mongo-$timestamp.dump"
Одиночная установка с авторизацией
Для примера используется пользователь MongoDB с данными:
- Логин — adminuser
- Пароль — password
- Linux
- Windows Server
mongodump --host localhost:27017 -u adminuser -p password --archive=/backup/mongo-$(date "+%Y-%m-%d_%H:%M").dump
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
.\mongodump --host localhost:27017 -u adminuser -p password --archive="C:\backup\mongo-$timestamp.dump"
Репликационный набор (replica set) без авторизации
- Linux
- Windows Server
mongodump --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 --archive=/backup/mongo-$(date "+%Y-%m-%d_%H:%M").dump
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
.\mongodump --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 --archive="C:\backup\mongo-$timestamp.dump"
Репликационный набор (replica set) с авторизацией
Для примера используется пользователь MongoDB с данными:
- Логин — adminuser
- Пароль — password
- Linux
- Windows Server
mongodump --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 -u adminuser -p password --archive=/backup/mongo-$(date "+%Y-%m-%d_%H:%M").dump
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
.\mongodump --host rs0/mongo.example.01:27017,mongo.example.02:27017,mongo.example.03:27017 -u adminuser -p password --archive="C:\backup\mongo-$timestamp.dump"
Примеры восстановления резервных копий в MongoDB
Одиночная установка без авторизации
- Linux
- Windows Server
mongorestore --host localhost:27017 --drop --archive=/backup/mongo-xxxx-xx-xx_xx:xx.dump
.\mongorestore --host localhost:27017 --drop --archive="C:\backup\mongo-xxxx-xx-xx_xx-xx.dump"