分片集群的部署

分片集群的部署有两种方式,一是把参数写在命令行中,而是把参数写在配置文件中,这两种方式是等价的,下面的链接是命令行参数与配置文件参数对应表: https://docs.mongodb.com/manual/reference/configuration-file-settings-command-line-options-mapping/#conf-file-command-line-mapping

下面讲述的是如何在单机上部署我们的测试分片集群(采用配置文件方式):

1.配置说明

组件名

IP

端口

备注

configserver

127.0.0.1

27001

最先启动,副本集单成员形式

shard1

127.0.0.1

27003

第二启动,副本集单成员形式

shard2

127.0.0.1

27005

第三启动,副本集单成员形式

mongos

127.0.0.1

27007

最后启动

2.创建对应的文件夹:

mkdir -p /home/hongxin/mongodb/conf
mkdir -p /home/hongxin/mongodb/mongos/log
mkdir -p /home/hongxin/mongodb/config/data
mkdir -p /home/hongxin/mongodb/config/log
mkdir -p /home/hongxin/mongodb/shard1/data
mkdir -p /home/hongxin/mongodb/shard1/log
mkdir -p /home/hongxin/mongodb/shard2/data
mkdir -p /home/hongxin/mongodb/shard2/log

3.新建config server 副本集

注:本次为了测试,该副本集只包含一个成员,实际生产环境应至少有三个成员)

配置文件说明

从MongoDB2.6开始,配置文件开始采用YAML的格式(YAML支持空格,不支持Tab)

配置参数说明: https://docs.mongodb.com/manual/reference/configuration-options/

新建config.conf文件

运行并初始化

4.新建shard副本集

shard的创建方式与config server大同小异

新建shard1.conf文件

创建连接及初始化

shard2 的创建与上面类似

注: shard 副本集的名字与 config server的名字不能一样!

5.新建mongos

新建 mongos.conf

注意 mongos.conf 没有存储选项

创建连接及初始化

至此,单机分片集群已搭建完毕

测试

后期运维

mongodb的启动顺序是,先启动配置服务器,在启动分片,最后启动mongos.

mongod -f /usr/local/mongodb/conf/config.conf mongod -f /usr/local/mongodb/conf/shard1.conf mongod -f /usr/local/mongodb/conf/shard2.conf mongod -f /usr/local/mongodb/conf/shard3.conf mongod -f /usr/local/mongodb/conf/mongos.conf

关闭时,直接killall杀掉所有进程 killall mongod killall mongos

参考: https://docs.mongodb.com/manual/tutorial/deploy-shard-cluster/index.html http://www.ityouknow.com/mongodb/2017/08/05/mongodb-cluster-setup.html

Last updated

Was this helpful?