文档章节

mongo自动备份脚本与恢复

l
 linjin200
发布于 06/17 14:51
字数 675
阅读 2
收藏 0

mongo自动备份脚本与恢复

2018年12月17日 17:50:15 Data_driver 阅读数 56更多

个人分类: 数据库文件存储Linux

一、创建MongoDB备份目录

 
  1. mkdir -p /data/mongodb_bak/mongodb_bak_now

  2. mkdir -p /data/mongodb_bak/mongodb_bak_list


二、新建MongoDB数据库备份脚本(/data/mongodb_bak/MongoDB_bak.sh)
脚本如下:

 
  1. #!/bin/bash

  2. #backup MongoDB

  3.  

  4. #mongodump命令路径

  5. #DUMP=/usr/local/mongodb/bin/mongodump

  6. DUMP=/usr/bin/mongodump

  7. #临时备份目录

  8. OUT_DIR=/data/mongodb_bak/mongodb_bak_now

  9. #备份存放路径

  10. TAR_DIR=/data/mongodb_bak/mongodb_bak_list

  11. #获取当前系统时间

  12. DATE=`date +%Y_%m_%d`

  13. #数据库账号

  14. DB_USER=user

  15. #数据库密码

  16. DB_PASS=123

  17. #DAYS=15代表删除15天前的备份,即只保留近15天的备份

  18. DAYS=15

  19. #最终保存的数据库备份文件

  20. TAR_BAK="mongodb_bak_$DATE.tar.gz"

  21.  

  22. cd $OUT_DIR

  23. rm -rf $OUT_DIR/*

  24. mkdir -p $OUT_DIR/$DATE

  25. #备份全部数据库 要用root权限的账号

  26. $DUMP -h 15.62.32.112:27017 -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" -o $OUT_DIR/$DATE

  27. #备份单个数据库

  28. #$DUMP -h 127.0.0.1:27017 -d myleguan -u $DB_USER -p $DB_PASS  -o $OUT_DIR/$DATE

  29. #压缩为.tar.gz格式

  30. tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE

  31. #删除15天前的备份文件

  32. find $TAR_DIR/ -mtime +$DAYS -delete

  33.  

  34. exit 


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

chmod +x MongoDB_bak.sh


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

 
  1. vi /etc/crontab

  2. #每星期六晚上20:30开始执行MongoDB数据库备份脚本

  3. 30 20 * * 6 root /data/mongodb_bak/MongoDB_bak.sh 


附录:MongoDB数据库恢复

 
  1. #恢复全部数据库

  2. mongorestore -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" --noIndexRestore --dir /data/mongodb_bak/mongodb_bak_now/2016_12_17/

  3. #恢复单个数据库

  4. mongorestore -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" --noIndexRestore -d dbname --dir /data/mongodb_bak/mongodb_bak_now/2016_12_17/dbname


部分参数说明
--drop参数:恢复数据之前删除原来的数据,避免数据重复
--noIndexRestore参数:恢复数据时不创建索引
--dir参数:数据库备份目录
-d参数:后面跟要恢复的数据库名称

 

#!/bin/bash

#backup MongoDB

#mongodump命令路径

DUMP=/usr/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=myleguan

#数据库密码

DB_PASS=myleguan

#DAYS=15代表删除15天前的备份,即只保留近15天的备份

DAYS=1

#最终保存的数据库备份文件

TAR_BAK="mongodb_bak_$DATE.tar.gz"

cd $OUT_DIR

rm -rf $OUT_DIR/*

mkdir -p $OUT_DIR/$DATE

#备份全部数据库
#$DUMP -h 127.0.0.1:27017 -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" -o $OUT_DIR/$DATE

$DUMP -h 127.0.0.1:27017 -d myleguan -u $DB_USER -p $DB_PASS  -o $OUT_DIR/$DATE

#压缩为.tar.gz格式

tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE

#删除15天前的备份文件

find $TAR_DIR/ -mtime +$DAYS -delete

exit
 

 

© 著作权归作者所有

l

linjin200

粉丝 26
博文 999
码字总数 1168188
作品 0
福州
程序员
私信 提问
mysql、mongoDB自动化备份脚本与恢复命令

mysql自动备份脚本 vim /var/tool/mysqlbackup.sh !/bin/bash shijie= backDatabaseDB=database$shijie.sql backDatabaseFile=database$shijie.tar.gz cd /var/mysql/back/ /usr/local/mysq......

zbylovecool
2011/11/24
0
0
Linux下MongoDB实现远程自动备份

看过上一篇接手老项目的痛——MongoDB学习及集群搭建知道,最近接手了一个后妈养的项目,项目的数据库没有人维护,DBA以各种理由推脱暂时不接,面对裸奔没有备份的数据库,我的内心很焦灼,于...

Bug生活2048
2018/09/10
0
0
浅尝辄止MongoDB:管理(1)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/82999747 目录 一、控制访问权限 1. 添加admin用户 2. 启用身份认证 3. 在mongo控制...

wzy0623
2018/10/10
0
0
不停机mongo2向mongo3迁移同步

系统的数据库存储要从mongodb2升级为mongodb3,分两大步骤发布进行:先进行双写过渡(同时对mongodb2和mongodb3进行写入);后双写数据没问题,再拆除mongodb2,单写mongodb3。在进行双写过渡...

hxt168
2016/07/19
250
0
mongodb安装、连接,mongodb用户管理、创建集合、数据管理、备份恢复,副本集介绍、搭建、测试,分片介绍、搭建、测试,php的mongodb扩展、mongo扩展

21.26 mongodb介绍 21.27 mongodb安装 21.28 连接mongodb 21.29 mongodb用户管理 21.30 mongodb创建集合、数据管理 21.31 php的mongodb扩展 21.32 php的mongo扩展 21.33 mongodb副本集介绍 ...

tobej
07/16
74
0

没有更多内容

加载失败,请刷新页面

加载更多

用 4G 工作是什么体验

七月开始,因为工作原因,在公司附近租了个住处,方便工作。离公司近了,感觉就是不一样,之前每天 5:30 就要起床赶地铁,现在可以睡到自然醒,一看才 7 点,悠闲的起床洗漱,踱步到公司,都...

zzxworld
53分钟前
5
0
sonar报错volatile

问题发生 原先代码如下: //认证授权码private static volatile String AUTHORIZATION_CODE = "init"; git push 之后,sonar认为这是个bug检测报告截图如下: 分析排查 解释说明: Markin...

开源小菜鸟2333
58分钟前
4
0
《Java实践指南》--读后

闲读《Java实践指南》... 1.lvy 某些项目中能够看到ivy.xml。早期使用ant的项目中,常常用ivy.xml来下载项目依赖。 2.ant 作为java程序员,应该都知道ant,虽然可能用过的人不多。为什么ant...

RippleChan
今天
4
0
前端:固定表格(table)表头的实现方式

在写插件 bootstrap table 的时候,当数据过多的时候,需要对表格的 thead 进行固定,然后滚动表格的 tbody 。但是在实际的操作上,花了很多的时间在这个问题上,到现在也没有找到完美的解决...

前端老手
今天
6
0
第五章 spring-connet之AnnotationConfigUtils

前言 AnnotatedBeanDefinitionReader是AnnctionConfig相关上下文与AnnotationConfigUtils的桥梁。还有一个作用是解析class成为BeanDefinitionHolder,注册到容器里面。AnnotationConfigUtils...

鸟菜啊
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部