MongoDB backup plan

前端 未结 4 831
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-30 15:10

I want to switch from MySQL to MongoDB but great data losses (more than 1 hour) are not acceptable for me.

I need to have 3 backup plans:

  1. Hourly

相关标签:
4条回答
  • 2021-01-30 15:11

    Try this backup script if you want to create a backup from slave mongodb database to S3.

    1. DB host (secondary preferred as to avoid impacting primary performance)

      HOST='SomeHost/mongodbtest-slave'

    2. DB name DBNAME=***

    3. S3 bucket name BUCKET=*-backup

    4. Linux user account USER=ubuntu

    5. Current time TIME=/bin/date +%d-%m-%Y-%T

    6. Password PASSWORD=somePassword#!2*1

    7. Username USERNAME=someUsername

    8. Backup directory DEST=/home/ubuntu/tmp

    9. Tar file of backup directory TAR=$DEST/../$TIME.tar

    10. Create backup dir (-p to avoid warning if already exists) /bin/mkdir -p $DEST

    11. Log echo "Backing up $HOST/$DBNAME to s3://$BUCKET/ on $TIME";

    12. Dump from mongodb host into backup directory

    mongodump --port 27017 -d DBNAME -u USERNAME -p PASSWORD -o $DEST

    1. Create tar of backup directory /bin/tar cvf $TAR -C $DEST .

    2. Upload tar to s3 /usr/bin/aws s3 cp $TAR s3://$BUCKET/

    3. Remove tar file locally /bin/rm -f $TAR

    4. Remove backup directory /bin/rm -rf $DEST

    All done echo "Backup available at https://s3.amazonaws.com/$BUCKET/$TIME.tar

    You can use the steps above put them in a shell executable file and execute this at any interval using crontab commands.

    0 讨论(0)
  • 2021-01-30 15:16
    1. The fsync command flushes the data to disk. It is executed each 60 seconds by default, but can be configured using the --syncdelay command line parameter.

    2. The documentation on backups has some good pointers for daily and weekly backups. For the daily backup, a master-slave configuration seems like the best option, as it will only sync changes.

    3. For the weekly backup you can also use a master-slave configuration, or replication. Another option is the mongodump utility, which will back-up the entire database. It is capable of creating backups while the database is running, so you can run it on the main database or one of the slaves. You can also lock the slave before backing it up.

    0 讨论(0)
  • 2021-01-30 15:26

    May be you can use automongobackup .

    0 讨论(0)
  • 2021-01-30 15:28

    If you want to outsource the backup solution entirely, MongoDB Management Service takes snapshots every six hours. The default retention policy on the snapshots will allow you to get point-in-time restore for 24 hours, daily snapshots for a week, weekly snapshots for a month, and monthly snapshots for a year.

    This FAQ has the full retention policy.

    The backup service continually backs up your replica set by reading the oplog so the overhead is lower than full local periodic snapshots.

    0 讨论(0)
提交回复
热议问题