【问题标题】:Why mongodump does not backup indexes?为什么 mongodump 不备份索引?
【发布时间】:2016-08-19 16:04:54
【问题描述】:

在阅读 mongodump 文档时,我发现了这些信息。 "mongodump 只在其备份数据中捕获数据库中的文档,不包括索引数据。mongorestore 或 mongod 必须在恢复数据后重建索引。"

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

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

但是为什么不把它作为一个选项呢?

【问题讨论】:

    标签: mongodb


    【解决方案1】:

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

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

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

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

    如果您想要完整备份数据和索引,您需要backup by copying the underlying data files(通常使用文件系统或 EBS 快照)。对于大型部署,这是一个更常见的选项,因为mongodump 需要将所有数据读入mongod 进程(如果您的数据库大于内存,这将驱逐您的一些工作集)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-06
      • 1970-01-01
      • 2011-08-19
      • 2013-07-01
      • 2015-09-07
      • 1970-01-01
      • 2017-03-10
      • 2021-11-06
      相关资源
      最近更新 更多