配置实例使用与数据实例相同的二进制文件时升级Mongodb

时间:2014-04-06 14:24:59

标签: mongodb ubuntu upgrade

我准备将分片的MongoDB环境从2.0.7升级到2.2.9,最终我想升级到2.4.9,但显然我需要通过2.2来实现这一点。 2.2的发行说明指出配置服务器应首先升级其二进制文件,然后是分片。我目前使用与数据实例相同的Mongo二进制文件来配置实例。基本上有三个分片,每个分片有三个副本,每个分片中的一个副本也可以作为配置实例。由于它们共享二进制文件,因此无法独立于某些数据实例升级配置实例。

  1. 假设我已经禁用了平衡器,是否会在所有配置实例导致任何问题之前升级某些数据实例?
  2. 我应该更改配置实例以使用二进制文件的其他副本吗?如果是这样,对于在Ubuntu 12上运行的现有生产设置,最好的方法是什么?
  3. 我是否应该从副本集中删除三个数据实例,升级配置实例,然后再次启动数据实例,有效地更新它们,但顺序正确?这最后一个选项有点毛茸茸,因为有些是初选,所以在将它们从副本集中删除之前我必须先将它们拆下来。当我必须进行下一次升级时,最后一个选项也会再次发生,所以我不是真正的粉丝。

3 个答案:

答案 0 :(得分:0)

我通过以下方式解决了这个问题:

  1. 将新版本的二进制文件添加到新文件夹。
  2. 使用新的二进制文件重新启动配置实例,以便数据实例可以继续使用旧的二进制文件运行
  3. 一旦升级了所有配置服务器,我创建了另一个文件夹,用于从第1步中添加相同的新二进制文件
  4. 然后我使用这些新的二进制文件重新启动数据实例
  5. 现在,同一服务器上的配置实例和数据实例正在使用新的二进制文件,但在不同的文件夹中,以便在下一版本中更容易升级它们
  6. 请注意,升级涉及其他步骤,这些步骤在您应始终遵循的发行说明中指定。但是,这就是我处理发行说明中没有直接解决的共享二进制问题的方法。

    许多教程似乎在单个服务器上使用单个二进制文件来处理数据和配置实例,但是在升级时会出现问题。我建议始终为配置和数据实例使用单独的二进制文件。

答案 1 :(得分:0)

即使配置服务器和数据服务器共享相同的二进制文件,您也可以逐个升级它们。第一步是升级mongodb包。第二步是关闭配置服务器,使用新的二进制文件重新启动它。第三步是关闭数据服务器,使用新的二进制文件重新启动它。

答案 2 :(得分:-1)

我邀请您查看您必须通过的每个版本的发行说明。 MongoDB团队正在解释所有这些步骤。

例如,您可以在这里找到如何从2.2升级到2.4: http://docs.mongodb.org/manual/release-notes/2.4-upgrade/#upgrade-a-sharded-cluster-from-mongodb-2-2-to-mongodb-2-4

基本步骤是:

  • 升级群集中的所有mongos实例。
  • 升级所有3个mongod配置服务器实例。
  • 逐个升级每个分片的mongod实例。

再看看发行说明,这应该是你的第一步;)