我正在使用 MongoDB 3.4 。数据库以2个分片分片,一切看起来都不错。
如果其中一个分片出现故障。如何从mongos shell查询第二个分片上的数据??
答案 0 :(得分:0)
在实践中,通过正确设计的系统,这种情况永远不会发生,因为每个分片都应该包含副本集。当每个分片都是副本集时,您必须有多个失败才能使分片失效/不可用。
如果由于某种原因你确实有一个向下的分片某些仍然可以执行查询。如果查询仅targeted只有可用的分片,它们仍然有效。但是,如果您的查询是broadcast个查询,则查询将失败。
如果您的分片已正确部署为副本集,并且您碰巧有一个或多个没有主分片的分片,那么如果指定允许查询辅助副本的read preference,您的查询仍可能成功。或者如果从mongo shell运行,运行rs.slaveOk()也会这样做。