MongoDB:克隆单个服务器开发。数据库到生产分片集群

时间:2011-11-08 22:21:44

标签: mongodb database

我在我们的开发服务器上玩了一段时间用于新产品,现在它实时排序,我想将现有数据从一台机器(mongod,local)移动到我们的6服务器分片设置( 2个分片,每个3副本集) - 有没有办法将数据库克隆到远程分片?

(最糟糕的情况是,使用分片键示例的简单转储和插入将非常好!)

谢谢!

2 个答案:

答案 0 :(得分:1)

您应该将您的开发服务器添加到分片环境:

  • 使用--shard选项重新启动您的开发服务器
  • 你的mongos上的
  • :输入db.runCommand({addshard:“serverhostname [:port]”,name:“migration”});
  • 使用remove shard命令将您的分片“迁移”remove用于{{3}}。
  • 完成后(您可以“成功删除分片”),您可以停止您的开发服务器并将所有数据从开发人员迁移到新群集

您不必为迁移分片数据库,但是如果您想从分片中受益,则需要执行此操作。

此解决方案的优势在于您可以采取<强>最小操作(一切都是自动的)并且无停机时间(您放置的负载越多,但是,操作较慢) 但是,这是解决方案(比手动复制慢)。

与原始文件复制相比还有一个优点:传输也会压缩(〜碎片整理)数据,这总是好的: - )

答案 1 :(得分:0)

  • 将您的开发服务器添加到副本集作为主服务器,将其他3个服务器作为从服务器。 然后在其他服务器复制数据后删除dev-server。

    http://www.mongodb.org/display/DOCS/Replica+Set+Commands

  • 您可以使用mongodump转储数据库,然后将带有mongorestore的db-dump加载到每个副本集的主服务器上

    man mongodumpman mongorestore

请参阅:

http://www.mongodb.org/display/DOCS/Replica+Set+Internals

http://www.mongodb.org/display/DOCS/Sharding+Introduction

http://www.mongodb.org/display/DOCS/Master+Slave