为什么 mongodump 不备份索引?

2024-04-24

在阅读 mongodump 文档时,我发现了此信息。 “mongodump 在其备份数据中仅捕获数据库中的文档,不包含索引数据。mongorestore 或 mongod 必须在恢复数据后重建索引。”

考虑到索引也是数据库难题的关键部分,并且它们需要重建,为什么 mongodump 没有选择使用索引进行备份?

我知道不备份索引作为默认选项有两个优点: 1. 我们节省了备份和恢复索引所需的时间。 2. 我们节省了存储备份所需的空间。

但为什么不把它作为一种选择呢?


mongodump从 MongoDB 数据库创建数据的二进制导出(BSON 格式)。指数定义备份于<dbname>.metadata.json文件,所以mongorestore可以重新创建原始数据和索引。

实际索引无法备份的主要原因有两个mongodump:

  • 索引指向数据文件中的位置。如果您仅导出数据文件中的文档(而不是获取数据文件的完整文件副本),则数据文件不存在。

  • 磁盘上索引的格式是特定于存储引擎的,而mongodump旨在独立于存储引擎。

如果你想要数据和索引的完整备份,你需要通过复制底层数据文件进行备份 https://docs.mongodb.com/manual/core/backups/#back-up-by-copying-underlying-data-files(通常通过使用文件系统或 EBS 快照)。对于大型部署来说,这是更常见的选项,因为mongodump需要将所有数据读入mongod进程(如果您的数据库大于内存,这将驱逐您的一些工作集)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 mongodump 不备份索引? 的相关文章

  • mongodump“失败:错误选项:只能将单个集合转储到标准输出”

    mongodump out 不起作用 它给了我这条消息 失败 错误的选项 只能将单个集合转储到标准输出 会发生什么 因此 例外是不言自明的 如果您使用 out 它只能在标准输出上显示单个集合 所以我想知道你想达到什么目标 如果你想输出一个特
  • 从mongoDB和Nodejs获取数据:toArray不是函数错误[重复]

    这个问题在这里已经有答案了 我有以下代码 var user User find limit 1 skip 10 toArray 但我收到错误消息toArray不是一个函数 但如果我执行以下操作 我将获得所有记录 User find func
  • 多个 2dsphere 索引,不确定要运行 geoNear 中的哪一个

    我在用 geoNear and near在 MongoDB 的聚合内部 我有将我的 MongoDB 数据库托管到 mlabs 中 And 我本地一切正常 但不知道为什么当我部署应用程序时出现以下错误 geoNear 命令失败 ok 0 0
  • 如何在docker compose中运行mongodb副本集

    我尝试在我的 Mac 中使用 mongodb community 在本地运行 mongodb 副本集MongoDB 文档 https docs mongodb com manual tutorial convert standalone t
  • 将 MongoDb 同步到 ElasticSearch

    我正在寻找一种将 MongoDB 中的集合与 Elastic Search ES 同步的方法 目标是以 MongoDB 作为主要数据源 并使用 MongoDB 作为全文搜索引擎 我的项目的业务逻辑是用python写的 网上有多种方法可供选择
  • 猫鼬模式创建

    我刚刚开始使用猫鼬 我有一个使用 mongoose 的创建脚本 它使用示例数据创建模式和数据库 现在我编写实际的应用程序 我是否需要在每次应用程序运行时创建架构对象 或者它是否已经以某种方式可用 换句话说 我是否需要在每个使用 mongoo
  • MongoDb聚合

    如何使用 mongoDb 聚合编写模拟查询 select count as ccount from a group by a someField order by ccount desc limit 1 使用 mongoDb 中的 grou
  • MongoDB - 编辑器变量 - MongoDB shell - Windows 7

    EDITOR 变量功能真的可以在 Windows 7 上使用吗 我正在读一篇文章 说一旦我们设置了 EDITOR 变量在 mongorc js 中 我们只需在 shell 中输入 编辑变量名 and var name将被加载到编辑器中 在我
  • 在 MongoDB 中查找 7 天前的记录

    我有一个包含对象的集合 如下所示 1 id ObjectId 551c6605e4c6ac495c923aab sender id ObjectId 551c6605e4c6ac495c923aac rep sender id 38 sen
  • 如何获取 bson 文档的大小(以字节为单位)

    bson文档的size 函数返回的int值是字节数吗 无法找到此 API 的详细信息 如何获取 bson 文档的大小 以字节为单位 这是我的代码 import org bson Document MongoDatabase db Mongo
  • 聚合和展开数组,但保留顶级键

    假设我的收藏中有以下文档Classes收藏家 id ObjectId 5df58d45244a850d54b922c8 mentors numOfMentors NumberInt 1 mentorList ObjectId 5c9ba63
  • Mongoose嵌入式文档更新

    我在嵌入式文档更新方面遇到问题 我定义的架构 var Talk new Schema title type String required true content type String required true date type D
  • 如何在Mongodb java驱动程序中编写多个group by id字段

    在下面的查询中 group id success success responseCode responseCode label label max timeStamp timeStamp 1 count responseCode sum
  • 检索 mongoDB 文档中的空数组或 null

    我有我学校所有学生的收藏 每个文档都有一个sports列出每个学生从事的运动的数组属性 但该属性可能显示为sports or sports null或者根本不出现 如何检索属于上述三种情况之一的所有文件 如何向只有一项运动但未表示为数组的学
  • MongoDB 复合键:InvalidOperationException:{document}.Identity 不受支持

    我在水合由复合 ID 组成的类时遇到问题 该复合 ID 又具有基类 我收到一条错误消息InvalidOperationException document Identity is not supported 我试图写入数据库的类如下 pub
  • Java MongoDB 获取子文档的值

    我试图从子文档中获取键的值 但我似乎无法弄清楚如何使用 BasicDBObject get 函数 因为键嵌入了两层深度 这是文档的结构 File name file 1 report name report 1 group RnD 基本上一
  • Mongodb 数据库上的 SASL 身份验证失败

    我在尝试使用 PHP Mongodb 驱动程序连接到 Mongodb 时遇到问题 实际上我有一个名为 LRS 的数据库 它有一个名为 juano 的用户 在我的设置文件中带有密码 12345 我确信我编写了正确的配置 但是当我在 Larav
  • MongoDB自增ID

    MongodB 中自动生成的 ID 的大小为12 Bytes大整数的大小是8 bytes 我在 4 台运行 Ubuntu Server 的机器上有一个 mongodb 集群 但我现在只是在测试 插入只能通过一台服务器 即 Nodejs 服务
  • Mongodump之后,调用MongoRestore挂起

    我们正在尝试在相对较小的数据库上做一个简单的 MongoDump 我们的步骤很简单 export 从目标机器上删除现有数据库 在目标机器上导入 MongoDump 完美执行 mongodump out root mongo prod DB
  • Pymongo 批量插入

    我正在尝试批量插入文档 但批量插入时不会插入超过 84 个文档 给我这个错误 in insert pymongo errors InvalidOperation cannot do an empty bulk insert 是否可以批量插入

随机推荐

  • 由于 ssl 错误,无法在 python 3.6 中 pip 安装软件包

    我正在远程服务器上工作 当我尝试在虚拟环境中使用 pip 安装任何内容时 出现错误 venv barta bivoj program pip install r requirements txt pip is configured with
  • java方法中的可选参数

    我想制作一个需要 1 个必需参数和 1 个可选参数的方法 但我发现如何制作一个可选数组 方法是在参数 int b 中制作 但这是一个数组 我想制作它只是这个值是 null 或用户输入它 我可以通过创建 2 个同名的方法来实现它 但一个具有单
  • Android:如何将十字图标放在 autocompletetextView 顶部

    我在将十字按钮放在文本视图顶部时遇到问题 我正在使用 LinearLayout 并且它没有出现 而在 Framelayout 上它可以工作 但这并不能解决我的目的 我附上我的 XML 供参考 请帮助我解决这个问题
  • cppreference 使用术语“[对象的]标识”对于 c++11 和 c++17 来说是两种不同的含义吗?

    我以为我已经设法完全理解 在其他 SO 问题的帮助下 谢谢 C 17 关于值类别的更改 但现在我注意到这个问题 这表明我并不真正理解它们 在 C 11 中 对值类别有 具有同一性 可以从其中移动 的解释 并且 同一性 含义的定义仍然存在于参
  • 使用 Gremlin 查询语言获取边属性以及源和目标顶点 ID

    我正在尝试检索边缘属性作为值以及目标和源节点 ID 我当前的数据库如下所示 Edge id label outV inV name ID 0 edge 0 1 E 0 Nodes id label name ID 0 node A 0 1
  • 如何设置 SBT 构建以在 Jenkins 测试失败时返回零退出代码?

    当我通过 SBT 在 Jenkins 中运行 Specs2 测试时 一旦一个测试失败 构建就会被标记为失败 由于 Jenkins 通常会区分构建失败和测试失败 所以我想改变这一点 我知道 Jenkins 中的构建失败是通过调用 SBT 的退
  • 使用带有 Django CSRF 保护的 angular2 http 请求的正确方法是什么?

    在Angular1中可以通过配置 http provider来解决这个问题 喜欢 app config function httpProvider httpProvider defaults xsrfCookieName csrftoken
  • 对 VBO 中的特定三角形使用不同的纹理

    我有 9 个由三角形组成的四边形 如下所示 我在用着VBO存储有关它们的数据 它们的位置和纹理坐标 我的问题是 是否可以仅使用一个来使四边形 5 具有与其余四边形不同的纹理VBO and shader 绿色代表纹理 1 黄色代表纹理 2 到
  • 如何使用 opencv 从字节显示视频?

    我正在开展一个项目 其中我们使用无线电调制解调器将数据 视频和遥测 从无人机传输到地面站 我们需要做的是实时显示视频 并能够知道 C 中的每一块遥测数据对应哪一帧 数据被解封装为遥测和视频 mpeg4 字节 由于我对 OpenCV 有一些经
  • 在python中读取.xlsx格式

    我必须在 python 中每 10 分钟读取一次 xlsx 文件 做到这一点最有效的方法是什么 我尝试过使用 xlrd 但它不读取 xlsx 根据他的文档 但我不能这样做 获取Unsupported format or corrupt fi
  • Pulp.solvers.PulpSolverError:PuLP:无法执行glpsol.exe

    我是 python 和优化的新手 我收到一些错误 请帮我解决 我尝试在运行 Anaconda 3 的 PyCharm 中运行下面提到的代码 from pulp import x LpVariable x 0 3 y LpVariable y
  • 在不刷新页面的情况下如何使用ajax/jQuery显示数据库中的值

    通过jQuery ajax将数据插入数据库后 同时从数据库获取值而不刷新页面如何使用codeigniter显示数据库值 这是我的代码 Script
  • Go TCP 读取是非阻塞的

    我正在尝试用 Go 创建服务器和客户端 我已经成功地与服务器和客户端进行通信 但我遇到的问题是golang中的TCP读取是非阻塞的 我想知道 golang 中的读取是否有可能像 C 中的读取一样阻塞 谢谢 EDIT 这是服务器的源代码 fu
  • Brython 完全是客户端吗?

    我有一段用Python编写的代码 我想将该代码放在网页中 Brython 似乎是将这两件事粘合在一起的最简单方法 但我没有可以在服务器端实际运行代码的服务器 Brython 是否需要服务器端代码 或者我可以通过 例如 Dropbox 便宜地
  • 具有多个构造函数的 C++ init 成员变量

    通常构造函数应该是这样的 ctor1 SmallSim SmallSim mSimInit false mServersCreated false mTotalCPUTime 0 如果我有多个构造函数会怎样 在我看来 如果我从第二个构造函数
  • HttpSecurity、WebSecurity 和 AuthenticationManagerBuilder

    谁能解释一下何时覆盖configure HttpSecurity configure WebSecurity and configure AuthenticationManagerBuilder 配置 AuthenticationManag
  • 以编程方式创建 dataList

    我正在尝试以编程方式创建一个表 其中一个单元格包含数据列表 下面是片段 CustomTag phone form class PhoneForm extends PolymerElement observable List
  • CameraX 多个后置摄像头

    我正在尝试使用 CameraX 实现自定义相机应用程序 鉴于现在很多新设备都有多个后置摄像头 我也想将其包括在内 所以基本上 用户可以选择使用哪个相机 我已使用 addCameraFilter 选项尝试了以下操作 val cameraSel
  • 在 Android 项目中使用“compileOnly”范围?

    我在项目中使用 Gradle 2 12 或更高版本 以及适当版本的 Android Gradle 插件 Gradle 2 12 引入了compileOnly配置 那么为什么当我尝试使用它时会出现错误呢 找不到参数的compileOnly 方
  • 为什么 mongodump 不备份索引?

    在阅读 mongodump 文档时 我发现了此信息 mongodump 在其备份数据中仅捕获数据库中的文档 不包含索引数据 mongorestore 或 mongod 必须在恢复数据后重建索引 考虑到索引也是数据库难题的关键部分 并且它们需