南山行者

君子之交淡如水,学海无涯苦作舟。

mongodb分片+集群

目前在一个机器上部署,IP:10.1.2.197,端口列表如下:

  端口   端口   端口
路由服务 27061 路由服务 27062 路由服务 27063
配置服务 27071 配置服务 27072 配置服务 27073
副本集1 27011 副本集2 27021 副本集3 27031
副本集1 27012 副本集2 27022 副本集3 27032
副本集1 27013 副本集2 27043 副本集3 27033


一、配置副本集

1、启动副本集的实例


2,副本集配置文件

dbpath=/usr/local/mongodb/data1_1
logpath=/usr/local/mongodb/log/mongodb1_1.log
port=27011
fork=true
shardsvr=true
replSet=rs1
注意:shardsvr=true必须加入,不然后续的设置分片会报错

3、配置3个副本集

> config = {  
                "_id": "rs1",  
                members: [  
                           { "_id": 0,  
                            "host": "10.1.2.197:27011"  
                           },  
       
                           { "_id": 1,  
                            "host": "10.1.2.197:27012"  
                           },  
       
                          { "_id": 2,  
                            "host": "10.1.2.197:27013"  
                           },  
 
 ] }
> rs.initiate(config)
...

二、配置config

1,启动config实例


2,config配置文件

dbpath=/usr/local/mongodb/config1
logpath=/usr/local/mongodb/log/config1.log
port=27071
fork=true
configsvr=true
注意:configsvr=true必须加入,不然后续的mongos启动多configdb时会报错


三、配置路由

1,启动路由进程


2,mongos配置文件

configdb=10.1.2.197:27071,10.1.2.197:27072,10.1.2.197:27073
logpath=/usr/local/mongodb/log/mongos1.log
port=27061
fork=true

3,配置路由
(1) 进入路由1

mongo --port 27061
(2) 进入admin库

mongos> use admin

(3) 配置分片信息

mongos> db.runCommand({addshard:"rs1/10.1.2.197:27011"})
{ "shardAdded" : "rs1", "ok" : 1 }
mongos> db.runCommand({addshard:"rs2/10.1.2.197:27021"})
{ "shardAdded" : "rs2", "ok" : 1 }
mongos> db.runCommand({addshard:"rs3/10.1.2.197:27031"})
{ "shardAdded" : "rs3", "ok" : 1 }

(4) 查看分片

mongos> db.runCommand({listshards:1}) 
{
	"shards" : [
		{
			"_id" : "rs1",
			"host" : "rs1/10.1.2.197:27011,10.1.2.197:27012,10.1.2.197:27013"
		},
		{
			"_id" : "rs2",
			"host" : "rs2/10.1.2.197:27021,10.1.2.197:27022,10.1.2.197:27023"
		},
		{
			"_id" : "rs3",
			"host" : "rs3/10.1.2.197:27031,10.1.2.197:27032,10.1.2.197:27033"
		}
	],
	"ok" : 1
}
(5) 配置分片的库
mongos> db.runCommand({"enablesharding":"test"})
{ "ok" : 1 }
(6) 配置分片的方式
mongos> db.runCommand({"shardcollection":"test.person","key":{_id:'hashed'}})
{ "collectionsharded" : "test.person", "ok" : 1 }

三、测试

mongos> use test
switched to db test
mongos> for(var i=0;i<10;i++){db.person.insert({name:"bluejoe"+i});} 
WriteResult({ "nInserted" : 1 })
1,登录rs1


2,登录rs2


3,登录rs3


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Stubborn_Cow/article/details/52351814
个人分类: MongoDB
上一篇MongoDB的分片
下一篇JAVA数据库连接池实现
想对作者说点什么? 我来说一句

mongodb(5)-分片集群

占位

zhuojiajin zhuojiajin

2015-09-30 23:14:54

阅读数:767

没有更多推荐了,返回首页

关闭
关闭