1

完全重装了mongo后,还记得之前的副本集配置;它存储在哪里?

我使用我们项目的用户帐户在 linux 服务器上将 mongo 安装到该用户拥有的目录中。我设置了复制并让它正常工作。然后,为了测试一些更好的安装点,我删除了整个 mongo 目录并重新安装。进入mongo,发现replication已经和之前一样设置好了;所以看起来mongo将信息存储在某个地方。

我检查了几个可能保存副本集配置的区域:

  1. 首先,在 mongo 目录中,但已删除。
  2. 在一些传统的 linux 结构中,可能由 root 拥有,但项目用户没有 root 访问权限,并且由相同运行的 mongo 也不应该。
  3. 项目用户的主目录。现在这确实有一个包含命令行历史的 .dbshel​​l 文件,但仅此而已。我没有看到任何其他相关的文件。
  4. mongo 配置中指定的某个位置。但是我这里只提到了两个路径,一个用于系统日志(systemLog.path),另一个用于存储(storage.dbPath),并且都指向 mongo 目录,该目录已被删除。

有谁知道 mongo 在哪里存储此配置信息?

4

1 回答 1

5

复制数据存储在每个节点的本地数据库中(从 MongoDB 3.2.9 开始)。该数据库包含有关副本集的信息,还包含oplogoplog.rs集合)。副本集信息存储在system.replsetlocal数据库的集合中。

该数据库(以及其他数据库)的物理文件存储在dbPath 目录中,可以使用以下命令进行配置:

  • 启动时的--dbpath参数mongod
  • 配置文件中的storage.dbPath设置

默认dbpath值为/data/db

dbpath如果您清空目录,您的副本集设置将不会保留。如果您发现正在保留复制设置,则可能是dbpath设置不正确。

于 2016-09-08T01:53:21.687 回答