存储mongo复制设置的位置在哪里?

时间:2016-09-07 14:31:39

标签: mongodb replication mongodb-replica-set

完全重新安装mongo之后,它仍然记得之前的副本集配置;它存放在哪里?

我使用我们项目的用户帐户在Linux服务器上安装了mongo到该用户拥有的目录中。我设置了复制,并使其正常工作。然后,为了测试一些更精细的安装点,我删除了整个mongo目录并重新安装。进入mongo,我发现复制已经像以前一样设置了;所以似乎mongo正在某处存储信息。

我检查了几个可能一直持有副本集配置的区域:

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

1 个答案:

答案 0 :(得分:4)

复制数据存储在每个节点的local database中(从MongoDB 3.2.9开始)。此数据库包含有关副本集的信息,还包含oplog<!-- app/views/images/_modal.html.erb --> <div class="modal fade"> ... <%= image_tag(image.url, class: "img-responsive") %> ... </div> 集合)。副本集信息存储在此oplog.rs数据库的system.replset集合中。

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

默认storage.dbPath值为dbpath

如果清空/data/db目录,则不会保留副本集设置。如果您发现保留了复制设置,则dbpath设置可能不正确。