迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > MongoDB >

创建数据库的 MongoDB 转储

作者:迹忆客 最近更新:2023/03/17 浏览次数:

在本篇 MongoDB 文章中,你将获得 MongodumpMongorestore 的演练,如何使用它们,以及使用这两种工具备份和恢复你的集合的一些简单示例。

MongoDB 中的 mongodump 命令

Mongodump 是一个从数据库内容创建二进制导出的工具。此工具支持 mongodmongos 实例。

用户可以使用 Mongodump 从独立、副本、集合和分片集群安装中导出数据。

Mongodump 曾经定期更新,每当 MongoDB 服务器升级时都会提供新版本。但是,该实用程序自 MongoDB 4.4 以来就已进行了版本控制。当前版本 100.2.1 支持 MongoDB 3.6、4.0、4.2 和 4.4。

即使支持所有以前版本的 MongoDB,Mongodump 也可能不完全兼容它们。该小工具充当备用计划。

如果 IT 专业人员想要计划备份(集合),这是他们每天备份和恢复数据库的一种方法。例如,Mongodump 可以将所有内容保存在一个文件中,并且以后可以使用 Mongorestore 来完全恢复数据库。

我们可以从系统命令行而不是 mongo shell 执行 mongodump 命令。mongodump 命令结构如下:

mongodump <options> <connection-string>

-uri 和正确结构化的字符串或标志选项,如 -user-db-password 可用于连接到 mongo 数据库。不幸的是,用户不能将两个不同的命令合并为一个。

使用 mongodump 命令创建数据库的 MongoDB 转储

mongodump 可以使用 localhost 使用以下命令转储名为 database1 的集合,使用 URI 格式和用户信息。

mongodump --uri="mongodb://uberuser:mydatabse123@localhost:27107/database1?ssl=false&authSource=admin"

使用标准标志的 mongodump 命令的另一个示例如下所示:

mongodump --user=uberuser --db=database1 --password=mydatabse123 --authenticationDatabase=admin

数据库备份也可以保存为存档文件。相比之下,将文件转储到目录中并不好。

这些选择用于切换服务器或跨主机传输数据。 -archive 选项允许用户提供存档的名称。

此选项生成一个文件,该文件可以使用 Mongorestore. 重新导入数据库。

如果数据库的名称与要转储的数据库相同,请使用正确名称的 -authenticationDatabase 标志。使用 URI 时,请确保 authSource 组件链接到正确的数据库。

典型的 mongodump 方法将整个数据库转储到单个转储目录中,默认情况下命名为 dump.。该目录将在我们运行命令的同一目录中创建。

数据库将以目录中的子文件夹命名。在前面的示例中,这将是 database1;因此,新结构将是 ./dump/database1.

相应文件夹中的数据库集合将有两个单独的文件——一个 BSON 和一个 JSON 文件。

.metadate.json 文件将遵循类似的结构,包含诸如 options, indexes,ns 之类的元数据以匹配集合的命名空间。BSON 文件中的 .bson 文件将保留集合的数据。

用户可以在 mongodump. 中自定义输出的特定行为。

可以在转储目录中使用诸如 -out 之类的标志来提供应转储数据库的目录名称。例如,转储目录可以称为 dumbbase.,而不是转储。

下面是命令的显示方式。

mongodump --user=user123 --db=database1 --password=mydatabse123 --authenticationDatabase=admin --out=dumbbase

默认情况下,所有集合都转储到输出文件夹中。文件夹的名称将被添加到数据库中。

用户可以通过一次仅备份一个集合来进一步限制实用程序的功能。用户可以使用 -collection 参数指定要转储的集合。

如果只转储行动人物集合,则示例 mongodump 命令将是:

mongodump --user=user123 --db=database1 --password=mydatabse123 --authenticationDatabase=admin --out=dumbbase --collection=action_figures

我们还可以使用命令创建以下文件夹结构:

.
 |_dumbbase
 |_database1
 |_action_figures.metadata.json
 |_action_figures.bson

可以根据用户需要多次使用该命令一次备份一个集合。这些说明不会覆盖输出文件夹的内容。

下面是将 older 集合添加到转储文件夹的示例。

Mongodump --user=user123 --db=database1 --password=mydatabse123 --authenticationDatabase=admin --out=action_figures --collection=older

database/database1 文件夹将使用附加的 older.metadata.jsonolder.bson 文件创建,其结构如下所示:

.
 |_action_figures
   |_database1
     |_action_figures.metadata.json
     |_action_figures.bson
     |_older.metadata.json
     |_older.bson

使用 mongodump 命令创建所有数据库的 MongoDB 转储

备份和归档所有文件也是可行的。

将所有内容清空到转储目录不是一个好主意。此选项最有助于在主机之间移动数据或在服务器之间传输备份文件。

它使用 -archive 开关允许用户命名存档文件。此选项生成一个文件,我们可以使用 mongorestore 重新导入数据库。

因此,用户不能同时使用 -archive-out 选项。

mongodump 命令将转储以下示例中的所有数据库(集合):

mongodump --db=database1 --username=uberuser --password=mydatabse123 --authenticationDatabase=admin --archive=database1.archive

使用 mongorestore 命令恢复 Mongo 数据库

mongorestore 程序与 mongodump 完全相反,允许用户恢复数据库。应用程序从二进制数据库转储或 Mongodump 工具中读取数据。

mongorestoremongoimport 不同,因为它只是插入数据。

应用程序无法替换数据库中的现有文档。它包含任何必要的升级。

如果文档的 id 已经存在,则不会替换该文档。否则,mongorestore 可以建立一个新的数据库或更新一个已经存在的数据库。

运行 mongorestore 的唯一条件是拥有转储目录的路径。可以使用以下 mongorestore 示例:

mongorestore dump/

如果将 localhost 指定为主机,并且数据库名称与转储目录中子文件夹的名称匹配,则将生成数据库。当使用远程主机时,命令更加复杂。

用户必须添加 -uri 标志或所有常规连接标志,例如:

--host
--db
--username
--port
--password

该应用程序也不需要恢复整个数据库。只能恢复单个集合或集合列表。

用户可以使用 -collection-db 选项并输入 BSON 文件的位置。在这种情况下,-collection 指的是数据库集合的名称:

mongorestore --db=newdb --collection=novels dump/mydb/product.bson

虽然这个命令是有效的,但它不是最优的。 -nsInclude 选项是恢复各种集合的首选方式。

此选项允许用户选择用于恢复 mongo 数据库集合的命名空间模式。

例如,如果转储目录删除了名为 databasedatabase2 的数据库,文件夹的最终结构可能如下所示:

.
 |_dump
   |_database
     |_product.metadata.json
     |_product.bson
     |_order.metadata.json
     |_order.bson
   |_db2
     |_product.metadata.json
     |_product.bson
     |_order.metadata.json
     |_order.bson

database 可能会被分离并导入以在本地环境中使用 -nsInclude. 恢复。命令如下:

mongorestore --db=database1 --nsInclude="database.*" dump/

从数据库 database1 溢出的 database 中的所有集合都将使用上面的命令恢复。但是,即使数据保存在同一个转储目录中,该操作也没有修复 database2 中的任何内容。

结论

正如本文中所讨论的,mongodump 是一个有用的工具,它允许你通过一些指令来备份集合。整个集合可能会被吐出到一个文件中,只需要一个命令。

该程序足够灵活,可以仅备份数据库的所需位,并且它有多种选择来更改你需要保存的数据。

已经开发了许多技术来简化管理数据库的任务。使用这些重要的工具和说明可以快速、干净地完成必须重复的复杂过程。

整个数据库或特定部分可以通过单个命令进行备份或恢复。mongodump 可以在处理 MongoDB 数据库(集合)时使用。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

比较 MongoDB 中的字段

发布时间:2023/04/21 浏览次数:51 分类:MongoDB

在本文中,我们将了解如何比较 MongoDB 中的两个字段。 此外,我们将看到一个相关的示例和解释,以使主题更容易理解。

清除或删除 MongoDB 中的集合

发布时间:2023/04/21 浏览次数:147 分类:MongoDB

本篇文章将告诉大家如何删除 MongoDB 数据库中的集合以及删除 MongoDB 中的集合的不同方法。

MongoDB 截断集合

发布时间:2023/04/21 浏览次数:178 分类:MongoDB

可以根据需要选择两个选项之一来截断下面的集合。 在今天的文章中,我们将学习如何在 MongoDB 中截断集合。

删除 MongoDB 中的重复项

发布时间:2023/04/21 浏览次数:151 分类:MongoDB

在本文中,我们将了解如何删除 MongoDB 中的重复条目,并且我们还将看到一个带有适当解释的示例,以使主题更容易理解。

使用 NodeJS 检查 MongoDB 中是否存在集合

发布时间:2023/04/21 浏览次数:194 分类:MongoDB

在本文中,我们将检查 MongoDB 数据库中是否存在一个集合,并且我们还将查看与主题相关的示例,以使主题更容易理解。 为此,我们将使用 Node.js。

MongoDB 中的唯一索引

发布时间:2023/04/21 浏览次数:144 分类:MongoDB

在这篇教学文章中,您将了解唯一索引、它们是什么以及如何在 MongoDB 中使索引唯一。 此外,还简要详细地解释了使用户的电子邮件在 MongoDB 中唯一。

在 MongoDB 中创建索引

发布时间:2023/04/21 浏览次数:104 分类:MongoDB

索引有助于有效解决查询。 如果没有索引,MongoDB 必须遍历集合中的每个文档才能找到与查询匹配的文档。因此,在今天的文章中,我们将学习如何在 MongoDB 中创建索引。

MongoDB 中的稀疏索引

发布时间:2023/04/21 浏览次数:142 分类:MongoDB

在本文中,我们将讨论 MongoDB 中的稀疏索引。 此外,我们将提供一个相关示例并进行解释,以使该主题更容易理解。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便