有6个目录,每个目录包含约1TB数据,它们都属于一个数据库“test” 现在,我想将它们分组到一个集群中。我已经构建了 Shardserver 和 Configserver,但是在将第二个分片添加到集群时遇到问题:
db.runCommand({addshard:localhost:27017});
db.runCommand({addshard:localhost:27027});
"errmsg" : "无法添加分片 localhost:27027 因为本地数据库“test”存在于另一个数据库中 shard0000:localhost:27017"
删除“test”数据库可以解决这个问题,但这不是我想要的。
如何将6个分片(它们都有“测试”数据库,属于单个逻辑数据库)合并在一起?
使用 mongodump 第二个分片上的数据,然后删除该数据库并添加分片。之后,您可以使用 mongorestore
导入转储数据虽然错误抱怨另一个分片,但根据我的经验
the problem was on the shard that I was adding itself
。如果您使用 db.adminCommand({ removeShard: "shard0000" })
优雅地删除了分片,那么您要添加的分片上可能有一个空数据库。删除该分片上的数据库,解决了问题,然后让我再次添加该分片。