gpt4 book ai didi

mongodb - 无需停机即可迁移 MongoDB 实例

转载 作者:行者123 更新时间:2023-12-02 01:54:41 24 4
gpt4 key购买 nike

我们在生产环境中使用 MongoDB,现在,由于当前服务器的一些问题,我将更改服务器并启动一个新的 MongoDB 实例。

我们有一个副本集和一个 mongod 实例(用于不同目的的两个不同的 MongoDB 网络)。现在,首先我应该将单个 mongod 实例迁移到新服务器,然后将整个副本集迁移到新服务器。

我想知道的是,如何在不停机的情况下迁移两个实例?我不想关闭服务器或停止写入操作。

提前致谢。

最佳答案

因此,首先您不应该将 mongodb 作为生产的单个实例运行。您至少应该有 1 个主要节点、1 个辅助节点和 1 个仲裁器。

其次,即使使用副本集,在切换主节点时也总会有一些写入停机时间,因为在选举过程中不可能进行写入。来自文档:

IMPORTANT Elections are essential for independent operation of a replica set; however, elections take time to complete. While an election is in process, the replica set has no primary and cannot accept writes. MongoDB avoids elections unless necessary.

例如,当您关闭主数据库以将其移动到新服务器或虚拟实例,或者升级数据库版本(例如从 2.4 到 2.6)时,就会发生选择。

通过设置适当的选项以允许针对辅助副本运行查询,您可以将现有副本集的停机时间降至最低。再次来自文档:

Maintaining availability during a failover. Use primaryPreferred if you want an application to read from the primary under normal circumstances, but to allow stale reads from secondaries in an emergency. This provides a “read-only mode” for your application during a failover.

这至少可以处理读取问题。处理写入的最佳方法是让应用程序重试失败的写入,或将它们排队。

关于您的独立系统,转换为副本集的记录程序经过了充分测试,可以非常快速地完成,并且停机时间最短:

http://docs.mongodb.org/manual/tutorial/convert-standalone-to-replica-set/

关于mongodb - 无需停机即可迁移 MongoDB 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23688043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com