MongoDB 数据全量备份

Posted 悟能的师兄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB 数据全量备份相关的知识,希望对你有一定的参考价值。

前情提要:
现在咱们的服务器,最难把握的就是数据运维,特别是生产环境,一旦数据丢失,你会花费很大的时间精力去处理,今天我们主要将是创建mongodb的自动备份服务,防止我们的数据丢失后无所适从。

第一步:创建好你的备份执行文件

我的路径,大家随意:/data/backup/mongodb

root@iZbp1gp1t778obaz5m8vk8Z mongodb]# vi backup-mongodb.sh 
#!/bin/bash

#待备份全量文件
SOURCE_DIR=/home/hn_home/docker/mongodb_data
#备份全量文件-放置文件夹
BACKUP_DIR=/data/backup/mongodb/data
#备份记录日志文件-放置文件夹
LOG_DIR=/data/backup/mongodb/logs


function log()
{
  echo "[ `date '+%Y-%m-%d %H:%M:%S'` ] $1"
}


# 备份
function main(){
    # d=`date "+%Y%m%d%H%M%S"`
    current_time=$(date +'%Y-%m-%d_%H%M%S')
    fname=${BACKUP_DIR}/backup_mongo_${current_time}.tgz
    echo "开始备份 ${fname}"
    tar -zcf ${fname} ${SOURCE_DIR}

    echo "备份到远程成功"


    echo "开始删除7天前的备份"
    find ${BACKUP_DIR} -type f  -atime +7 |xargs -t -i rm {}
    echo "删除完毕"
}


main >> ${LOG_DIR}/backup.log  2>&1 

第二步:配置好系统自动化备份 

root@iZbp1gp1t778obaz5m8vk8Z mongodb_data]# crontab -e

#每天早上两点自动备份mongodb的数据库数据
0 2 * * * sh /data/backup/mongodb/backup-mongodb.sh

第三步:执行下,看看咱们的备份结果

root@iZbp1gp1t778obaz5m8vk8Z mongodb]#
[root@iZbp1gp1t778obaz5m8vk8Z mongodb]#
[root@iZbp1gp1t778obaz5m8vk8Z mongodb]# ./backup-mongodb.sh
[root@iZbp1gp1t778obaz5m8vk8Z mongodb]#
[root@iZbp1gp1t778obaz5m8vk8Z mongodb]#
[root@iZbp1gp1t778obaz5m8vk8Z mongodb]# cd data/
[root@iZbp1gp1t778obaz5m8vk8Z data]#
[root@iZbp1gp1t778obaz5m8vk8Z data]# ll -h
total 2.2M
-rw-r--r-- 1 root root 2.2M Nov  4 15:24 backup_mongo_2021-11-04_152434.tgz 作者:悟能的师兄 https://www.bilibili.com/read/cv13855626 出处:bilibili

OK 咱们的MongoDB数据库自动化备份圆满解决!

以上是关于MongoDB 数据全量备份的主要内容,如果未能解决你的问题,请参考以下文章

linux自动代码增量备份 结合 全量备份

负责数据库的备份,实现周一 之 周六增量备份,周日全量备份

Lftp+Sftp传输总结

mysql全量备份与增量备份

mongodb小版本升级

mysql 全量备份和增量备份