MongoDB2.6部署副本集+分区(2)

tcp        0      0 0.0.0.0:28000               0.0.0.0:*                   LISTEN      4086/mongod  

五、在三个节点上启动用路由服务器

节点1

[root@orcl ~]#  mongos -f /etc/route.conf

about to fork child process, waiting until server is ready for connections.

forked process: 3575

child process started successfully, parent exiting

[root@orcl ~]# netstat -anltp|grep 2701

tcp        0      0 0.0.0.0:27017               0.0.0.0:*                   LISTEN      3575/mongos  

节点2

[root@localhost ~]#  mongos -f /etc/route.conf

about to fork child process, waiting until server is ready for connections.

forked process: 3057

child process started successfully, parent exiting

[root@localhost ~]# netstat -anltp|grep 2701

tcp        0      0 0.0.0.0:27017  

节点3

[root@db10g ~]# mongos -f /etc/route.conf

about to fork child process, waiting until server is ready for connections.

forked process: 4108

child process started successfully, parent exiting

[root@db10g ~]# netstat -anltp|grep 27017

tcp        0      0 0.0.0.0:27017               0.0.0.0:*                   LISTEN      4108/mongos 

六、在三个节点启用shard

mongod -f /etc/sd1.conf

mongod -f /etc/sd2.conf

mongod -f /etc/sd3.conf

节点1

[root@orcl ~]# ps -ef |grep mongo

root      3472     1  2 19:15 ?        00:02:18 mongod -f /etc/config.conf

root      3575     1  0 19:28 ?        00:00:48 mongos -f /etc/route.conf

root      4135     1  0 20:52 ?        00:00:07 mongod -f /etc/sd1.conf

root      4205     1  0 20:55 ?        00:00:05 mongod -f /etc/sd2.conf

root      4265     1  0 20:58 ?        00:00:04 mongod -f /etc/sd3.conf

节点2

[root@localhost ~]# ps -ef |grep mongo

root      2998     1  1 19:15 ?        00:02:02 mongod -f /etc/config.conf

root      3057     1  1 19:28 ?        00:01:02 mongos -f /etc/route.conf

root      3277     1  1 20:52 ?        00:00:20 mongod -f /etc/sd1.conf

root      3334     1  6 20:56 ?        00:00:52 mongod -f /etc/sd2.conf

root      3470     1  1 21:01 ?        00:00:07 mongod -f /etc/sd3.conf

节点3

[root@db10g data]# ps -ef |grep mongo

root      4086     1  1 19:25 ?        00:01:58 mongod -f /etc/config.conf

root      4108     1  0 19:27 ?        00:00:55 mongos -f /etc/route.conf

root      4592     1  0 20:54 ?        00:00:07 mongod -f /etc/sd1.conf

root      4646     1  3 20:56 ?        00:00:30 mongod -f /etc/sd2.conf

root      4763     1  4 21:04 ?        00:00:12 mongod -f /etc/sd3.conf

七、配置副本集

192.168.1.30

[root@orcl ~]# mongo --port 27018

MongoDB shell version: 2.6.4

connecting to: 127.0.0.1:27018/test

> use admin

switched to db admin

> rs1={_id:"set1",members:[{_id:0,host:"192.168.1.30:27018",priority:2},{_id:1,host:"192.168.1.52:27018"},{_id:2,host:"192.168.1.108:27018",arbiterOnly:true}]}

{

"_id" : "set1",

"members" : [

{

"_id" : 0,

"host" : "192.168.1.30:27018",

"priority" : 2

},

{

"_id" : 1,

"host" : "192.168.1.52:27018"

},

{

"_id" : 2,

"host" : "192.168.1.108:27018",

"arbiterOnly" : true

}

]

}

> rs.initiate(rs1)

{

"info" : "Config now saved locally.  Should come online in about a minute.",

"ok" : 1

}

192.168.1.52

[root@orcl ~]# mongo --port 27019

MongoDB shell version: 2.6.4

connecting to: 127.0.0.1:27019/test

> use admin

switched to db admin

> rs2={_id:"set2",members:[{_id:0,host:"192.168.1.52:27019",priority:2},{_id:1,host:"192.168.1.108:27019"},{_id:2,host:"192.168.1.30:27019",arbiterOnly:true}]}

{

"_id" : "set2",

"members" : [

{

"_id" : 0,

"host" : "192.168.1.52:27019",

"priority" : 2

},

{

"_id" : 1,

"host" : "192.168.1.108:27019"

},

{

"_id" : 2,

"host" : "192.168.1.30:27019",

"arbiterOnly" : true

}

]

}

> rs.initiate(rs2);

{

"info" : "Config now saved locally.  Should come online in about a minute.",

"ok" : 1

}

192.168.1.108

[root@localhost sd3]# mongo --port 27020

MongoDB shell version: 2.6.4

connecting to: 127.0.0.1:27020/test

> use admin

switched to db admin

> rs3={_id:"set3",members:[{_id:0,host:"192.168.1.108:27020",priority:2},{_id:1,host:"192.168.1.30:27020"},{_id:2,host:"192.168.1.52:27020",arbiterOnly:true}]}

{

"_id" : "set3",

"members" : [

{

"_id" : 0,

"host" : "192.168.1.108:27020",

"priority" : 2

},

{

"_id" : 1,

"host" : "192.168.1.30:27020"

},

{

"_id" : 2,

"host" : "192.168.1.52:27020",

"arbiterOnly" : true

}

]

}

> rs.initiate(rs3);

{

"info" : "Config now saved locally.  Should come online in about a minute.",

"ok" : 1

}

八、添加分片

在三个节点上任一个节点都可以操作

192.168.1.30

[root@orcl sd3]# mongo --port 27017

MongoDB shell version: 2.6.4

connecting to: 127.0.0.1:27017/test

mongos> use admin

switched to db admin

mongos> db.runCommand({addshard:"set1/192.168.1.30:27018,192.168.1.52:27018,192.168.1.108:27018"})

{ "shardAdded" : "set1", "ok" : 1 }

mongos> db.runCommand({addshard:"set2/192.168.1.30:27019,192.168.1.52:27019,192.168.1.108:27019"})

{ "shardAdded" : "set2", "ok" : 1 }

mongos> db.runCommand({addshard:"set3/192.168.1.30:27020,192.168.1.52:27020,192.168.1.108:27020"})

{ "shardAdded" : "set3", "ok" : 1 }

九、查看分片信息

mongos> db.runCommand({listshards : 1})

{

"shards" : [

{

"_id" : "set1",

"host" : "set1/192.168.1.30:27018,192.168.1.52:27018"

},

{

"_id" : "set2",

"host" : "set2/192.168.1.108:27019,192.168.1.52:27019"

},

{

"_id" : "set3",

"host" : "set3/192.168.1.108:27020,192.168.1.30:27020"

}

],

"ok" : 1

}

十、删除分片

mongos> db.runCommand({removeshard:"set3"})

{

"msg" : "draining started successfully",

"state" : "started",

"shard" : "set3",

"ok" : 1

}

十一、管理分片

mongos> use config

switched to db config

mongos> db.shards.find();

{ "_id" : "set1", "host" : "set1/192.168.1.30:27018,192.168.1.52:27018" }

{ "_id" : "set2", "host" : "set2/192.168.1.108:27019,192.168.1.52:27019" }

{ "_id" : "set3", "host" : "set3/192.168.1.108:27020,192.168.1.30:27020" }

十二、对要分片的库和表声明

切换到admin库

mongos> use admin      

声明test库允许分片

mongos> db.runCommand({enablesharding:"test"})

{ "ok" : 1 } 

声明users表要分片  

mongos> db.runCommand({shardcollection:"test.lineqi",key:{id:"hashed"}})

{ "collectionsharded" : "test.lineqi", "ok" : 1 }

十三、测试脚本

切换到test

mongos>use test

mongos> for (var i = 1; i <= 100000; i++) db.lineqi.save({id:i,name:"12345678",sex:"male",age:27,value:"test"}); 

WriteResult({ "nInserted" : 1 })

十四、测试结果

查看分片信息

mongos> use config

switched to db config

mongos> db.chunks.find();

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/44e6698dceb109d315b48586b059ac67.html