【问题标题】:Where are mongo replication settings stored?mongo 复制设置存储在哪里?
【发布时间】:2016-09-07 14:31:39
【问题描述】:

完全重装完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 将这些配置信息存储在哪里?

【问题讨论】:

  • Mongo Shell 中的 rs.help() 和 rs.status() 是一个很好的起点。 rs.conf() 显示您当前的复制配置。
  • 实际上,rs.status() 是我知道它提供了所有原始信息的方式。不幸的是,它没有提供有关信息存储在机器上哪个物理位置的信息。不过还是谢谢。

标签: mongodb replication mongodb-replica-set


【解决方案1】:

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

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

默认dbpath 值为/data/db

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

【讨论】:

  • 我上面并不清楚,但我正在设置 dbPath,它位于我要删除的 mongo 目录中。但是我只是再次经历了整个过程,并且 rs 配置信息消失了。这是我一开始所期望的。可能我之前倒退了一步。我将继续检查这是正确的答案,因为它应该是,并将其标记为用户错误。
猜你喜欢
  • 1970-01-01
  • 2014-11-06
  • 2014-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多