【问题标题】:Changing three standalone mongodb servers to a replica set?将三个独立的 mongodb 服务器更改为副本集?
【发布时间】:2012-09-24 20:00:09
【问题描述】:

我有三个独立的 MongoDB 数据库服务器,每个服务器都有不同的数据,但数据库和集合名称相同。我已经将它们转换为一个复制集,现在每当我从主服务器读取数据时,我只能从复制集初始化之前获取该特定服务器上的数据。这是预期的行为吗?我是否必须等待所有服务器同步后才能读取所有三个数据库中的数据?

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    当您初始化副本集时,每个辅助节点都会从主节点同步数据,以确保所有节点都拥有相同的数据副本 - 不会“合并”数据。成为辅助节点的两个节点将完全擦除并重新同步它们的数据。

    http://docs.mongodb.org/manual/core/replication-internals/#syncing

    如果两个辅助节点的数据没有在任何地方备份,您可能已经丢失了。

    【讨论】:

    • 我在文档中没有看到任何说明数据已被清除的内容,您确定吗?我将尝试删除它,看看数据是否仍然存在。
    • 好的,所以我在辅助上设置了 rs.slaveOk() ,你是对的,数据消失了。这没什么大不了的,因为这只是数据收集的开始,无论如何它也没有真正的价值。谢谢
    • 不用担心。将来,您应该确保在启动副本集时数据目录是干净的。然后,您可以对来自其他数据库的现有数据执行 mongodump 和 mongoimport 以将其引入副本集。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    相关资源
    最近更新 更多