从带有副本集的mongodb中删除数据库

问题描述 投票:0回答:2

我有一个运行着 3 个成员副本集的 MongoDB。所有成员均已启动并运行。

我有一个包含 4-5 个集合的数据库,我想删除该数据库。

最好的方法是什么?我可以在主数据库上使用 db.dropDatabase() 吗? 在删除数据库之前是否需要停止辅助数据库?删除数据库后,辅助成员会自动同步到主要成员吗?那内存呢,删除数据库后内存会释放吗?

mongodb collections replication database-replication drop
2个回答
7
投票

是的。只需在主数据库中使用命令

db.dropDatabase()
删除数据库,更改也会传播到辅助数据库。您不需要关闭辅助节点。


1
投票

正如 Anand Jayabalan 所说,您只需要在主节点上删除数据库即可。复制完成剩下的工作,读取辅助节点的 oplog。

来自参考链接和官方文档。

主节点是副本集中唯一接收写操作的成员。 MongoDB 在主节点上应用写操作,然后将操作记录在主节点的 oplog 上。次要成员复制此日志并将操作应用于其数据集。

参考:

https://docs.mongodb.org/manual/core/replication-introduction/

https://docs.mongodb.org/manual/core/replica-set-primary/

© www.soinside.com 2019 - 2024. All rights reserved.