我在dev服务器上玩了一段时间,想买一个新产品,现在它是sorta live,我想把现有的数据从一台机器(mongod,local)移动到我们的6服务器shard设置(每3个副本集有2个shard)-有没有办法把db克隆到一个远程shard?
(最坏的情况是,一个简单的dump&insert和shard key示例将非常好!)
谢谢!

最佳答案

您应该将开发服务器添加到分片环境:
使用--shard选项重新启动dev服务器
在mongos上:键入db.runcommand({addshard:“serverhostname[:port]”,name:“migration”});
使用remove shard命令remove您的shard“迁移”。
完成后(您将获得“remove shard completed successfully”),您可以停止您的dev服务器,并且所有数据都已从dev迁移到新的集群
您不必为迁移而切分数据库,但是如果您想从切分中获益,就需要这样做。
此解决方案的优点是,您可以采取的操作最少(所有操作都是自动的),而且没有停机时间(但是,您的负载越大,操作越慢)
然而,这是一个缓慢的解决方案(比手动拷贝慢)。
与原始文件复制相比还有一个优势:传输还将压缩(~defrag)数据,这总是很好的:-)

09-18 12:02