0

是否可以将集合从单个服务器复制到集群?我在测试服务器(单机)上有一个集合,我会将集合复制到另一台服务器(集群),我不确定是否可以使用重复集合。

我想复制一次收藏。

4

2 回答 2

1

首先在源服务器上使用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

于 2013-10-09T08:42:37.397 回答
0

要让集合使用集群的能力,您需要有分片选项。复制测试集合不会这样做。

您可以使用正确的分片选项创建一个新集合,然后将测试集合的项目复制到其中

db.test.mycollection.find().forEach( function(x){db.otherdb.othercollection.insert(x)} );

于 2013-10-09T08:40:36.587 回答