为什么 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 不备份索引? 的相关文章

  • 即席查询/更新是否开始影响您使用 MongoDB 的工作效率?

    我开发一个 ASP MVC 网站已经快一年了 现在完全在 mongodb 上 我大部分时间都喜欢它 使用 C mongodb 驱动程序和 mongovue 等工具 开发效率非常高 然而 我已经开始达到这样一个地步 有些事情我真的希望我有一个
  • 使用多个条件更新 mongodb 中嵌套数组中的对象

    mongo 中的示例文档如下所示 但是我的集合有几千个文档 其中一些具有以下所有测试 有些仅具有以下测试的子集 id ObjectId 52435f0f6f73205f7d37a2b0 ID schoolID 1234 institutio
  • Mongoose VersionError:保存文档时找不到 id 的匹配文档

    通过 sync API 请求同步用户购物车时 我反复看到以下错误 每当用户更改购物车的内容时就会调用此函数 VersionError 找不到 id 的匹配文档 2y4b1hq601cd013e0af25e32 版本4修改路径 购物车 car
  • Mongoose,索引位置数组

    我在文档中有一个位置数组 我想在该数组上添加 2dSpere 索引 那可能吗 var LocationSchema new Schema type type String required true geometry type type S
  • Mongoose:find() 忽略重复值

    我有一只 聊天 猫鼬Schema它具有以下属性 const schema mongoose Schema recipient type mongoose Types ObjectId required true ref User sende
  • Mocking/Stubbing Mongoose 模型保存方法

    给定一个简单的 Mongoose 模型 import mongoose Schema from mongoose const PostSchema Schema title type String postDate type Date de
  • 查询 MongoDB 以匹配数组中的第一项

    我知道 in运算符 它似乎搜索数组中是否存在某个项目 但我只想在该项目位于数组中的第一个位置时找到匹配项 例如 id ObjectId 0 imgs http foo jpg http bar jpg http moo jpg id Obj
  • Mongodb 获取聚合框架中的最后组合

    有一个消息集合 date NumberLong 1421134514 sender 53172480f9cd0e682840b9f7 recipient 52f37fbaf9cd0e02773c97b1 isRead false id 54
  • Robo 3T 错误:网络无法访问

    我正在尝试将 Robo 3T 连接到我的在线数据库 但它似乎不起作用 我可以用它连接到本地数据库 我尝试使用 MongoDB Compass 进行连接 详细信息和身份验证工作正常 我能够连接 但当我在 Robo 3T 中连接相同的细节时 它
  • 如何使用node在mongodb中插入长值?

    我需要在 mongo 中插入一个属性的 Long 值 var sequences this db collection sequences sequences insert id TEST SEQ value 1 done 但这是以整数形式
  • 在 mongo 中,如何使用 Map Reduce 来按最近排序来获取组

    我看到的 MapReduce 示例使用了诸如 count 之类的聚合函数 但是使用 MapReduce 来获取每个类别中前 3 个项目的最佳方法是什么 我假设我也可以使用 group 函数 但很好奇 因为他们声明分片环境不能使用 group
  • MongoDB 在转换回 Java 对象时出现“NumberLong/$numberLong”问题

    我有一个 json 类似于 Header name TestData contactNumber 8019071740 如果我将其插入到 mongoDB 中 它将类似于 id ObjectId 58b7e55097989619e4ddb0b
  • MongoDB 将字符串转换为数组

    我对 MongoDB 非常陌生 在将数据导入数据库时 遇到一些困难 现在我有一个文档集合 看起来像 db Question findOne id ObjectId 124 Answers 502 784 1060 答案现在存储为单个字符串
  • 保存 Mongoose 文档时出现版本错误

    我有一个问题 不确定我是否做错了什么或者这是一个错误 我有一些产品 每一种都有一系列的变体 我想浏览一些数据并以这些变体加载它 但我遇到了许多 版本错误 找不到匹配的文档 错误 认为我遇到了竞争条件 我为我修改的每个变体依次保存相同的文档
  • 使用 Jackson 与 Java Mongo DBObject 进行高效 POJO 映射

    虽然类似于使用 MongoDB Java 驱动程序将 DBObject 转换为 POJO https stackoverflow com questions 7684223 convert dbobject to a pojo using
  • 使用 spring data mongodb 存储库添加可选查询参数

    我想使用 spring data mongodb 添加可选查询参数 控制器代码 RestController private final ActionService actionService RequestMapping value ac
  • MongoDB - 手册参考示例

    我正在读手册参考 http docs mongodb org manual reference database references document referencesMongoDB 数据库参考文档的一部分 但我不太理解 解析引用字段
  • MongoDB聚合查询性能提升

    我最近开始将数据从 Microsoft SQL Server 转移到 MongoDB 以获得可扩展性 就移民而言一切都很好 该文档有 2 个重要字段 customer timestamphash 年月日 我们在安装 MongoDB 的 Az
  • Mongo聚合查询结果在较少的文档中排序

    我在查询我们的一个馆藏时遇到了一个奇怪的问题将结果聚合到另一个集合中 https stackoverflow com a 25936760 1746118 我正在查询已执行某些操作的唯一用户 并在聚合查询中预测每个用户执行的操作计数 var
  • Sails.js 升级到 v1 反向区分大小写查询

    升级到 sails v1 后 控制器中的所有请求都变得区分大小写 尽管这是预料之中的 但在这里评论道 https sailsjs com documentation concepts models and orm models case s

随机推荐

  • 由于 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 必须在恢复数据后重建索引 考虑到索引也是数据库难题的关键部分 并且它们需