当辅助数据库关闭时,mongodb 无法删除数据库

标签 mongodb replicaset drop-database

我有一个包含 1 个主节点、1 个辅助节点和 1 个仲裁节点的副本集。当我关闭辅助成员时,我无法删除数据库。它在等待某事。但是,如果我打开辅助成员,dropDatabase 就可以了。这是什么原因呢?我们不能在没有任何辅助成员的情况下删除数据库吗?

最佳答案

自 MongoDB 3.6 起,dropDatabase现在带有一个writeConcern。默认情况下设置为majority。这意味着,在 3 个复制集集群中,至少有 2 个数据承载节点(不是仲裁器)需要应用相同的更改。

如果您确实需要,可以通过使用 writeConcern1 来强制 dropDatabase 仅使用一个数据承载节点来完成。但是,这可能会导致 rollback .

有关writeConcern以及如何设置的更多信息,请参阅文档: https://docs.mongodb.com/manual/reference/write-concern/

关于当辅助数据库关闭时,mongodb 无法删除数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55136731/

相关文章:

javascript - 了解 Meteor 发布/订阅

mongodb-erlang Erlang 驱动示例

linux - Linux 中的 Mongodb 复制错误

mongodb - 为什么不在configdb中使用仲裁器?

sql - 为什么我不能删除 postgres 数据库

sql-server-2008 - 如何删除 SQL 数据库? sp_delete_database_backuphistory 问题

c# - 如何从 C# 中的 IMongoCollection 获取所有项目?

mongodb - 我可以将 Apache Solr 与 MongoDB 同步吗

mongodb - 无法连接到工作的Dockerized Mongo ReplSet