定时对数据库进行备份可以有效地保护数据

MongoDB 数据备份

在 MongoDB 中我们使用 mongodump 命令来备份 MongoDB 数据

语法如下:

> mongodump -h dbhost -d dbname -o dbdirectory -u user -p password
  • -h MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017

  • -d 需要备份的数据库实例,例如:test

  • -o 备份的数据存放位置,例如:c:datadump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。

  • -u -p 如果有设置用户和密码,需要设置对应的用户名和密码,否则没有权限

MongoDB 数据恢复

mongodb 使用 mongorestore 命令来恢复备份的数据

>mongorestore -h <hostname><:port> -d dbname <path>
  • --host <:port>, -h <:port>:
    MongoDB所在服务器地址,默认为: localhost:27017

  • --db , -d :
    需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2

  • --drop:
    恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!

  • <path>:

  1. 最后的一个参数,设置备份数据所在位置,例如:c:datadumptest。

你不能同时指定 <path> 和 --dir 选项,--dir也可以设置备份目录。

  • --dir:
    指定备份的目录

你不能同时指定 <path> 和 --dir 选项。

定时备份 mongodb

环境

操作系统: Centos 7

一、 备份 shell 脚本 (/home/crontab/mongobk.sh)

#!/bin/sh
# dump 命令执行路径,根据mongodb安装路径而定
DUMP=/usr/bin/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=user
# 数据库密码
DB_PASS=password
# 代表删除7天前的备份,即只保留近 7 天的备份
DAYS=7
# 最终保存的数据库备份文件
TAR_BAK="mongod_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 -d dbname -o $OUT_DIR/$DATE
# 压缩格式为 .tar.gz 格式
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
# 删除 15 天前的备份文件
find $TAR_DIR/ -mtime +$DAYS -deleteexit

二、创建对应的备份目录

mkdir -p /home/backup/mongodb_bak/mongodb_bak_now
mkdir -p /home/backup/mongodb_bak/mongodb_bak_list

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

chmod +x MongoDB_bak.sh

四、添加到计划任务

cron服务是Linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:

/sbin/service crond start/sbin/service crond stop/sbin/service crond restart/sbin/service crond reload

以上1-4行分别为启动、停止、重启服务和重新加载配置。

要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可

查看当前用户的crontab,输入 crontab -l;

编辑crontab,输入 crontab -e;

删除crontab,输入 crontab -r

1 进入编辑界面

 crontab -e 

2 添加任务

30 18 * * * /home/crontab/mongobk.sh

基本格式 :

        *  command

分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用或者 /1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

3 保存后退出,启动服务

service crond start 

4 设置开机自启动

chkconfig crond on

参考资源

  • centos(7.0) 上 crontab 计划任务

  • MongoDB的备份(mongodump)与恢复(mongorestore)

  • MongoDB 备份(mongodump)与恢复(mongorestore)

  • Centos7:利用crontab定时执行任务

  • Linux下MongoDB自动备份

  • mongodb 中文文档

Mongodb 定时备份和恢复 1相关推荐

  1. Mongodb 定时备份和恢复

    2019独角兽企业重金招聘Python工程师标准>>> 定时对数据库进行备份可以有效地保护数据 mongodump -h 127.0.0.1 --port 2777 -u ruiyi ...

  2. MongoDB操作-备份和恢复

    Mongodb数据库操作-备份 恢复 导出 导入 mongodb数据备份和恢复主要分为二种:一种是针对库的mongodump和mongorestore,一种是针对库中表的mongoexport和mon ...

  3. Mongodb 物理备份和恢复 —— 筑梦之路

    物理备份是指备份 MongoDB 数据目录,包括所有的数据文件.日志文件和配置文件.这种备份方法可以保留 MongoDB 数据库的完整性和一致性,也可以加快备份和恢复的速度.以下是备份和恢复 Mong ...

  4. Mongodb定时备份脚本和清除脚本

    Mongodb用的是可以热备份的mongodump和对应恢复的mongorestore,在linux下面使用shell脚本写的定时备份,代码如下 1.定时备份 #!/bin/bash sourcepa ...

  5. MongoDB初试备份及恢复

    MongoDB作为文档数据库,有 1.登录MongoDB官网,地址:https://www.mongodb.com/download-center#community  , 根据自己操作系统下载相应版 ...

  6. MongoDB入门---备份(mongodump)恢复(mongorestore)监控

        今天工作上的事情不是太多,就索性吧后续的MongoDB的知识点整理一下,与诸君共享.废话就不多说了哈,咱们直接看一下MongoDB中的备份.在Mongodb中我们使用mongodump命令来备 ...

  7. Python实现定时备份数据库-mysql篇

    前言:作为运维人员,数据库的备份一定是日常工作中必不可少的一项工作,除了经常写的shell脚本来备份数据库,然后加入到Linux自带的crontab中以外,我利用了工作闲暇时间用python写了一个这 ...

  8. MongoDB的备份(mongodump)与恢复(mongorestore)

    为什么80%的码农都做不了架构师?>>>    不用多想,数据的备份无论什么时候都是必须的,尤其是重要数据. MongoDB也提供了备份和恢复的功能,分别是MongoDB下载目录下的 ...

  9. MongoDB整库备份与还原以及单个collection备份、恢复方法

    mongodb数据库维护离不开必要的备份.恢复操作,而且一般不会出错,所以我们在使用的时候大部分时候使用备份和恢复操作就可以了 mongodump.exe备份的原理是通过一次查询获取当前服务器快照,并 ...

  10. MongoDB的数据库如何备份和恢复?

    摘要: MongoDB数据库如何备份?恢复MongoDB数据库应如何操作?最近数据库多灾多难,这些问题也成为开发者关注的重点.2016年12月爆出MongoDB数据库安全问题(见MongoDB黑客赎金 ...

最新文章

  1. 敏捷开发一千零一问系列之一:序言及解决问题的心法(无我)
  2. BZOJ 2959: 长跑 解题报告
  3. 2021年东港二中高考成绩查询,辽宁省东港二中2021届英语高考模拟试卷1(新课改原创2020版,供2021年课改省份考生使用)...
  4. mysql php 缓存机制_mysql数据库查询缓存原理是什么
  5. 网盘是否能做一只安全的企业信息快递手
  6. ivona tts语音合成引擎_高端玩家!树莓派 + Node.js 实现语音机器人
  7. 【codevs1068】乌龟棋noip10年TG----第二个A掉的钻石题
  8. sqlserver date类型和字符串比较_Mongo的数据类型
  9. 202012没有oracle加密,Windows2012远程桌面提示"这可能是由于 CredSSP 加密 Oracle 修正" 修复方法...
  10. 你的邮件为何被标记为垃圾邮件?
  11. 谷粒商城:05. 分布式组件SpringCloud Alibaba
  12. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_9_Stream流中的常用方法_concat...
  13. oracle字符串转日期比较大小写,【varchar】oracle中比较日期大小日期定义的是varchar2类型的......
  14. 华为USG6000系列防火墙的Console密码重置过程
  15. linux防火墙配置怎么修改密码,Linux系统修改防火墙配置
  16. Golang 流媒体音视频网络传输开源项目-LAL
  17. ios ipa分析之 .dSYM 文件、.xcarchive 文件和 Link Map 文件的Mac版本分析工具:MKAppTool
  18. 从键盘读入3个字符串,对它们按字母大小的顺序排序,然后把排好序的字符串送到磁盘文件1.txt中保存
  19. python访问字符串中的部分字符的操作_Python字符串基础操作
  20. Android Weekly #33 :这个世界的问题,在于聪明人充满疑惑,而傻子们坚信不疑

热门文章

  1. 【从C到C++学习笔记】域运算符/new/delete运算符/重载/Name managling/extern C/带函数默认值参数
  2. 将循环结果写入到新建的dataframe中
  3. pandas 筛选出满足条件的行并赋值
  4. 解读灰度直方图的信息
  5. CSS学习总结(5)——列表/表格/链接/鼠标光标样式
  6. VirtuoZo数字摄影测量(二)——模型定向与核线影像生成
  7. Doc命令行执行php中文乱码问题
  8. mysql清除内存不足_MySQL内存不足怎么办
  9. linux程序内码,windows系统与linux系统的内码转换总结
  10. 腾讯 android 插件,腾讯 Bugly for Xamarin Android 的插件