从 mongos 查询 Mongodb 分片上的数据

Querying data on a Mongodb Shard from the mongos

我正在使用 MongoDB 3.4 。数据库分为 2 个分片,一切看起来都正常。
如果其中一个分片出现故障。如何从 mongos shell 查询第二个分片上的数据??

实际上,如果系统设计得当,这种情况永远不会发生,因为每个分片都应该包含一个副本集。当每个分片都是一个副本集时,您必须多次失败才能使分片成为 down/unavailable.

如果由于某种原因您确实有一个分片已关闭,仍然可以执行一些 查询。如果查询是 targeted to only shards that are available, they will still work. But if your queries are broadcast 个查询,则查询将失败。

如果您的分片已正确部署为副本集,并且您碰巧有一个或多个没有主分片的分片,那么如果您指定 read preference that allows queries to secondaries. Or if running from the mongo shell, running rs.slaveOk() 将执行相同的操作,您的查询可能仍会成功。