如何配置MongoDB分片群集
2020-07-13 12:35
204 查看
配置MongoDB分片群集
实验环境:
分片服务器1(一主两从)
Kgcs1 27017、27018、27019 配置文件(mongod-2.conf)
分片服务器2(一主两从)
Kgcs2 27020、27021、27022 配置文件(mongod2-5.conf)
配置服务器(一主两从)
config server 37017、37018、37019 配置文件(mongod6-8.conf)
路由服务器:
Mongos :47017 配置文件(mongods.conf)
一、配置分片服务器(注意配置前要把所有实例中的数据清空:)在配置文件中添加一下内容:每个复制集的每一个节点都需要配置:
1)[root@kgc6 ~]# vim /etc/mongod.conf sharding: clusterRole: shardsvr replication: oplogSizeMB: 2048 replSetName: kgcrs1(这里是复制集的名称和上面规划的要一样) 2)登录MongoDB数据库添加复制集并初始化: [root@kgc6 bin]# mongo > config={_id:"kgcrs1",members:[{_id:0,host:"127.0.0.1:27017"},{_id:1,host:"127.0.0.1:27018"},{_id:2,host:"127.0.0.1:27019"}]} > rs.initiate(config) { "ok" : 1 } [root@kgc6 bin]# mongo --port 27020 > config={_id:"kgcrs2",members:[{_id:0,host:"127.0.0.1:27020"},{_id:1,host:"127.0.0.1:27021"},{_id:2,host:"127.0.0.1:27022"}]} > rs.initiate(config) { "ok" : 1 } 可以使用rs.status()命令查看复制集
二、配置配置服务器:(注意三台配置服务器都需要添加一下内容:)
[root@kgc6 ~]# vim /etc/mongod6.conf harding: clusterRole: configsvr #replication: replication: oplogSizeMB: 2048 replSetName: configReplSet (配置服务器复制集名称) 3)登录到37017 MongoDB数据库添加复制集并初始化: [root@kgc6 bin]# mongo --port 37017 > config={_id:"configReplSet",members:[{_id:0,host:"127.0.0.1:37017"},{_id:1,host:"127.0.0.1:37018"},{_id:2,host:"127.0.0.1:37019"}]} > rs.initiate(config) { "ok" : 1 }
三、配置路由服务器:
1):在路由服务器的配置文件中加上如下选项: [root@kgc6 ~]# vim /etc/mongod9.conf sharding: configDB: configReplSet/127.0.0.1:37017,127.0.0.1:37018,127.0.0.1:37019 2)启动路由服务器mongos: [root@kgc6 bin]# mongos -f /etc/mongods.conf [root@kgc6 bin]# whatis mongos mongos (1) - MongoDB Sharded Cluster Query Router [root@kgc6 bin]# whatis mongo mongo (1) - MongoDB Shell [root@kgc6 bin]# whatis mongod mongod (1) - MongoDB Server 3)登录到路由服务器 47017 MongoDB数据库为分片群集添加节点: [root@kgc6 bin]# mongo --port 47017 mongos> use admin switched to db admin mongos> mongos> db.runCommand({addshard:"kgcrs1/127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019",name:"shard1"}) { "shardAdded" : "shard1", "ok" : 1 } mongos> db.runCommand({addshard:"kgcrs2/127.0.0.1:27020,127.0.0.1:27021,127.0.0.1:27022",name:"shard2"}) { "shardAdded" : "shard2", "ok" : 1 } mongos> db.runCommand({listshards:1}) { "shards" : [ { "_id" : "shard2", "host" : "kgcrs2/127.0.0.1:27020,127.0.0.1:27021,127.0.0.1:27022", "state" : 1 }, { "_id" : "shard1", "host" : "kgcrs1/127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019", "state" : 1 } ], "ok" : 1 } mongos> sh.status() --- Sharding Status --- sharding version: { "_id" : 1, "minCompatibleVersion" : 5, "currentVersion" : 6, "clusterId" : ObjectId("5f06ee39003f00de0f0f9440") } shards: { "_id" : "shard1", "host" : "kgcrs1/127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019", "state" : 1 } { "_id" : "shard2", "host" : "kgcrs2/127.0.0.1:27020,127.0.0.1:27021,127.0.0.1:27022", "state" : 1 } active mongoses: "3.4.24" : 1 autosplit: Currently enabled: yes balancer: Currently enabled: yes Currently running: no NaN Failed balancer rounds in last 5 attempts: 0 Migration Results for the last 24 hours: No recent migrations databases: 4)激活分片功能: mongos> db admin mongos> db.runCommand({enablesharding:"test"}) 激活test库的分片功能 { "ok" : 1 } 5)指定分片键对集合分片: 第一步:创建索引 :优化查询的重要手段: mongos> use test switched to db test mongos> db test mongos> db.stu.ensureIndex({id:1}) { "raw" : { "kgcrs1/127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019" : { "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1, "$gleStats" : { "lastOpTime" : { "ts" : Timestamp(1594291026, 2), "t" : NumberLong(2) }, "electionId" : ObjectId("7fffffff0000000000000002") } } }, "ok" : 1 } 第二步:开启分片: mongos> use admin switched to db admin mongos> db.runCommand({shardcollection:"test.stu",key:{id:1}}) { "collectionsharded" : "test.stu", "ok" : 1 } mongos> use config //设置块的大小 switched to db config mongos> db.settings.save( { _id:"chunksize", value:"8" } )为8M WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : "chunksize" })
四、集合分片验证:
第一步:产生大量数据
mongos> use test; switched to db test mongos> for(var i=1;i<=100000;i++){db.stu.insert({'id':i,'name':'Alice'});} //添加10万条数据
相关文章推荐
- 如何在Windows系统中配置Mysql群集(Mysql Cluster)
- 如何配置 MongoDB 副本集
- linux-centos如何配置mongodb
- 如何:配置和启动 MPI 群集调试程序
- 如何配置 MongoDB 副本集
- windoes10下 如何将mongoDB配置为服务
- Mac下如何安装和配置mongodb
- 【MongoDB数据库】如何安装、配置MongoDB
- Linux下Mongodb的分布式分片群集(sharding cluster)配置
- 如何以配置文件方式启动MongoDB
- 如何在Windows系统中配置Mysql群集(Mysql Cluster)
- 如何配置 MongoDB 副本集
- 配置mongodb分片群集(sharding cluster)-淘宝DBA
- mongodb 分片群集配置 及数据迁移
- 配置mongodb分片群集(sharding cluster){淘宝数据库技术团队}
- 如何配置tomcat群集节点之间简单进行会话共享
- 如何在 Windows Server 2003 群集上配置 Microsoft 分布式事务处理协调器
- 如何配置 MongoDB 副本集
- 配置mongodb分片群集(sharding cluster)