【问题标题】:MongoDB replica set - virtual IP , downtime questionsMongoDB副本集-虚拟IP、停机问题
【发布时间】:2021-02-02 17:12:33
【问题描述】:

我有 3 个关于 windows 上 mongodb 上的副本集的问题:

  1. 我目前有一个独立运行,上面有数据,如果我创建一个副本集(添加 2 个辅助节点),我将有停机时间,或者我可以创建副本集并添加 2 个辅助节点,而独立节点(现在是主节点)仍然存在跑步吗?

  2. 2 个从节点会从主节点复制所有数据吗?还有在成为副本集的一部分之前写入独立的数据吗?

  3. 一旦选举,辅助节点成为主节点,但这意味着主节点位于不同的 IP + 端口上,这意味着我还需要自己将写入更改为新的主节点,还是由 mongodb 自己完成?还是需要使用虚拟ip?

【问题讨论】:

    标签: mongodb


    【解决方案1】:
    1. 看看Convert a Standalone to a Replica Set。 您需要更改配置文件并重新启动 MongoDB,这样您的 MongoDB 就会停机。

    2. 是的,每当您向副本集添加新成员时,MonogDB 都会对新的辅助节点执行Initial Sync

    3. 您需要更改连接,请参阅Connect to a MongoDB Replica Set。连接字符串包含所有副本集成员,客户端将(默认情况下)连接到主节点。

    实际上你不必将所有的副本集成员都放在你的连接字符串中,客户端会自动发现它们。但是,如果您只放了一个成员,而这个成员碰巧关闭了,那么您就没有任何联系。

    【讨论】:

    • 感谢您提供快速而出色的答案,只是为了确保:所以我将经历的停机时间只是关闭 mongod 并使用新的 conf 文件作为副本集启动一个新的运行正确的?在进行此类程序之前备份整个独立设备的最佳方法是什么?只是为了确保不会出错
    • 停机时间将是 mongod restart 加上 rs.initiate() 我猜。
    • 对于备份,请使用 mongodumpmongoexport 运行您的集合的导出。或者运行db.fsyncLock() - 这不会停止数据库,但会锁定它,即它会阻止对数据库的任何写入操作。然后您可以对整个dbPath 文件夹进行复制/快照。之后运行db.fsyncUnlock() 解锁数据库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 2023-03-13
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多