zoukankan      html  css  js  c++  java
  • MongoDB 定时备份

    一 、 创建MongoDB备份目录
    mkdir -p /home/frank/mongodb_bak/mongodb_bak_list
    mkdir -p /home/frank/mongodb_bak/mongodb_bak_now

    二 、新建MongoDB数据库备份脚本
    (/home/frank/mongodb_bak/MongoDB_bak.sh)

    #!/bin/bash
    #backup MongoDB
    #临时备份目录
    OUT_DIR=/home/frank/mongodb_bak/mongodb_bak_now
    
    #备份存放目录
    TAR_DIR=/home/frank/mongodb_bak/mongodb_bak_list
    #获取当前系统时间并格式化
    DATE=$(date +%Y_%m_%d)
    #最终保存的备份文件
    TAR_BAK="mongodb_bak_$DATE.tar.gz"
    
    cd $OUT_DIR
    rm -rf $OUT_DIR/*
    
    mkdir -p $OUT_DIR/$DATE
    #备份全部数据库
    mongodump -h dbhost -o $OUT_DIR/$DATE
    #压缩为tar.gz文件
    tar -zcvf $TAR_DIR/$TAR_BAK -C $OUT_DIR/ $DATE
    
    exit

    整库备份:
    mongodump -h dbhost -d dbname -o dbdirectory
    -h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
    -d:需要备份的数据库实例,例如:test
    -o:备份的数据存放位置,例如:c:datadump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。

    整库恢复:
    mongorestore -h dbhost -d dbname –directoryperdb dbdirectory
    -h:MongoDB所在服务器地址
    -d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
    –directoryperdb:备份数据所在位置,例如:c:datadump est,这里为什么要多加一个test,而不是备份时候的dump,读者自己查看提示吧!
    –drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!

    http://www.jb51.net/article/40285.htm

    三、修改文件属性, 使其可执行
    chmod +x MongoDB_bak.sh


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

    0 0 * * * /home/frank/mongodb_bak/MongoDB_bak.sh
    每天零点零分执行计划
    若没有root 权限不能修改/etc/crontab, 则为当前用户创建cron服务
    键入 crontab -e 编辑crontab服务文件
    0 0 * * * /home/frank/mongodb_bak/MongoDB_bak.sh

    http://www.blogjava.net/freeman1984/archive/2010/09/23/332715.html

    http://blog.chinaunix.net/uid-7552018-id-182133.html

  • 相关阅读:
    使用kerl安装erlang遇到的问题及解决办法-bak
    zip无法解压
    利用正则表达式统计访问频率
    windows开dump
    ftp禁止切换回上级目录
    windows组策略屏蔽
    对于超体的一点思考
    测试php语句执行时间
    php中点击下载按钮后待下载文件被清空
    mysql_fetch_assoc查询多行数据
  • 原文地址:https://www.cnblogs.com/zdfjf/p/6387277.html
Copyright © 2011-2022 走看看