Назад | Перейти на главную страницу

MongoDB - эффективное резервное копирование

У меня есть приложение, работающее на Parse Server и еще один сервер, на котором работает MongoDB. Обе ВМ находятся под Azure (Виртуальные машины Ubuntu). Несколько недель назад я написал резервную копию БД bash скрипт, который запускает crontab раз в день, каждый день.

Вот сценарий:

#!/bin/bash

MONGO_DATABASE="db"
MONGO_HOST="127.0.0.1"
MONGO_PORT="portNo"
TIMESTAMP=`date +%d-%m-%Y--%H:%M:%S`
MONGODUMP_PATH="/usr/bin/mongodump"
BACKUPS_DIR="/datadrive/mongodb/backups/"
BACKUP_NAME="$TIMESTAMP"

# mongo admin --eval "printjson(db.fsyncLock())"
# $MONGODUMP_PATH -h $MONGO_HOST:$MONGO_PORT -d $MONGO_DATABASE
sudo $MONGODUMP_PATH -d $MONGO_DATABASE
# mongo admin --eval "printjson(db.fsyncUnlock())"

sudo mv dump $BACKUP_NAME
sudo tar -zcvf $BACKUPS_DIR/$BACKUP_NAME.tgz $BACKUP_NAME
sudo rm -rf $BACKUP_NAME
sudo find $BACKUPS_DIR/ -type f -mtime +0 -name '*.tgz' -delete

С тех пор я заметил огромное увеличение потребления ресурсов сервера, которое стоит вдвое больше, чем без системы резервного копирования!

Размер моей базы данных составляет около 7 ГБ и продолжает расти! Что мне делать, чтобы иметь систему резервного копирования, эффективную по ЦП или иным образом?

Что мне делать, чтобы иметь систему резервного копирования, эффективную по ЦП или иным образом?

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

Также вы можете запустить crontab в свободное время.