本分脚本:

!/bin/bash
#备份文件执行路径 which mongodump
DUMP=
#临时备份目录
OUT_DIR=
#本分存放目录
TAR_DIR=
#获取当前系统时间==> 2016_04_11 
DATE=`date +%Y_%m_%d`
#数据库账号
DB_USER=
#数据库密码
DB_PASS=
#保留最近N天的备份
DAYS=
#最后保存的数据库备份名称
TAR_BAK=“mongod_bak_$DATE.tar.gz” #进入临时备份目录
cd $OUT_DIR
#删除临时备份目录中的文件 #rm -rf $OUT_DIR/*
mv $OUT_DIR/* /tmp/ 
#本次临时备份目录
mkdir -p $OUT_DIR/$DATE
#备份全部数据库
#mongoexport -d foobar -c persons -o D:/persons.json
#mongodump --host 127.0.0.1:27017 -d foobar -o d:/foobar $DUMP -u $DB_USER -p $DB_PASS -o $OUT_DIR/$DATE
#压缩
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
#删除N天前的备份文件
find $TAR_DIR/ -mtime +$DAYS -delete

恢复脚本:

#!/bin/bash
###########################
#恢复mongodb 数据库
#author:similarface
#date:2016-04-26
#email:similarface@outlook.com
###########################
#恢复数据库的名称 如果不书写恢复的数据库名称 会删除数据库的所有dbs然后恢复,给了就会重新生成加dateflag的库
RECONVERDBNAME=cube_test_
#恢复命令
RECONVERYBIN=/usr/local/mongodb/bin/mongorestore
#备份目录
BACKUPBASEDIR=/BAK/mongodbak/current
#存放的老数据
BACKUPBASEOLDDIR=/BAK/mongodbak/olddata/
#解压所文件的目录
BACKUPBASEEXTRACT=/BAK/mongodbak/extract/ for file in $BACKUPBASEDIR/*
do
if test -f $file
then
#压缩文件的文件名 去除了绝对路径
tarfilename=${file##*/}
#获取时间标签 mongod_bak_DATE.tar.gz 就是这儿的DATE的值
dateflag=${tarfilename:11:10}
#解压文件到指定的目录
tar -xf $file -C ${BACKUPBASEEXTRACT}
if [[ $? -eq 0 ]];then
echo "解压缩成功,备份文件有效!"
else
echo "解压缩失败,备份文件有可能无效,请检查!"
exit 0
fi
#获取解压缩的绝对路径
gunzipdir=${BACKUPBASEEXTRACT}/home/davy/mongoBak/${dateflag}/
#进行数据库的恢复
if [ -z "$RECONVERDBNAME" ];then
${RECONVERYBIN} --drop ${gunzipdir} 2> /tmp/mongoright${dateflag}.log >>/tmp/mongoerr${dateflag}.err
else
${RECONVERYBIN} --db ${RECONVERDBNAME}${dateflag} ${gunzipdir}/cube_test 2> /tmp/mongoright${dateflag}.log >>/tmp/mongoerr${dateflag}.err
fi
if [[ $? -eq 0 ]];then
echo "数据库恢复成功,查看恢复日志/tmp/mongoright${dateflag}.log."
else
echo "数据库恢复失败,查看错误日志/tmp/mongoerr${dateflag}.err."
fi
rm -rf ${BACKUPBASEEXTRACT}/*
if [[ $? -eq 0 ]];then
echo "清除压缩文件成功."
else
echo "清除压缩文件失败\n."
fi
#将恢复后的文件放在olddata下去
mv ${BACKUPBASEDIR}/* ${BACKUPBASEOLDDIR}
fi
done

Mongodb之备份恢复脚本的更多相关文章

  1. mongodb数据库备份恢复-windows系统

    备份语法: mongodump命令脚本语法如下: >mongodump -h dbhost -d dbname -o dbdirectory -h: MongDB所在服务器地址,例如:127.0 ...

  2. Mongodb数据备份恢复

    Mongodb数据备份恢复 一.MongoDB数据库导入导出操作 1.导出数据库 twangback为备份的文件夹 命令: mongodump -h 127.0.0.1[服务器IP] -d advie ...

  3. mongodb 的备份恢复导入与导出

    导入导出 use hndb; db.s.save({name:'李四',age:18,score:80,address:'郑州'}); db.s.save({name:'李三',age:8,score ...

  4. mongodb数据库备份恢复

    MongoDB数据文件备份与恢复   备份与恢复数据对于管理任何数据存储系统来说都是非常重要的.   1.冷备份与恢复——创建数据文件的副本(前提是要停止MongoDB服务器),也就是直接copy  ...

  5. Centos 8 上定时备份Gitlab ,脚本实现定时备份,备份恢复

    定时备份 要求 为了能够备份和恢复,请确保你的系统上安装了Rsync yum install rsync -y 配置备份目标机器免密认证 执行ssh-keygen -t rsa 生成私钥和公钥 ssh ...

  6. postgresql 和 mysql 数据库备份恢复以及时区问题

    概要 postgesql 12 备份/恢复脚本 时区设置 mysql 5.6 备份/恢复脚本 时区设置 概要 postgresql 和 mysql 是最常用的 2 种开源关系数据库, 很多项目也会优先 ...

  7. 010.MongoDB备份恢复

    一 MongoDB备份 1.1 备份概述 mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoi ...

  8. Mongodb的备份,恢复,导入与导出(cmd命令行实现)

    要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下命令均在cmd ...

  9. MongoDB学习(三)数据导入导出及备份恢复

    这几天想着公司要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下 ...

随机推荐

  1. poj 3250 Bad Hair Day

    Bad Hair Day Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 21084   Accepted: 7202 Des ...

  2. sql2008游标FORWARD_ONLY STATIC 的使用方式

    CREATE TABLE #xms_staff_department ( id int, name varchar(128), parent_id int, parent_path varchar(5 ...

  3. Java中Collections的sort方法和Comparable与Comparator的比较

    一.Comparable 新建Student1类,类实现Comparable接口,并重写compareTo方法 public class Student1 implements Comparable& ...

  4. Algorithm | Random

    随机生成[0,n)中不重复的m个数. class Random { public: Random(int n, int m):n(n), m(m) {} void generate() { srand ...

  5. luogu P1027 Car的旅行路线

    题目描述 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游.她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一条笔直的高速铁路,第I个城市中高速铁路了的单位 ...

  6. SELinux下更改mysql端口

    默认情况下 mysql更改端口后是不能通过selinux的 提示启动错误,那么首先就要看mysql的错误日志 可是我不知道mysql错误日志的位置 首先,更改selinux的模式为passive 然后 ...

  7. SQL-基础学习4--聚集函数:AVG(),COUNT(),MAX(),MIN(),SUM();聚集不同值:DISTINCT

    第九课 9.1 聚集函数(对某些行运行的函数,计算并返回一个值) 我们经常需要汇总数据而不用把它们实际检索出来,为此SQL提供了专门的函数.使用这些函数,SQL查询可用于检索数据,以便分析和报表生成. ...

  8. 计算机视觉和模式识别领域SCI期刊介绍

    原帖地址: http://blog.sciencenet.cn/blog-370458-750306.html 关于计算机视觉和模式识别领域的期刊并不是很多,下面我收集了一些该领域的代表性期刊,并介绍 ...

  9. 转: IO设计模式:Reactor和Proactor对比

    转: https://segmentfault.com/a/1190000002715832 平时接触的开源产品如Redis.ACE,事件模型都使用的Reactor模式:而同样做事件处理的Proact ...

  10. 分层架构web容器的配置安全

    转自:http://hi.baidu.com/shineo__o/item/7520d54c24d234c71081da82 /ps:本以为这是一个偶然配置失误造成的问题,但最近几天无聊时测试发现,有 ...