专栏首页进击的全栈mongodb副本集的备份与恢复
原创

mongodb副本集的备份与恢复

备份规则:每天凌晨进行备份。原因:1. oplogSize 设置得比较大(10000);2. 现网数据量比较小,所以能保证 oplog 可以记录一整天的数据而不被覆盖,因此只要一天备份一次即可。若当天的数据需要恢复,可直接从当前 oplog 中去恢复。
  • 说明
  • 备份
  • 备份恢复
  • 使用crontab定时备份
  • 参考资料
说明:

一、mongodb 版本:4.0.10

二、配置副本集的服务器:

服务器端口地址

默认角色

10.133.8.232:27017

primary

10.53.101.8:27017

secondary

10.165.4.200:27110

arbiter

备份
备份指令
# 指令中加上副本集的名字mongors是为了从主节点进行备份
# 备份的文件夹以日期命名
folder=`date +%Y%m%d`
mongodump -h 'mongors/10.133.8.232:27017,10.53.101.8:27017' -u 'user' -p 'pwd' --oplog --gzip -o mongodb/dump/$folder --authenticationDatabase admin

mongodb 指令说明:

-h:指定当前备份主机ip
-u:指定验证的用户名
-p:指定用户名对应的密码
--oplog:replica set或者master/slave模式专用。在备份过程中捕获oplog更改日志,以保持一致的时间点。该选项只对全库导出有效,所以不能指定-d选项。因为整个实例的变更操作都会集中在local库中的oplog.rs集合中。
--gzip:可选项。启用备份文件的内联压缩。
-o:指定备份的路径
--authenticationDatabase:认证数据库
--oplogReplay:用于备份恢复,重放oplog。
备份恢复
# 数据库备份恢复,20190703是要恢复的备份所在的文件夹
# ./mongorestore -h 'mongors/10.133.8.232:27017,10.53.101.8:27017' -u 'user' -p 'pwd' --oplogReplay --gzip /data/mongodb/dump/20190703
使用crontab定时备份
步骤如下:
  1. 将备份指令写入linux脚本。# 指定使用/bin/bash来解释执行 0 4 * * * /bin/bash /data/sh/mongodb.backup.sh >/dev/null 2>&1 &
  2. 登录10.133.8.232服务器,进入/etc文件夹。
  3. 通过rpm -qa | grep crontab检查是否安装了crontab,若未安装,进行安装。
  4. 使用 crontab -e命令进入 crontab 编辑页,编辑定时任务。比如每天凌晨4点进行备份,指令如下:
  5. 保存即可,不需要重启。
  6. 检查crontab 的运行状态:service crond status,若 Active: active (running)则说明正在运行。(可选)
参考资料
  1. mongodb官网
  2. mongodb4.0备份与恢复
  3. mongodb 备份命令和还原命令
  4. Linux 定时任务crontab_014
  5. Linux Shell 1>/dev/null 2>&1 含义

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 2019年云计算第一撕:AWS为什么和MongoDB怼上?

    近日,AWS宣布正式推出文档数据库服务:DocumentDB。AWS DocumentDB是一项支持MongoDB工作负载的文档数据库服务,硬怼MongoDB的...

    大数据在线
  • MongoDB Change Stream初体验

    Change Stream是MongoDB从3.6开始支持的新特性。这个新特性有哪些奇妙之处,会给我们带来什么便利?本次的文章将就这个主题进行初步讨论。

    MongoDB中文社区
  • mongodb 索引详解(二)

    MongoDB为文档集合中的任何字段提供完整的索引支持 。默认情况下,所有集合在_id字段上都有索引,应用程序和用户可以添加其他索引以支持重要的查询和操作。

    MongoDB中文社区
  • 转型全栈时不待 狼书一开好运来

    前端攻城狮要想做到全栈,核心在于以下两点:一是要掌握后端不会的UI(界面);二是要掌握前端不会的DB(业务)。当然,不是倡导大家每一点都接触一下,然后号称自己是...

    用户1682855
  • mongo高可用之python

    背景:在使用mongodb的时候,发现复制集集群的时候,大量的写入操作会造成集群的主进行切换,从而导致程序报错。

    SRE运维实践
  • 【五分钟了解MongoDB】Change Stream 和MongoDB 4.x

    充分获知数据库的数据变动是从MongoDB向其他数据服务进行数据同步的关键点。与直接查询collection来获取数据变动相比,通过流式的方式进行监听会有效并及...

    MongoDB中文社区
  • 使用MongoDB图表对数据进行可视化

    将数据存储在数据库中对于当今的企业来说是一件很自然的事情。客户信息、历史订单、产品定价、物联网传感器数据,以及更多的正在被记录下来的信息,以备将来使用。然而,仅...

    MongoDB中文社区
  • 十年,MongoDB从一片小绿叶长成一颗大树

    谈到NoSQL数据库,MongoDB几乎是首先能被我们想到的一个。作为NoSQL最杰出的代表,从2009年MongoDB正式对外发布,到今年MongoDB走过了...

    MongoDB中文社区
  • 使用Spring Data访问MongoDB数据库

    我们要使用Spring Data MongoDB将CustomerPOJO存储在MongoDB数据库中。

    MongoDB中文社区
  • MongoDB 4.2 新特性解读

    MongoDB World 2019 上发布新版本 MongoDB 4.2 Beta,包含多项数据库新特性,本文尝试从技术角度解读。

    MongoDB中文社区

扫码关注云+社区

领取腾讯云代金券