Mongodb从2.6迁移到3没有mangodump,以最大限度地减少停机时间

时间:2015-12-03 12:09:19

标签: mongodb database-migration

目前我们正在运行mongodb 2.6。在生产环境中,实例大小约为70GB。因此,如果我们使用mongodump在mongodb版本之间复制数据,则复制数据需要很长时间。我们不能在生产中长时间停机。所以我们计划从操作系统级别使用底层数据文件。如果我们复制数据文件,如果我们在新版本中使用wiredtiger存储引擎选项,是否会出现任何问题?请指教。是否有其他可用于迁移的开源选项?我们可以简单地指出新的有线虎版本中的现有数据文件夹路径吗?

1 个答案:

答案 0 :(得分:3)

&#34;在一般情况下,从MongoDB 2.6升级到3.0是二进制兼容的“插入式”升级:关闭mongod实例并将其替换为运行3.0的mongod实例。&#34; < / p>

来自:https://docs.mongodb.org/manual/release-notes/3.0-upgrade/

从V2.6迁移到V3.0 WiredTiger有两个步骤

  1. 从V2.6迁移 - &gt; V3.0(但保留MMapV1存储引擎)。 2.6和3.0之间的数据文件是兼容的。此外,您可以使此升级(几乎)对应用程序透明。停止并升级辅助节点二进制文件并重新启动。步骤主要停机,升级并重启。唯一的停机时间是在几秒钟的主要降级期间。
  2. 从V3.0迁移MMapV1 - &gt; V3.0 WiredTiger。 MMapV1和WiredTiger之间的数据文件完全不同。但迁移过程非常简单。对于副本集中的每个节点:
    • 关闭它。
    • 将其配置为在配置文件中使用WiredTiger。
    • 删除数据文件。
    • 重启mongod。
  3. 然后,它将从另一个节点执行初始同步,并使用WiredTiger存储数据。这可能需要一段时间,但只要您的复制滞后足够大应该是一个问题。 70Gb听起来不是那么大!我们正在为7Tb群集管理这些步骤,并不太关注。

    更多细节在这里:

    https://docs.mongodb.org/manual/release-notes/3.0-upgrade/#change-replica-set-storage-engine-to-wiredtiger