美文网首页
mongodb 备份

mongodb 备份

作者: 流动码文 | 来源:发表于2018-11-30 16:36 被阅读8次

    一、创建mongodDB备份目录

    mkdir -p /data/mongodb_bak/mongodb_bak_now
    mkdir -p /data/mongodb_bak/mongodb_bak_list
    

    二、新建mongodb数据库备份脚本(/data/mongodb_bak/Mongodb_bak.sh)

    #!/bin/bash 
    #backup MongoDB 
      
    #mongodump命令路径 
    DUMP=/usr/local/mongodb/bin/mongodump
    #临时备份目录 
    OUT_DIR=/data/mongodb_bak/mongodb_bak_now
    #备份存放路径 
    TAR_DIR=/data/mongodb_bak/mongodb_bak_list
    #获取当前系统时间 
    DATE=`date +%Y_%m_%d` 
    #数据库账号 
    DB_USER=user 
    #数据库密码 
    DB_PASS=123 
    #DAYS=15代表删除15天前的备份,即只保留近15天的备份 
    DAYS=15 
    #最终保存的数据库备份文件 
    TAR_BAK="mongodb_bak_$DATE.tar.gz"
      
    cd $OUT_DIR 
    rm -rf $OUT_DIR/* 
    mkdir -p $OUT_DIR/$DATE 
    #备份全部数据库 
    $DUMP -h 15.62.32.112:27017 -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" -o $OUT_DIR/$DATE 
    #压缩为.tar.gz格式 
    tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE 
    #删除15天前的备份文件 
    find $TAR_DIR/ -mtime +$DAYS -delete 
      
    exit
    

    三、修改文件属性,使其可执行

    chmod +x Mongodb_bak.sh
    

    四、修改/etc/crontab,添加计划任务

    vi /etc/crontab
    #每星期六晚上20:30开始执行MongoDB数据库备份脚本
    30 20 * * 6 root /data/mongodb_bak/Mongodb_bak.sh
    

    五、附录:Mongodb数据库恢复

    #恢复全部数据库
    mongorestore -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" --noIndexRestore --dir /data/mongodb_bak/mongodb_bak_now/2016_12_17/
    #恢复单个数据库
    mongorestore -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" --noIndexRestore -d dbname --dir /data/mongodb_bak/mongodb_bak_now/2016_12_17/dbname
    

    有另外一篇文章写得不错:https://www.cnblogs.com/yaoxing/p/mongodb-backup-rules.html

    相关文章

      网友评论

          本文标题:mongodb 备份

          本文链接:https://www.haomeiwen.com/subject/pmbhcqtx.html