设为首页 收藏本站
查看: 819|回复: 0

[经验分享] mongodb 定时备份

[复制链接]
发表于 2017-11-17 11:31:16 | 显示全部楼层 |阅读模式
  通过centos 脚步来执行备份操作,使用crontab实现定时功能,并删除指定天数前的备份
  具体操作:
  1、创建Mongodb数据库备份目录



mkdir -p /home/backup/mongod_bak/mongod_bak_now
mkdir -p /home/backup/mongod_bak/mongod_bak_list
  2、新建Mongodb数据库备份脚本
  vi /home/crontab/mongod_bak.sh #新建文件,输入以下代码



#!/bin/sh

DUMP=/usr/local/mongodb/bin/mongodump #mongodump备份文件执行路径

OUT_DIR=/home/backup/mongod_bak/mongod_bak_now #临时备份目录

TAR_DIR=/home/backup/mongod_bak/mongod_bak_list #备份存放路径

DATE=`date +%Y_%m_%d` #获取当前系统时间

DB_USER=username #数据库账号

DB_PASS=123456 #数据库密码

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

TAR_BAK="mongod_bak_$DATE.tar.gz" #最终保存的数据库备份文件名

cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -u $DB_USER -p $DB_PASS -o $OUT_DIR/$DATE #备份全部数据库

tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE #压缩为.tar.gz格式

find $TAR_DIR/ -mtime +$DAYS -delete #删除7天前的备份文件
  3、修改文件属性,使其可执行

  chmod +x /home/crontab/mongod_bak.sh

  4、修改/etc/crontab #添加计划任务



crontab -e
  #在下面添加



30 1 * * * root /home/crontab/mongod_bak.sh #表示每天凌晨1点30执行备份
  5、重新启动crond使设置生效



/sbin/service crond reload #重新载入配置
chkconfig --level 35 crond on  #加入开机自动启动:
/sbin/service crond start   #启动服务
crontab -l #列出crontab文件
  每天在/home/backup/mongod_bak/mongod_bak_list目录下面可以看到mongod_bak_2017_02_28.tar.gz这样的
  压缩文件。
  至此,Linux下自动备份Mongodb数据库并删除指定天数前的备份完成。
  附录:Mongodb数据库恢复
  恢复全部数据库:

  mongorestore –drop –directoryperdb
/home/backup/mongod_bak/mongod_bak_now/2017_02_28/
  恢复单个数据库:

  mongorestore –drop -d dataname –directoryperdb
/home/backup/mongod_bak/mongod_bak_now/2017_02_28/dataname
  –drop参数:恢复数据之前删除原来数据库数据,避免数据重复。
  –directoryperdb参数:数据库备份目录
  -d参数:后面跟要恢复的数据库名称
  关于crontab
  crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ?νο?),原意是时间。
  通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。
  安装crontab:



[iyunv@CentOS ~]# yum install vixie-cron
[iyunv@CentOS ~]# yum install crontabs
  说明:
vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
  cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:



/sbin/service crond start #启动服务
/sbin/service crond stop #关闭服务
/sbin/service crond restart #重启服务
/sbin/service crond reload #重新载入配置
  查看crontab服务状态:



service crond status
  手动启动crontab服务:



service crond start
  其他命令:



#查看crontab服务是否已设置为开机启动,执行命令:
ntsysv
#加入开机自动启动:
chkconfig --level 35 crond on
#列出crontab文件
crontab -l
#编辑crontab文件
crontab -e
#删除crontab文件
$ crontab -r
#恢复丢失的crontab文件
#假设你在自己的$HOME目录下还有一个备份,那么可以将其拷贝到/var/spool/cron/<username>,其中<username >是用户名
#或者使用如下命令其中,<filename>是你在$HOME目录中副本的文件名
crontab <filename>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-407871-1-1.html 上篇帖子: 新兴概念通俗解释 下篇帖子: centos7 docker部署java项目
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表