我已经使用 mongo 工作了几个星期,并在开发人员中构建了我的环境。我从单个节点开始,然后移动到一个分片集群,现在想移动到一个复制的分片集群。从我读到的复制碎片集群是最好的,可扩展性,持久性,性能提升等。
我已经阅读了他们帮助中的大多数(非常好的)教程。似乎他们的课程建议从单节点到副本集,再到分片副本集,不幸的是,这与我的做法相反。我似乎找不到任何东西可以将分片集群升级为复制分片集群。
这是我拥有的 5 台主机:
- 应用服务器
- 配置服务器
- SHARD1
- 分片2
- SHARD3
我启动了每个分片服务器:
mongod --shardsvr
然后我启动了配置服务器:
mongod --configsvr
然后我在 APPSERVER 上启动了 mongos 进程:
mongos --configdb CONFIGSERVER
然后在 mongos 中,我添加了分片,在我的数据库上启用分片,并为集合定义了一个 shardkey:
sh.addShard("SHARD1:27018");//again for 2 and 3
sh.enableSharding("beacon");
sh.shardCollection("beacon.alpha2", {"ip":1});
我希望每个分片都复制到其他两个分片上。(对吗?)我是否需要关闭分片上的 mongod 进程并使用不同的 CL 参数重新启动它们?我需要在我的 mongos shell 中发出什么命令才能复制它?我应该导出所有数据、删除所有数据、重新启动并重新导入吗?同样,我看到了很多关于如何创建副本集的教程,但我并没有真正看到任何关于如何在分片系统开始时创建副本集的内容。
谢谢!