Базы данных
MongoDB
Примеры создания и восстановления резервных копий
26мин
в этой статье описываются примеры создания резервных копий в mongodb резервное копирование обеспечивает безопасность данных и возможность их восстановления в случае сбоя системы или потери мы рекомендуем выполнять ежедневное резервное копирование баз данных mongodb и хранить копии за последнюю неделю для создания и восстановления используются утилиты администрирования, которые устанавливаются вместе с mongodb создание резервных копий — mongodump восстановление резервных копий — mongorestore расположение утилит администрирования linux утилиты администрирования располагаются в каталоге, который добавляется в системный путь path , что делает их доступными для использования из командной строки cli обычно утилиты расположены в следующих директориях /usr/bin/ /usr/local/bin/ windows server по умолчанию утилиты администрирования mongodb не расположены в переменном окружении $path , поэтому нужно выполнить поиск утилит с помощью powershell открыть powershell от имени администратора нажать правой кнопкой мыши на значок пуск в левом нижнем углу экрана; выбрать windows powershell (администратор) в контекстном меню выполнить поиск утилит администрирования $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 mongodump host localhost 27017 archive=/backup/mongo $(date "+%y %m %d %h %m") dump windows server $timestamp = get date format "yyyy mm dd hh mm" \mongodump host localhost 27017 archive="c \backup\mongo $timestamp dump" одиночная установка с авторизацией для примера используется пользователь mongodb с данными логин — adminuser пароль — password linux mongodump host localhost 27017 u adminuser p password archive=/backup/mongo $(date "+%y %m %d %h %m") dump windows server $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 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 windows server $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 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 windows server $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 mongorestore host localhost 27017 drop archive=/backup/mongo xxxx xx xx xx\ xx dump windows server \mongorestore host localhost 27017 drop archive="c \backup\mongo xxxx xx xx xx xx dump" одиночная установка с авторизацией для примера используется пользователь mongodb с данными логин — adminuser пароль — password linux mongorestore host localhost 27017 u adminuser p password drop archive=/backup/mongo xxxx xx xx xx\ xx dump windows server \mongorestore host localhost 27017 u adminuser p password drop archive="c \backup\mongo xxxx xx xx xx xx dump" репликационный набор (replica set) без авторизации linux mongorestore host rs0/mongo example 01 27017,mongo example 02 27017,mongo example 03 27017 drop archive=/backup/mongo xxxx xx xx xx\ xx dump windows server \mongorestore host rs0/mongo example 01 27017,mongo example 02 27017,mongo example 03 27017 drop archive="c \backup\mongo xxxx xx xx xx xx dump" репликационный набор (replica set) с авторизацией для примера используется пользователь mongodb с данными логин — adminuser пароль — password linux mongorestore host rs0/mongo example 01 27017,mongo example 02 27017,mongo example 03 27017 u adminuser p password drop archive=/backup/mongo xxxx xx xx xx\ xx dump windows server \mongorestore host rs0/mongo example 01 27017,mongo example 02 27017,mongo example 03 27017 u adminuser p password drop archive="c \backup\mongo xxxx xx xx xx xx dump" отдельное восстановление базы данных пассворка описание вариант описывается на примере базовой установки компонентов mongodb возможно использование любого ранее описанного варианта, указав атрибут к команде восстановления пример восстановления linux mongorestore host localhost 27017 nsinclude=pwbox drop archive=/backup/mongo xxxx xx xx xx\ xx dump windows server \mongorestore host localhost 27017 nsinclude=pwbox drop archive="c \backup\mongo xxxx xx xx xx xx dump" после выполнения будет восстановлена только база данных пассворка из указанного файла резервной копии mongodb настройка резервного копирования по расписанию linux для настройки частоты создания резервных копий баз данных, рекомендуется использовать встроенный планировщик событий — сrontab более подробно о работе crontab и примерах его использования можно узнать в статье основные сведения о cron docid\ muk8gkcmsofe1y1bxz4am настройка сrontab для создания резервных копий должна выполняться на сервере, где доступна утилита администрирования mongodump windows server создать файл автоматизации с расширением ps1 и указать следующее \# получение текущего времени $timestamp = get date format "yyyy mm dd hh mm" \# создание резервной копии mongodb mongodump host localhost 27017 archive="c \backup\mongo $timestamp dump" обратите внимание если mongodb и утилиты администрирования были установлены на нестандартный диск, нужно изменить путь для поиска в параметре path ; перед запуском задачи в планировщике событий , нужно создать директорию, в которой будут расположены резервные копии mongodb открыть powershell от имени администратора нажать правой кнопкой мыши на значок пуск в левом нижнем углу экрана; выбрать windows powershell (администратор) в контекстном меню создать в планировщике задачу для создания резервных копий mongodb \# действие на запуск скрипта backup example ps1 с помощью powershell $action = new scheduledtaskaction execute "powershell exe" argument " file c \backup example ps1" \# выполнять каждый день в 02 00 ночи $trigger = new scheduledtasktrigger daily at "02 00am" \# параметры создаваемой задачи $settings = new scheduledtasksettingsset allowstartifonbatteries startwhenavailable hidden priority 5 \# создание задачи register scheduledtask action $action taskname "mongodb example backups" settings $settings trigger $trigger runlevel highest user "username" password "password" force обратите внимание нужно изменить названия и расположение запускаемого автоматизированного файла ps1 ; для выполнения фоновой задачи рекомендуется использовать учётную запись администратора если используется другой пользователь, нужно убедиться, что у него достаточно прав для выполнения всех действий