广告
返回顶部
首页 > 资讯 > 精选 >怎么备份与恢复MongoDB数据库
  • 798
分享到

怎么备份与恢复MongoDB数据库

2023-06-14 07:06:05 798人浏览 泡泡鱼
摘要

这期内容当中小编将会给大家带来有关怎么备份与恢复MongoDB数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。MonGodump工具在mongoDB中,mongodump工具通常用来做备份使用。它有如

这期内容当中小编将会给大家带来有关怎么备份与恢复MongoDB数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

MonGodump工具

mongoDB中,mongodump工具通常用来做备份使用。它有如下特点:

可以对mongos和mongod进行操作

备份的是数据和数据结构,会以bson数据格式存储

不会备份索引,只会备份索引的元数据,只有在恢复的时候才会重建索引。

备份的过程中,mongodump会批量的将数据加载到内存中,该方法在数据量比较大的时候,会持续占用内存资源,会增加io负载压力。

可以备份整个数据库、整个集合、部分集合内容

该工具的缺点:

仅仅适合备份小型的、或者单一数据库的备份

数据量大的时候,备份时间较长

关于Mongodump的命令使用方法,大家可以mongodump --help去查看,常用选项如下:

-p,--port:端口

-h,--host:IP地址

-d,--db:数据库

-c,--collection:备份的集合名称

-q,--query:备份数据的条件表达式

-o,--out:备份文件的存放位置

-u,--username:用户名

-p,--passWord:密码

--authenticationDataBase:认证数据库

具体的使用方法,下面有例子。

Mongorestore工具

   数据备份和数据恢复二者是不可分割的,因为数据的备份,本质上还是为了恢复准备的,如果备份的数据不能恢复,那么备份也就失去了意义。

    在MongoDB中,Mongorestore这个工具是用来做数据恢复的,数据恢复命令的常用参数如下:

与mongodump重复的部分不再赘述

-p,--port

-h,--host

-d,--db

-c,--collection

--dir:恢复文件存放的位置,如果指定了数据库文件夹或者集合文件,则只恢复当前数据库或者当前集合,如果没有指定,则恢复当前目录下所有备份数据。

--drop:恢复前会删除已有的数据库

-u,--user

-p,--password

--authenticationDatabase

下面来看样例:

数据备份举例

备份所有数据库mongodump --port=27017 -h 127.0.0.1 -o /data/mongodb_backup -u root -p 123456 2020-11-23T23:40:41.599+0800 writing admin.system.users to 2020-11-23T23:40:41.626+0800 done dumping admin.system.users (3 documents)2020-11-23T23:40:41.626+0800 writing admin.system.roles to 2020-11-23T23:40:41.651+0800 done dumping admin.system.roles (1 document)2020-11-23T23:40:41.651+0800 writing admin.system.version to 2020-11-23T23:40:41.680+0800 done dumping admin.system.version (2 documents)2020-11-23T23:40:41.680+0800 writing test.yeyz to 2020-11-23T23:40:41.680+0800 writing yeyz.test to 2020-11-23T23:40:41.726+0800 done dumping yeyz.test (2 documents)2020-11-23T23:40:41.727+0800 done dumping test.yeyz (3 documents)备份yeyz这一个数据库[root@VM-0-14-Centos ~]# mongodump -d yeyz --port=27017 -h 127.0.0.1 -o /data/mongodb_backup -u root -p 123456 --authenticationDatabase admin   2020-11-23T23:41:58.991+0800 writing yeyz.test to 2020-11-23T23:41:59.050+0800 done dumping yeyz.test (2 documents)备份yeyz数据库中的test集合中的name=ccc的记录[root@VM-0-14-centos ~]# mongodump -d yeyz -c test -q '{name:{$eq:"ccc"}}' --port=27017 -h 127.0.0.1 -o /data/mongodb_backup -u root -p 123456 --authenticationDatabase admin2020-11-23T23:43:24.473+0800 writing yeyz.test to 2020-11-23T23:43:24.501+0800 done dumping yeyz.test (1 document)

数据恢复举例

恢复前> use yeyzswitched to db yeyz> show tables;test> db.test.find(){ "_id" : ObjectId("5fa7eae2515b814f18f2d474"), "name" : "ccc" }{ "_id" : ObjectId("5fa7f00e523D80402cdfa326"), "name" : "bbb" }恢复后> show tables;testtest_recover> db.test_recover.find(){ "_id" : ObjectId("5fa7eae2515b814f18f2d474"), "name" : "ccc" }

我们成功的将上面的yeyz数据库中的test集合中的name=ccc的记录恢复到了test_recover这个集合当中。

物理备份

    物理备份的概念大家应该都理解,常用的方法是复制物理硬盘上的数据库文件。

    想要保证复制的物理文件和真实的数据库文件一致,需要保证当前数据库没有写入。如果数据库有写入,则复制的数据是不准确的。所以,物理复制必须在MongoDB实例停机状态或者定状态下进行。一般来讲,在MongoDB集群中,我们会使用锁定从库的办法来进行备份。

    通常情况下,使用:

db.fsyncLock()  锁定从数据库。

db.fsyncUnlock() 解锁数据库

    锁定从节点的数据库之后,在从节点上使用物理文件拷贝的方式进行备份即可。

    备份完成即可解锁数据库。

最后,数据备份的时候,如果有写入,那么备份的数据是否会不准确?例如下面这样:

怎么备份与恢复MongoDB数据库

如果我们的备份进度处在中间位置,即:

    A库备份完成的时候,B库没有开始备份

此时分别写入A库和B库两个文档,则最终的备份结果中,A库的数据没有新增的数据,B库的数据有新增的数据,就会产生数据的不一致。为了解决这个问题,备份一般都使用锁定数据库或者停止实例的方法来解决。

    在MongoDB中,可以在从库上进行锁定或者停止实例的备份操作,不建议在线上环境使用MongoDB单库,因为这种情况,备份恢复将会成为一个瓶颈问题。

上述就是小编为大家分享的怎么备份与恢复MongoDB数据库了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么备份与恢复MongoDB数据库

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

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

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

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

下载Word文档
猜你喜欢
  • 怎么备份与恢复MongoDB数据库
    这期内容当中小编将会给大家带来有关怎么备份与恢复MongoDB数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Mongodump工具在MongoDB中,mongodump工具通常用来做备份使用。它有如...
    99+
    2023-06-14
  • PHP与MongoDB数据库备份与恢复
    随着大数据时代的到来,数据备份和恢复变得越来越重要。在这个过程中,很多网站都会使用PHP和MongoDB数据库来备份数据。本文将介绍如何使用PHP编写MongoDB数据库备份和恢复脚本。一、MongoDB数据库备份MongoDB数据库备份分...
    99+
    2023-05-15
    PHP MongoDB 备份与恢复
  • mongodb数据备份与恢复怎么实现
    要在MongoDB中实现数据备份和恢复,可以使用以下方法:备份数据:1. 使用mongodump命令来备份数据。该命令可以导出整个数...
    99+
    2023-10-20
    mongodb
  • mongodb怎么恢复备份数据
    要恢复 MongoDB 的备份数据,可以按照以下步骤进行操作:1. 首先,确保你已经创建了一个 MongoDB 的备份。备份可以通过...
    99+
    2023-08-31
    mongodb
  • 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
  • Oracle数据库怎么备份与恢复
    本篇内容主要讲解“Oracle数据库怎么备份与恢复”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle数据库怎么备份与恢复”吧!在Oracle数据库的使用过程中,备份与恢复是经常遇到的操作...
    99+
    2023-06-21
  • 数据库备份与恢复
    数据库备份与恢复 一、物理备份和逻辑备份二、mysqldump实现逻辑备份2.1 备份一个数据库2.2 备份全部数据库2.3 备份部分数据库2.4 备份部分表2.5 备份单表的部分数据2.6 排除某些表的备份2.7 只备份结构或只备...
    99+
    2023-08-18
    数据库 mysql sql
  • Redis怎么备份与恢复数据库数据
    Redis怎么备份与恢复数据库数据?其实要解决这个问题也不难,为此小编总结了这篇文章,下面我们一起来看看Redis备份与恢复数据库的方法。Redis所有数据都是保存在内存中。下面讲述三种备份方式:1.定期地...
    99+
    2022-10-18
  • mongodb的备份与恢复
    1.MongoDB 如何备份? >[root@service bin]# mongodump    备份数据       进行备份之后,如果你没指定备份目录会在当前目录自动生成dump备份文件   数据备份成功效果图     ...
    99+
    2018-12-18
    mongodb的备份与恢复
  • MongoDB之备份与恢复
    MongoDB数据备份 在Mongodb中我们使用mongodump命令来备份MongoDB数据。该命令可以导出所有数据到指定目录中。 mongodump命令可以通过参数指定导出的数据量级转存的服务器。 语...
    99+
    2022-10-18
  • Redis数据库备份与恢复
    Redis所有数据都是保存在内存中。下面讲述三种备份方式:1.定期地通过异步方式保存到磁盘上,该方式称为半持久化模式。1)半持久化RDB模式也是Redis备份默认方式,是通过快照完成的,当满足redis.c...
    99+
    2022-10-18
  • Sqlite—数据库备份与恢复
    数据库备份 例如:备份 /www/wwwroot 下面的 task.db 数据库 进入数据库 [root@localhost ~]# sqlite3 /www/wwwroot/task.db 备份数据库 sqlite> .output...
    99+
    2016-10-11
    Sqlite—数据库备份与恢复
  • Mysql数据库备份与恢复
    1 数据备份与恢复2 使用第三方软件进行备份1 数据备份与恢复1.1 数据备份方式物理备份:直接拷贝库或者表对应的文件。cp,tar, ...具有局限性,前提是表的存储引擎为myisam,跨平台性...
    99+
    2022-10-18
  • MongoDB中怎么实现备份与恢复
    今天就跟大家聊聊有关MongoDB中怎么实现备份与恢复,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一 mongoexport/mongoimpor...
    99+
    2022-10-18
  • PHP与Memcached数据库备份与恢复
    随着互联网的快速发展,大规模MySQL数据库备份和恢复成为各大企业和网站必备的技能之一。而随着Memcached的广泛应用,如何备份和恢复Memcached也成为了一个重要的问题。PHP作为Web开发的主力语言之一,在处理备份和恢复MySQ...
    99+
    2023-05-15
    PHP memcached 数据库备份
  • linux 下mongoDB备份与恢复
    在你安装mongodb的bin目录下 ygzj_dev数据库名#mongodb备份./mongodump -h 127.0.0.1:27017 -d ygz...
    99+
    2022-10-18
  • mysql怎么备份与恢复数据
    本篇内容介绍了“mysql怎么备份与恢复数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、直接物理文件...
    99+
    2022-10-18
  • 【备份恢复】}异机备份恢复数据库
    此实验是在B库上恢复A库,不过更改了实例名。 目标库只是按照到oracle软件为止。 源库(A库):  192.168.56.12 ORACLE_SID=DBdb DBID=328289773...
    99+
    2022-10-18
  • MySQL数据库的备份与恢复
    一、数据备份的重要性 备份的主要目的是灾难恢复。 在生产环境中,数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。 造成数据丢失的原因: 程序错误人为操作错误运算错误磁盘故障灾难(如火灾、地震)和盗窃 二、数据库备份...
    99+
    2023-10-27
    数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作