2016-09-07 125 views
1

完成mongo的重新安装后,它仍然记得以前的副本集配置;它存储在哪里?mongo复制设置存储在哪里?

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

我已经检查可能一直抱着副本集配置几个方面:

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

有没有人知道mongo在哪里存储这个配置信息?

+0

一个好的起点是你的Mongo Shell中的rs.help()和rs.status()。 rs.conf()显示您当前的复制配置。 – dyouberg

+0

其实,rs.status()是我如何知道它提出了所有的原始信息。不幸的是,它没有提供关于信息存储在机器上的物理位置的信息。不过谢谢。 –

回答

4

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

该数据库的物理文件(也用于其他数据库)存储在dbPath directory,可使用被配置:

默认dbpath值为/data/db

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

+0

我上面不清楚,但是我正在设置我正在删除的mongo目录下的'dbPath'。但我只是经历了整个过程,并且rs配置信息消失了。这是我本来预期的第一位。可能我早些时候倒退了其中一个步骤。我将继续并将其作为正确答案进行检查,因为它应该是这样,并将其标记为用户错误。 –

相关问题