我看到了一些奇怪的行为,我希望能有一些亮点来帮助我看看这是不是我做错了,或者如果它是mongo的已知问题。
简而言之,我们注意到有一天收集的所有文档都丢失了。经过进一步调查,似乎当数据库归属于单个分片(1)时,数据库和“缺失”集合(其中包含数据)出现在另一个分片上(2)。在我们的设置中,我们有一个带有3个配置服务器的分片/复制集群。
通过sh.status()我可以看到感兴趣的数据库被归属于特定的碎片:
sh.status()
...
{ "_id" : "myDB123", "partitioned" : false, "primary" : "rs_shard1" }
当我去那个碎片的主要部分并检查收集的数量时,它是空的:
rs_shard1:PRIMARY> db.myCollection.count()
0
但是,如果我转到第二个分片(此DB不应该存在),我会看到以下内容:
rs_shard2:PRIMARY> use myDB123
switched to db myDB123
rs_shard2:PRIMARY> show collections
myCollection
system.indexes
rs_shard2:PRIMARY> db.myCollection.count()
153
我在2.2.2和2.4.4上看到过这种行为。我知道Mongo给出了一个分片/复制集群的幕后有很多复杂情况,所以我想知道这是否是已知问题和/或是否有其他人看到过这种行为?如果是这样,任何有关导致这种情况的见解?
再次感谢!