【发布时间】:2014-03-11 18:41:49
【问题描述】:
我有一个运行 3 个成员副本集的 MongoDB。所有成员都已启动并运行。
我有一个包含 4-5 个集合的数据库,我想删除该数据库。
最好的方法是什么。我可以只在主节点上使用 db.dropDatabase() 吗? 在删除数据库之前是否需要停止辅助?删除数据库后,次要成员会自动同步到主要成员吗?内存呢,我删除数据库后会释放吗?
【问题讨论】:
标签: mongodb
我有一个运行 3 个成员副本集的 MongoDB。所有成员都已启动并运行。
我有一个包含 4-5 个集合的数据库,我想删除该数据库。
最好的方法是什么。我可以只在主节点上使用 db.dropDatabase() 吗? 在删除数据库之前是否需要停止辅助?删除数据库后,次要成员会自动同步到主要成员吗?内存呢,我删除数据库后会释放吗?
【问题讨论】:
标签: mongodb
是的。只需在主数据库中使用命令db.dropDatabase() 删除数据库,更改也会传播到辅助数据库。您无需关闭辅助服务器。
【讨论】:
正如 Anand Jayabalan 所说,您只需将数据库放在主节点上即可。复制完成其余的读取辅助节点的 oplog。
来自参考链接和官方文档。
主节点是副本集中唯一接收写入操作的成员。 MongoDB 在主节点上应用写操作,然后在主节点的 oplog 上记录这些操作。次要成员复制此日志并将操作应用于他们的数据集。
参考:
https://docs.mongodb.org/manual/core/replication-introduction/
【讨论】: