广告
返回顶部
首页 > 资讯 > 数据库 >MongoDB备份和恢复方案
  • 691
分享到

MongoDB备份和恢复方案

MongoDB备份和恢复方案 2019-01-12 10:01:29 691人浏览 猪猪侠
摘要

Oplog介绍 可用于生产环境的备份与恢复脚本 脚本仓库 备份命令 a) 单DB两种方法 (1)monGodump -h localhost:27017 -d db[不能多个] -o /data_dump -u

MongoDB备份和恢复方案

  • Oplog介绍

    1. 可用于生产环境的备份与恢复脚本

    脚本仓库

    1. 备份命令
    a) 单DB两种方法
        (1)monGodump -h localhost:27017 -d db[不能多个] -o /data_dump -u xxx -p xxx --authenticationDatabase ‘admin’
        (2)mongodump -h localhost:27017 -d db -o ./data_dump -u xxx -p xxx(具体这个DB的用户)
    b) 全量+oplog增量
        mongodump -h localhost:27017 -o ./data_dump -u xxx -p xxx --oplog --quiet(隐藏日志)
    

    恢复命令

    a) 单DB两种方法
        (1)mongorestore -h localhost:27017 -d db --dir ./data_dump /db -u xxx -p xxx --authenticationDatabase "admin"
        (2)mongorestore -h localhost:27017 -d db --dir ./data_dump/db -u xxx -p xxx
    b) 恢复+oplog回放
         mongorestore -h localhost:27017./data_dump -u xxx -p xxx –oplogReplay --quiet(隐藏日志)
    

    恢复到指定时间点

    导出主节点上的 oplog:
    mongodump --host 127.0.0.1 -d local -c oplog.rs
    可以通过—query 参数添加时间范围
    
    使用 bsondump 查看导出的 oplog,找到需要截止的时间点:
    例如:{ "ts" : Timestamp(1577355175, 1), "t" : NumberLong(23), "h" : NumberLong(0), "v" : 2, "op" : "c","ns" : "foo.$cmd", "ui" : UUID("767b3a2b-a1cd-4db8-a74a-71ce9711f368"), "o2" : { "numRecords" : 1 },"wall" : ISODate("2019-12-26T10:12:55.436Z"), "o" : { "drop" : "employees" } }
    
    恢复到指定时间点
    利用--oplogLimit指定恢复到这条记录之前
    mongorestore -h 127.0.0.1 --oplogLimit "1577355175:1" --oplogFile dump/local/oplog.rs <空文件夹>
    

    RPO(RecoveryPointObjective复原点目标,指能容忍的最大数据丢失量)

    Secondary延迟备份

    设置延时节点
    cfg = rs.conf()
    cfg.members[1].priority=0
    cfg.members[1].hidden=true
    cfg.members[1].slaveDelay=86400
    rs.reconfig(cfg)
    

    Secondary延迟恢复

    从Secondary恢复数据的方法:
    1、删除Primary中的testts库
    2、mongodump -h localhost:30011 -d testts -o ~/data_dump0401 -u xxx -p xxx --authenticationDatabase "admin"
    3、mongorestore -h localhost:27017 -d testts --dir ./data_dump0401/testts -u xxx -p xxx --authenticationDatabase "admin"
    

    部署脚本

    目前全量备份采用一周一次,增量备份采用一个小时一次,通过crontab来制定计划任务
    [mongod@xxx toolbox]$ crontab –e
    0 */1 * * * /bin/sh $HOME/toolbox/mongodb_backup_incremental.sh > /dev/null 2>&1
    0 1 * * 7 /bin/sh $HOME/toolbox/mongodb_backup_all.sh > /dev/null 2>&1
    

    常见错误

    1)

    Failed: restore error: error applying oplog: applyOps: not authorized on admin to execute command { applyOps: [ { ts: Timestamp(1584405919, 1), h: 6249566449687893566, v: 2, op: "u", ns: "config.system.sessions", o: { $v: 1, $set: { lastUse: new Date(1584405919215) } }, o2: { _id: { id: UUID("d3558387-2eca-4d12-81ff-519b45c29af6"), uid: BinData(0, D98E3AF3AA9DE1E389AD41192C5A890F20F87082C7F958241BCACB06E71051FC) } } } ], $db: "admin" }
    解决方法(在admin数据库中执行):
    db.adminCommand({ createRole: "restoreEx", privileges: [ { resource: { db: "config", collection: "system.sessions" }, actions: [ "find", "update", "insert", "remove" ] }, ],  roles: [ { role: "restore", db: "admin" } ],  writeConcern: { w: "majority" , wtimeout: 5000 }})
    db.createUser({user:“restore”, pwd:”pwd“, roles:[{role:”restoreEx“, db:”admin“}, {role:"readWriteAnyDatabase", db:"admin"}]})
    

    2)Path与—dir不能同时用

    3)

    默认都加上-u xxx -p "xxx" --authenticationDatabase "admin"这个鉴权吧
    

    4)

    db.tttss.insert({bbb:”test delay”}, { writeConcern: { w:”majority(要用这个,不然用w:3就要等包括延时节点在内的3个节点都要返回的)", wtimeout: 5000 } })
    
    您可能感兴趣的文档:

    --结束END--

    本文标题: MongoDB备份和恢复方案

    本文链接: https://www.lsjlt.com/news/5315.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • MongoDB备份和恢复方案
      Oplog介绍 可用于生产环境的备份与恢复脚本 脚本仓库 备份命令 a) 单DB两种方法 (1)mongodump -h localhost:27017 -d db[不能多个] -o /data_dump -u ...
      99+
      2019-01-12
      MongoDB备份和恢复方案
    • mongodb 备份和恢复
      mongodb提供了两个命令用来备份(mongodump)和恢复(mongorestore)数据,数据dump出来的格式是BSON的...
      99+
      2022-10-18
    • 3.6-MongoDB备份和恢复
      *MongoDB备份备份指定库   #在linux下操作,而不是数据库中。mongodump -h ip -d dbname -o dir //-h后面跟服务器ip,-d后面跟database名字...
      99+
      2022-10-18
    • MongoDB-备份恢复
      备份工具 (1)** mongoexport/mongoimport (2)***** mongodump/mongorestore   备份工具区别在那里? 应用场景总结: mongoexport/mongoimport:jso...
      99+
      2017-09-12
      MongoDB-备份恢复 数据库入门 数据库基础教程 数据库 mysql
    • Mongodb备份mongodump和恢复mongorest
      备份指定的数据库:mongodump -u=u_app -p="password" -h 10.11.55.203 --port 27017 -d db_chunqiu -o /backup/备份所有库:m...
      99+
      2022-10-18
    • MongoDB备份与恢复
             mongodb和mysql很相似,那么它是否也和mysql一样可以备份数据库和恢复数据库呢?那是当然的,下面将简单介绍mo...
      99+
      2022-10-18
    • mongodb 备份与恢复
      一、整库备份:mongodump -h dbhost -d dbname -o dbdirectory-h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:2...
      99+
      2022-10-18
    • mongodb的备份与恢复
      1.MongoDB 如何备份? >[root@service bin]# mongodump    备份数据       进行备份之后,如果你没指定备份目录会在当前目录自动生成dump备份文件   数据备份成功效果图     ...
      99+
      2018-12-18
      mongodb的备份与恢复
    • MongoDB备份恢复笔记
      1、全量逻辑备份/恢复 Mongodump/Mongorestore对于数据量比较小的场景,使用官方的mongodump/mongorestore工具进行全量的备份和恢复就足够了。mongodump可以连上...
      99+
      2022-10-18
    • MongoDB之备份与恢复
      MongoDB数据备份 在Mongodb中我们使用mongodump命令来备份MongoDB数据。该命令可以导出所有数据到指定目录中。 mongodump命令可以通过参数指定导出的数据量级转存的服务器。 语...
      99+
      2022-10-18
    • linux 下mongoDB备份与恢复
      在你安装mongodb的bin目录下 ygzj_dev数据库名#mongodb备份./mongodump -h 127.0.0.1:27017 -d ygz...
      99+
      2022-10-18
    • MongoDB 备份恢复命令说明
      一、全库备份恢复#mongodump -d my_mongodb -o my_mongodb_dump#mongorestore -d my_mongodb my_mongodb_dump/*二、JSON ...
      99+
      2022-10-18
    • mongodb怎么恢复备份数据
      要恢复 MongoDB 的备份数据,可以按照以下步骤进行操作:1. 首先,确保你已经创建了一个 MongoDB 的备份。备份可以通过...
      99+
      2023-08-31
      mongodb
    • 企业备份恢复案例
      在MySQl中我们备份数据一般有几种方式热备份                       &n...
      99+
      2022-10-18
    • MongoDB整库备份与还原以及单个collection备份、恢复方法
      备份前的检查> show dbs MyDB 0.0625GB admin (empty) bruce 0.0625GB local (emp...
      99+
      2022-10-18
    • MySQL Xtrabackup备份和恢复方法
      本篇内容主要讲解“MySQL Xtrabackup备份和恢复方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL Xtrabackup备份和恢复方法”吧...
      99+
      2022-10-18
    • SqlServer备份和恢复的方法
      本篇内容介绍了“SqlServer备份和恢复的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SqlSe...
      99+
      2022-10-18
    • Linux备份和恢复的方法
      这篇文章主要介绍“Linux备份和恢复的方法”,在日常操作中,相信很多人在Linux备份和恢复的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux备份和恢复的方法”的疑惑有所帮助!接下来,请跟着小编...
      99+
      2023-06-13
    • mongodb 中有哪些备份恢复命令
      这篇文章给大家介绍mongodb 中有哪些备份恢复命令,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。备份: mongodump -uroot -ppassword --por...
      99+
      2022-10-18
    • MongoDB中怎么实现备份与恢复
      今天就跟大家聊聊有关MongoDB中怎么实现备份与恢复,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一 mongoexport/mongoimpor...
      99+
      2022-10-18
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作