作者回复: mongos在你新建库的时候会为你的库挑一个“primary shard”,所有未分片的集合都会在这个shard里面。挑选的规则就是看哪个分片相对数据量小一点。
作者回复: config server通常有1~2c就可以,内存也不用大,通常4G就可以。 mongos 因为要承接很多连接处理,一般建议CPU还是有给够,可以和mongod参考。因为它不缓存数据,所以内存也可以不用太大。可以参考mongod的一半。
作者回复: 所有操作必须要使用mongos。不能直接使用分片主节点。直接操作主节点仅仅限于数据库故障恢复
作者回复: db.adminCommand( { movePrimary : "your_dbname", to : "shard0001" } ) https://docs.mongodb.com/manual/reference/command/movePrimary/
作者回复: 是的,谢谢强调。
作者回复: 非常棒!我们这个主要是让大家知道具体的步骤,是个学习的过程。上线或者稳定后一般都要用脚本或者工具来管理进程。
作者回复: 1) 是的 2) 是的
作者回复: config上面存着分片的重要元数据(如chunk分布),没有config server 分片集群无法工作的。shard server会建立到configserver的连接(正常端口)来获取并缓存配置数据。 改完端口以后,config 复制集是否正常?你有重新启动mongos 和 shard mongod 实例吗?
作者回复: “Kill掉一个分片的从库之后,再kill掉一个分片的主库” 你必须保证多数节点(如果是3节点复制集,那就要有2个节点存活)
作者回复: 对,正式部署需要多个mongos