Mongodb之备份恢复脚本
本分脚本:
!/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之备份恢复脚本的更多相关文章
- mongodb数据库备份恢复-windows系统
备份语法: mongodump命令脚本语法如下: >mongodump -h dbhost -d dbname -o dbdirectory -h: MongDB所在服务器地址,例如:127.0 ...
- Mongodb数据备份恢复
Mongodb数据备份恢复 一.MongoDB数据库导入导出操作 1.导出数据库 twangback为备份的文件夹 命令: mongodump -h 127.0.0.1[服务器IP] -d advie ...
- mongodb 的备份恢复导入与导出
导入导出 use hndb; db.s.save({name:'李四',age:18,score:80,address:'郑州'}); db.s.save({name:'李三',age:8,score ...
- mongodb数据库备份恢复
MongoDB数据文件备份与恢复 备份与恢复数据对于管理任何数据存储系统来说都是非常重要的. 1.冷备份与恢复——创建数据文件的副本(前提是要停止MongoDB服务器),也就是直接copy ...
- Centos 8 上定时备份Gitlab ,脚本实现定时备份,备份恢复
定时备份 要求 为了能够备份和恢复,请确保你的系统上安装了Rsync yum install rsync -y 配置备份目标机器免密认证 执行ssh-keygen -t rsa 生成私钥和公钥 ssh ...
- postgresql 和 mysql 数据库备份恢复以及时区问题
概要 postgesql 12 备份/恢复脚本 时区设置 mysql 5.6 备份/恢复脚本 时区设置 概要 postgresql 和 mysql 是最常用的 2 种开源关系数据库, 很多项目也会优先 ...
- 010.MongoDB备份恢复
一 MongoDB备份 1.1 备份概述 mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoi ...
- Mongodb的备份,恢复,导入与导出(cmd命令行实现)
要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下命令均在cmd ...
- MongoDB学习(三)数据导入导出及备份恢复
这几天想着公司要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下 ...
随机推荐
- 软件测试入门 1—— junit 单元测试
一.实验主要内容: 1. 2.EclEmma安装 见: http://www.cnblogs.com/1995hxt/p/5291465.html 二.对与 Junit 安装,使用 maven管理项目 ...
- jsonp 格式
jQuery(document).ready(function(){ $.ajax({ type: "get", async: false, url: "http://f ...
- JS读取/创建本地文件及目录文件夹的方法
原文链接:http://www.cnblogs.com/ayan/archive/2013/04/22/3036072.html 注:以下操作只在IE下有效! Javascript是网页制作中离不开的 ...
- poj 3261 Milk Patterns 后缀数组 + 二分
题目链接 题目描述 给定一个字符串,求至少出现 \(k\) 次的最长重复子串,这 \(k\) 个子串可以重叠. 思路 二分 子串长度,据其将 \(h\) 数组 分组,判断是否存在一组其大小 \(\ge ...
- duilib入门简明教程 -- XML配置界面(6) (转)
原文转自:http://www.cnblogs.com/Alberl/p/3343699.html 前面那些教程都是为了让小伙伴们从win32.MFC过渡到duilib,让大家觉得duilib ...
- 《手把手教你学C语言》学习笔记(7)---程序的输入与输出
程序设计中,为了观察程序的运行状态和结构,需要输出指定的内容:为了让程序能够更加灵活,可以根据需求输入内容,让计算机处理和运行:所以程序的输入输出就显的尤为重要.主要包括printf和scanf函数. ...
- css命名推荐
CSS命名推荐规范:个人收藏 方便查阅 页面结构: 容器: container/wrap 整体宽度:wrapper 页头:header 内容:content 页面主体:main 页尾:footer 导 ...
- 给定n个数字,问能否使这些数字相加得到h【折半查找/DFS】
A Math game Time Limit: 2000/1000MS (Java/Others) Memory Limit: 256000/128000KB (Java/Others) Submit ...
- 双端队列-deque【集vector与list于一身的牺牲内存换功能完善】
看到双端队列(deque)了,书上是这样说的:除了栈和队列外还有一种限定性数据结构是双端队列:双端队列是限定插入和删除操作在表的两端进行的线性表:尽管双端队列看起来似乎比栈和队列更灵活,但实际上在应用 ...
- NWU现场赛——解题报告
负二进制转换 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Problem Desc ...