2.2 分片集部署(伪分布式)
建议开三个终端界面,分别操作三个服务器副本集,这样操作比较直观。
1️⃣首先需要有三个服务器节点或者说两个mongod、一个mongos进程
localhost:27017 配置服务器(mongod)
localhost:27018 路由服务器(mongos)
localhost:27019 分片服务器(mongod)
2️⃣创建并配置三个配置文件来完成分片集的主要架构
这里为了减少计算机部署分片集群的压力,采用配置服务器单成员副本集,路由服务器,分片服务器单成员副本集。单成员模式的副本集,即只用一个节点作为主节点加入到副本集中,完成一个最简单的副本集。若想要搭建更加完善的分片集群,只需多创建几个节点并加入到副本集中即可。
💥配置服务器(Config Server)副本集
1.配置文件及其内容:
/user/local/mongodb4.4.1/conf/shard/configsvr.conf
配置文件中的port端口为对应节点的端口,必须更改
涉及到路径的配置项path、dbpath里面的路径目录文件都必须创建,带后缀的是文件不带后缀的是目录,别创建错了
storage: dbPath: /usr/local/mongodb4.4.1/data/configsvr journal: enabled: true systemLog: destination: file path: /var/log/mongodb/shard/configsvr.log logAppend: true net: bindIp: localhost port: 27017 processManagement: fork: true sharding: clusterRole: configsvr replication: replSetName: configsvr_rs
2.初始化主节点:
开启节点服务需要先进入配置文件所在目录,开启服务成功后才能连接节点
#开启节点服务 sudo mongod --config configsvr.conf #连接节点,进入shell操作界面 mongo localhost:27017 #主节点初始化 rs.initiate({ _id: "configsvr_rs", configsvr: true, members: [{ _id : 0, host : “localhost:27017" },] })
💥路由服务器(Route Server)
1.配置文件及其内容
/user/local/mongodb4.4.1/conf/shard/mongos.conf
配置文件中的port端口为对应节点的端口,必须更改
涉及到路径的文件都要创建有后缀是文件,无后缀是目录
路由服务器不存储数据故不需要dbPath(与其他两个结点的区别)
systemLog: destination: file path: /var/log/mongodb/shard/mongos.log logAppend: true net: bindIp: localhost port: 27018 processManagement: fork: true sharding: configDB: configsvr_rs/localhost:27017 开启节点服务需要先进入配置文件所在目录,开启服务成功后才能连接节点 sudo mongos --config mongos.config
💥分片服务器(Shard Server)副本集
1.配置文件及内容
/user/local/mongodb4.4.1/conf/shard/shardsvr.conf storage: dbPath: /usr/local/mongodb4.4.1/data/shardsvr journal: enabled: true systemLog: destination: file path: /var/log/mongodb/shard/shardsvr.log logAppend: true net: bindIp: localhost port: 27019 processManagement: fork: true sharding: clusterRole: shardsvr replication: replSetName: shardsvr_rs1
2.初始化主节点
#开启节点服务 sudo mongod --config shardsvr.conf #连接节点,进入shell操作界面 mongo localhost:27019 #主节点初始化 rs.initiate({ _id : "shardsvr_rs1", members: [ { _id : 0, host : “localhost:27019" }, ] })
进入mongos shell界面
mongo localhost:27018
mongo localhost:27018
添加分片服务器副本集到分片集群中
sh.addShard("shardsvr_rs1/localhost:27019,")
再创建一个分片服务器副本集并加入到分片集群
参照上文分片服务器副本集,先创建并配置一个节点的配置文件,使用配置文件开启服务,进入shell界面初始化主节点,进入mongos的shell界面使用sh.addShard()将其添加入集群。
4️⃣数据库、集合分片操作
💥💥💥分片集操作完成后同样不能直接关闭终端,必须必须必须使用两次exit先退出shell再退出节点服务最后关闭虚拟机,否则下次再开启节点服务时,会因为直接关闭终端或者虚拟机而导致服务异常关闭,从而无法正常开启服务,处理起来会很麻烦。
2.3 副本集与分片集区别
副本集是让多台服务器都拥有同样的数据副本,每一台服务器都是其他服务器的镜像。然而分片集中的每一个分片都和其他分片拥有不同的数据子集,相当于分布式存储。