У меня есть приложение, работающее на 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 в свободное время.