我已经针对大小为 600GB 的数据库在 3 个分片集群上执行了“mongodump”,并且块平均分布在所有 3 个分片上。
我的 mongodump 命令是这样的:
mongodump --db mydb123 --authenticationDatabase admin --journal -u root -p password123 -o mydb123
块几乎均匀地分布在所有 3 个分片中。++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++
然后我将转储文件移动到一个新集群并在新的 2-shard 集群上执行此转储文件的“mongorestore”。这个数据库的大小现在只有 80 GB。我想这是意料之中的(紧凑的行动)。但这是我的问题:在新的 2-shard 集群上,执行命令“sh.status()”没有显示该数据库的任何 CHUNKS。我的 mongorestore 命令是这样的:
mongorestore -u root -p newpass123 --authenticationDatabase admin --verbose /data/db/backups/new_dir/mydumpfile
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ SH.STATUS() 的实际输出如下所示:
mongos> sh.status() --- 分片状态 --- 分片版本:{ "_id" : 1, "version" : 3, "minCompatibleVersion" : 3, "currentVersion" : 4, "clusterId" : ObjectId(" 52efaaa0a83668acafc3bcb0") } 分片:{“_id”:“sh1”,“主机”:“sh1/hfdvmprmongodb1:27000,hfdvmprmongodb2:27000”} {“_id”:“sh2”,“主机”:“sh2/hfdvmprmongodb1:27001 ,hfdvmprmongodb2:27001" } 数据库:{“_id”:“admin”,“partitioned”:false,“primary”:“config”} {“_id”:“test”,“partitioned”:false,“primary”: “sh1”}{“_id”:“定价”,“分区”:true,“primary”:“sh2”} {“_id”:“mokshapoc”,“分区”:true,“primary”:“sh1”}
mongos> isBalancerRunning() Tue Feb 4 11:09:39.242 ReferenceError: isBalancerRunning is not defined mongos> sh.isBalancerRunning() true
++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++ 所以,我已经完全完成了 mongorestore 并且没有显示 80 GB 数据库的 CHUNKS(在执行 mongodump 时曾经是 600 GB 数据库)
我对没有看到任何块的事实感到非常困惑。(预计尺寸会更小,而且要小得多)
两个集群上的版本相同:MongoDB shell 版本:2.4.6
谢谢你,vr