mongo 复制设置存储在哪里?

Sco*_*Law 1 replication mongodb mongodb-replica-set

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 在哪里存储此配置信息?

kev*_*adi 5

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

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

默认dbpath值为/data/db

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