完整的搭建mongodb集群(副本集+分片)的例子。。。
准备四台机器,分别是bluejoe1,bluejoe2,bluejoe3,以及bluejoe0
副本集及分片策略确定如下:
- 将创建3个副本集,命名为shard1,shard2,shard3;
- 以上3个副本集作为3个分片;
- 每个副本集包含3个副本(主、辅1、辅2);
- 副本分开存储,即shard1存在bluejoe1、bluejoe2、bluejoe3上各一份。。。以此类推
- 将创建3个配置库实例,一台机器一个
- bluejoe0上配置一个mongos(mongos一般可以配置在应用端)
画了一个图:
![](https://img-blog.csdnimg.cn/2022010708271457762.png)
具体操作步骤如下:
- 在bluejoe1上下载mongdb安装包;
- 解压至/usr/local/mongdb(注意改名);
- 创建data/db1,db2,db3目录,启动3个mongod实例,注意replSet的名字:
mkdir /usr/local/mongodb/data/db1 /usr/local/mongodb/data/db2 /usr/local/mongodb/data/db3 nohup /usr/local/mongodb/bin/mongod --dbpath /usr/local/mongodb/data/db1 --port 10001 --replSet db1 --logpath=/usr/local/mongodb/log/db1.log & nohup /usr/local/mongodb/bin/mongod --dbpath /usr/local/mongodb/data/db2 --port 10002 --replSet db2 --logpath=/usr/local/mongodb/log/db2.log & nohup /usr/local/mongodb/bin/mongod --dbpath /usr/local/mongodb/data/db3 --port 10003 --replSet db3 --logpath=/usr/local/mongodb/log/db3.log &
- 使用scp命令,将mongodb目录复制至bluejoe2和bluejoe3机器,并按照第3步启动每台机器上的3个实例;
- 初始化副本: