`

MongoDB数据文件备份与恢复

 
阅读更多
MongoDB数据文件备份与恢复
 
备份与恢复数据对于管理任何数据存储系统来说都是非常重要的。
 
1、冷备份与恢复——创建数据文件的副本(前提是要停止MongoDB服务器),也就是直接copy 
MongoDB将所有数据都存储在数据目录下,默认是/data/db/(Windows下是C:\data\db\),启动MongoDB时也可以用--dbpath指定我们自己设置的数据存储目录。 
备份MongoDB数据:只要简单的创建数据存储目录的副本就可以了,直接copy一份。 
恢复MongoDB数据:在MongoDB启动时用--dbpath指定数据存储目录副本位置。 
 
在服务器运行的情况下直接copy是有风险的,可能copy出来时,数据已经遭到破坏,这种方式下创建数据目录的副本需要在关闭MongoDB服务器的前提下,数据目录中存储的就是关闭那一刻数据的快照,在服务器重新启动之前可以复制目录作为备份。
 
2、热备份与恢复——MongoDB bin目录下自带的mongodump和mongorestore工具
 
mongodump是一种能在运行时备份的方法。该命令详细参数如下: 
 
QQ截图20120623130914
 
mongorestore获取mongodump的输出结果,并将备份的数据插入到运行的MongoDB实例中实现数据恢复。该命令详细参数如下: 

QQ截图20120623131506
 
mongodump(备份)与mongorestore(恢复)示例: 
1、创建mongodb数据库: 
 
QQ截图20120623132803
 
2、mongodump备份mongodb数据库: 

QQ截图20120623132449
 
-d指定需要备份的数据库,-o指定备份位置,上述表示备份mongodb数据库到与当前mongodump命令同一位置backup目录下 
 
QQ截图20120623132546
 
3、mongorestore恢复mongodb数据库,并重命名为mongodb2数据库: 

QQ截图20120623133501
 
-d指定要恢复为的数据库,可以将备份的数据库恢复到与原来不同名的数据库中,这里为mongodb2,--drop表示在恢复前删除集合(若存在)。否则,数据就会与现有集合数据合并,可能会覆盖一些文档。 
 
恢复之后数据存储目录中的数据: 

QQ截图20120623133728
 
此时在MongoDB shell下可以查看到mongodb2数据库,及其中的mongodb集合和数据文档。 
 
QQ截图20120623133858
 
3、fsync和锁方式备份 
 
上面的1,2两点都不能保证备份时获取数据的实时性,因为我们在备份的时候可能还有数据在内存缓冲区中没有写入到磁盘,MongoDB给我们提供了fsync+lock机制就能满足我们的需求。
 
fsync(注意,只支持1.3+版本):该命令会强制服务器将所有缓冲区中的内容写入磁盘,
                                                  让我们可以实时性获取数据。 
lock(写入锁):通过lock给数据库一个写入锁,阻止对数据库的进一步写入操作,其他实例的写入操作全部被阻
                         塞,直到释放锁为止。写入锁是让fsync在备份时发挥作用的关键。
 
1、在shell中强制执行fsync并获得lock(写入锁),在备份之前fsync并加锁: 
fsync并加锁: db.runCommand({"fsync":1,"lock":1}),该命令用于admin db。 

QQ截图20120623152620
 
该操作强制服务器将所有缓冲区中的内容写入磁盘并对数据库上锁,不允许执行写数据操作,一般在执行数据库备份时有用。
 
2、db.$cmd.sys.unlock.findOne():释放锁,备份好了就要解锁,该命令用于admin db。 
 
QQ截图20120623152812
 
3、db.currentOp():查看当前锁状态
 
已经解锁状态:   www.2cto.com  
 
QQ截图20120623152936
 
上锁状态: 

 

QQ截图20120623153108
 
其中,fsyncLock为1表示MongoDB的fsync进程(负责将写入改变同步到磁盘)不允许其他进程执行写数据操作
 
fsync命令能非常灵活的备份,不用停掉服务器,也不用牺牲备份的实时特性。要付出的代价就是一些写入操作被暂时阻塞了。 唯一不耽误读写还能保证实时快照的备份方式就是通过“从服务器”备份。
 
4、从属备份
 
在从服务器上备份是MongoDB推荐的备份方式
分享到:
评论

相关推荐

    mongodb备份数据和还原数据

    注意事项:以下指令一般需要在mongodb的安装路径下执行 备份数据 #如果不输入集合名,默认整个...还原数据(里面每张表需有一个bason文件和一个metadata.json文件,前者用来存储数据,后者用来存储索引) mongores

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    8.8.1 数据文件备份 8.8.2 数据备份mongodump 8.8.3 数据恢复mongorestore 8.8.4 fsync和锁 8.8.5 从属备份 8.8.6 修复 8.9 本章小结 第4篇 性能篇 第9章 索引 9.1 索引简介 9.1.1 基础...

    MongoDB实现备份压缩的方法教程

    MongoDB 3.0 后 ,数据库可以采用Wiredtiger存储引擎后(3.2 版本默认),在此环境下通过mongodump 备份后,产生的备份文件要远大于数据存储文件的大小。此外,一般MongoDB存储的数据量比较大,备份文件也比较大,...

    《10天掌握MongoDB》2012完整版.pdf[带书签]

    备份与恢复-主从复制备份 备份与恢复-修复 第八天:MONGODB复制 主从复制 主从复制-选项 副本集 副本集-特点 副本集-活跃节点选举 读写分离 工作原理-OPLOG 工作原理-同步 复制管理-诊断 复制管理-变更OPLOG容量 复制...

    深入云计算 MongoDB管理与开发实战详解pdf.part2

    8.8.1 数据文件备份 8.8.2 数据备份mongodump 8.8.3 数据恢复mongorestore 8.8.4 fsync和锁 8.8.5 从属备份 8.8.6 修复 8.9 本章小结 第4篇 性能篇 第9章 索引 9.1 索引简介 9.1.1 基础...

    分布式数据库MongoDB视频教程.zip

    目录网盘文件永久链接 01.MongoDB基础 视频 01-复习_recv 02-简介_recv 03-增、改、删_recv 04-查询_recv 05-查询2_recv 06-查询3_recv 07-聚合-分组_recv ...07-备份与恢复 08-与py交互 09-总结 资料 笔记

    mongodb 数据库操作–备份 还原 导出 导入

    一,mongodump备份数据库 1,常用命令格 mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 如果没有用户谁,可以去掉-u和-p。 如果导出本机的数据库,可以去掉-h。 如果是默认端口,可以...

    freezer:适用于文件系统,MongoDB,MySQL的OpenStack Swift增量备份和还原自动化工具。 LVM快照和加密支持。 在opendev.org上维护的代码镜像

    Freezer是备份还原DR即服务平台,可帮助您自动执行数据备份和还原过程。 提供以下功能: 使用时间点快照备份文件系统 支持强加密:AES-256-CFB 直接备份文件系统树(无卷快照) 使用lvm快照将日记的MongoDB目录...

    Python操作MongoDb数据库流程详解

    MongoDB是一个基于分布式文件存储的文档数据库,可以说是非关系型(NoSQL,Not Only SQL)数据库中比较像关系型数据库的一个,具有免费、操作简单、面向文档、自动分片、可扩展性强、查询功能强大等特点,对大数据...

    MongoDB-Fundamentals:在现代云计算环境中学习实用的MongoDB技能

    复制集群,备份数据库并还原数据 根据实时数据创建数据驱动的图表和报告 相关工作坊 如果您发现此存储库很有用,则可能需要查看我们的其他一些研讨会标题: SQL Workshop 应用SQL数据分析研讨会 人工智能基础设施...

    Linux下使用MongoDB+GridFS实现备份作业的优化和监视

    :基于可靠性的需求,各个公司对容灾的要求也是越来越高。单在数据中心备份副本明显已经跟不上...LogicMonitor——用于实体、虚拟以及云环境基于SaaS的监视方案,我们希望用户数据文件的副本在数据中心内外都有储存。

    代理:备份和还原数据库的最佳方法

    与基本脚本不同,它还打包了还原过程,以在30秒内从备份中取回数据。 它使用pg_dump , mysqldump或mongodump并添加: 安装过程简单互动配置无Cron标签编辑使用公钥/私钥对进行加密流上传到AWS S3 备份还原过程...

    java雷电飞机源码-DB-concepts:常用几种数据库的常见概念,时常翻翻,以免忘记

    2.备份与恢复 3.监控与报警 4.实例创建 5.网络类型切换 技术研究 1.MongoDB Driver:使用正确的姿势连接复制集 MongoDB复制集(Replica Set)通过存储多份数据副本来保证数据的高可靠,通过自动的主备切换机制来保证...

    网站架构技术

    问题: 读库与写库的数据同步 解决方案: 不同的数据库都有自己的数据库的主从复制功能 使用反向代理与CDN加速网站响应 反向代理产品 ngix 使用分布式文件系统和分布式数据库系统 使用no-sql和搜索...

    Nginx版UPUPW PHP绿色服务器平台

    ... ...主体部分: ... ...MariaDB/10.3.8 MySQL分支版本使用方法完全一致,有着更强的性能和兼容性;...Redis/3.2.1 非常高效的数据缓存服务端;...phpMyAdmin/4.8.2 开源、基于WEB而小巧的数据库...支持UPUPW配置文件的备份与还原。

    具有后台管理系统、基于wechat-python-sdk和flask的微信公众号面基机器人+源代码+文档说明

    * 默认已经获取了2018年的5级行政区域全量数据,在项目的result目录里,结果类型有导出的JSON文件与mongo数据库备份文件 * 统计用区划代码和城乡划分代码的区划范围,是国家统计局开展统计调查的区划范围 * 数据不...

    mongo工具

    mongodump / mongorestore-将MongoDB备份以.BSON格式转储到磁盘,或将其还原到实时数据库 mongostat-监视实时MongoDB服务器,副本集或分片群集 mongofiles-读取,写入,删除或更新文件 mongotop-监视mongo服务器上的...

    云计算第二版

    5.2.2 虚拟机数据备份恢复工具 181 5.2.3 虚拟机安全工具 181 5.2.4 可靠性组件FT和HA 182 5.3 云架构服务提供平台vCloud Service Director 182 5.3.1 创建虚拟数据中心和组织 183 5.3.2 网络的设计 184 5.3.3 目录...

    pass-mas-mobile:传递移动

    要还原,此应用程序使用网络api发送数据并与MongoDb同步。 可以在上访问Web api项目。 还计划了一个Web应用程序。 去做 仅可访问Web API时更改密码 完成同步数据 创建一种从新设备还原帐户的机制 写测试 作者-贡献...

Global site tag (gtag.js) - Google Analytics