MongoDB - 高效备份

MongoDB - 高效备份

我有一个应用程序在一台服务器上运行,Parse Server另一台服务器上运行 MongoDB。两个虚拟机都在Azure(Ubuntu VM) 下。几周前,我编写了一个数据库备份脚本,每天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

从那时起,我注意到服务器的资源消耗大幅增加,比没有备份系统时成本增加了一倍!

我的数据库大小约为 7GB 并且还在增长!我应该怎么做才能拥有一个 CPU 或其他方面高效的备份系统?

答案1

我应该怎么做才能拥有一个 CPU 或其他方面高效的备份系统?

也许你可以部署 Mongodb副本集,然后使用另一台虚拟机运行备份 crontab。

另外,您可以在空闲时间运行 crontab。

相关内容