MongoDB数据大小显示了show数据库和DBPath的差异

时间:2017-11-23 06:31:05

标签: mongodb mongodb-replica-set

我们的MongoDB是使用replicaset创建的,由于某些原因节点出现故障。现在启动后它没有启动/无法找到主要和次要。从日志中我们发现了这个错误。 “[rsSync]在当前replset中找不到有效的同步源来执行初始同步” 无法将另一个节点作为主节点提升,因为该命令需要从主数据库运行。任何人都可以建议一种方法来启动节点。

另外,我们注意到的是show databases命令和DBPath的大小显示了大小的差异。是否有任何后端机制运行以保持数据库中的数据压缩(类似于压缩文件系统中的数据),或者扩展文件系统中的数据?请告知此事。

1 个答案:

答案 0 :(得分:0)

选择一个节点并通过删除replSet参数将其启动到维护模式。使用mongo登录到该节点,然后选择use local的本地数据库。更新db.system.replset collectios members以仅拥有节点地址。使用replSet参数重新启动节点,现在您已经有一个节点副本集,其中PRIMARY正在运行。现在,您可以逐个添加其他节点,节点将执行initial sync

那些进行初始同步的其他节点将自动复制(并压缩,如果你使用wiredTiger)只有当前数据。拥有两个健康的辅助节点后,您可以在该节点上开始初始同步,并且它将以与其他节点相同的方式压缩它的数据。 (您可以通过销毁dbPath上的数据来启动初始同步)