是否可以将集合从单个服务器复制到集群?我在测试服务器(单机)上有一个集合,我会将集合复制到另一台服务器(集群),我不确定是否可以使用重复集合。
我想复制一次收藏。
首先在源服务器上使用mongoexport将集合导出到文件。
mongoexport --db yourDB --collection yourCollection --out yourCollection.json
当目标分片上尚不存在集合或尚未配置为分片时,您现在应该通过使用 mongo shell 连接到 mongos 实例并使用以下命令来执行此操作:
sh.shardCollection( "yourDatabase.yourCollection", { yourDesiredShardKey: 1 } )
然后在目的地上使用mongoimport来导入集合。
mongoimport --db yourDB --collection yourCollection --file yourCollection.json
两者都有可选的和mongoimport
参数来导入/导出到远程服务器。但我建议您自己将文件复制到目标服务器。首先,这应该更快。其次,在一个安全配置的网络中,无论如何,您都不应该能够从同一台机器访问测试和生产数据库,至少在没有身份验证的情况下是这样。mongoexport
--host
--port
要让集合使用集群的能力,您需要有分片选项。复制测试集合不会这样做。
您可以使用正确的分片选项创建一个新集合,然后将测试集合的项目复制到其中
db.test.mycollection.find().forEach( function(x){db.otherdb.othercollection.insert(x)} );